config.json 参考
我们最近引入了一种新的配置格式 `config.yaml` 来替换 `config.json`。请参阅 此处 的 `config.yaml` 参考和迁移指南。
下面是可以在 `config.json` 中设置的每个属性的详细信息。配置 schema 代码位于 `extensions/vscode/config_schema.json` 中。
除非明确标记为必需,否则所有级别的所有属性都是可选的
models
此处定义了您的**聊天**模型,这些模型用于聊天、编辑和VS Code 操作。
每个模型都有针对其提供者和功能的特定配置选项,在编辑 JSON 时可以作为建议看到。
属性
title
(必需):为您模型分配的标题,显示在下拉列表等位置。provider
(必需):模型的提供者,决定了类型和交互方法。选项包括 `openai`、`ollama`、`xAI` 等,请参阅 IntelliJ 建议。model
(必需):模型的名称,用于提示模板自动检测。使用特殊名称 `AUTODETECT` 获取所有可用模型。apiKey
:OpenAI、Anthropic、Cohere 和 xAI 等提供者所需的 API 密钥。apiBase
:LLM API 的基本 URL。contextLength
:模型的最大上下文长度,通常以 Token 为单位(默认值:2048)。maxStopWords
:允许的最大停止词数量,以避免因列表过长导致的 API 错误。template
:用于格式化消息的聊天模板。大多数模型会自动检测,但可以覆盖。请参阅 IntelliJ 建议。promptTemplates
:提示模板名称(例如 `edit`)到模板字符串的映射。自定义指南。completionOptions
:模型特定的完成选项,格式与顶级completionOptions
相同,模型特定的选项会覆盖顶级的设置。systemMessage
:一个将出现在 LLM 响应之前的系统消息。requestOptions
:模型特定的 HTTP 请求选项,格式与顶级requestOptions
相同,模型特定的选项会覆盖顶级的设置。apiType
:指定 API 的类型(`openai` 或 `azure`)。apiVersion
:Azure API 版本(例如 `2023-07-01-preview`)。engine
:用于 Azure OpenAI 请求的引擎。capabilities
:覆盖自动检测到的能力uploadImage
:布尔值,表示模型是否支持图像上传。tools
:布尔值,表示模型是否支持工具使用。
(仅限 AWS)
profile
:用于授权的 AWS 安全配置文件。modelArn
:导入模型的 AWS ARN(例如,对于 `bedrockimport` 提供者)。region
:模型所在的区域(例如 `us-east-1`、`eu-central-1`)。
示例
{
"models": [
{
"title": "Ollama",
"provider": "ollama",
"model": "AUTODETECT"
},
{
"model": "gpt-4o",
"contextLength": 128000,
"title": "GPT-4o",
"provider": "openai",
"apiKey": "YOUR_API_KEY"
}
]
}
tabAutocompleteModel
指定用于 Tab 自动完成的模型或模型列表,默认为 Ollama 实例。此属性使用与 `models` 相同的格式。可以是模型数组或单个模型对象。
示例
{
"tabAutocompleteModel": {
"title": "My Starcoder",
"provider": "ollama",
"model": "starcoder2:3b"
}
}
tabAutocompleteOptions
指定 Tab 自动完成行为的选项。
属性
disable
:如果为 `true`,则禁用 Tab 自动完成(默认值:`false`)。maxPromptTokens
:提示的最大 Token 数量(默认值:`1024`)。debounceDelay
:触发自动完成前的延迟(毫秒)(默认值:`350`)。maxSuffixPercentage
:后缀提示的最大百分比(默认值:`0.2`)。prefixPercentage
:前缀输入的百分比(默认值:`0.3`)。template
:用于自动完成的模板字符串,使用 Mustache 模板。您可以使用 `{{{ prefix }}}`、`{{{ suffix }}}`、`{{{ filename }}}`、`{{{ reponame }}}` 和 `{{{ language }}}` 变量。onlyMyCode
:如果为 `true`,则仅包含仓库内的代码(默认值:`true`)。
示例
{
"tabAutocompleteOptions": {
"debounceDelay": 500,
"maxPromptTokens": 1500,
"disableInFiles": ["*.md"]
}
}
embeddingsProvider
Embeddings 模型设置 - 用于 @Codebase 和 @docs 的模型。
属性
provider
(必需):指定 embeddings 提供者,选项包括 `transformers.js`、`ollama`、`openai`、`cohere`、`gemini` 等model
:embeddings 的模型名称。apiKey
:提供者的 API 密钥。apiBase
:API 请求的基本 URL。requestOptions
: embeddings 提供者特定的附加 HTTP 请求设置。maxEmbeddingChunkSize
:每个文档块的最大 Token 数量。最小值为 128 Token。maxEmbeddingBatchSize
:每次请求的最大块数量。最小值为 1 块。
(仅限 AWS)
region
:指定托管模型的区域。profile
:AWS 安全配置文件。
示例
{
"embeddingsProvider": {
"provider": "openai",
"model": "text-embedding-ada-002",
"apiKey": "<API_KEY>",
"maxEmbeddingChunkSize": 256,
"maxEmbeddingBatchSize": 5
}
}
completionOptions
控制文本生成和完成设置行为的参数。顶级的 `completionOptions` 适用于所有模型,除非在模型级别被覆盖。
属性
stream
:是否流式传输 LLM 响应。目前仅 `anthropic` 和 `ollama` 提供者支持;其他提供者将始终流式传输(默认值:`true`)。temperature
:控制完成的随机性。值越高,输出越多样化。topP
:核采样(nucleus sampling)的累积概率。值越低,响应限制在最高概率质量内的 Token。topK
:每一步考虑的最大 Token 数量。将生成的文本限制在此概率范围内的 Token。presencePenalty
:阻止模型生成已在输出中出现的 Token。frequencyPenalty
:根据 Token 在文本中的频率进行惩罚,减少重复。mirostat
:启用 Mirostat 采样,该采样控制文本生成过程中的困惑度(perplexity)。Ollama、LM Studio 和 llama.cpp 提供者支持(默认值:`0`,其中 `0` = 禁用,`1` = Mirostat,`2` = Mirostat 2.0)。stop
:一个停止 Token 数组,当遇到这些 Token 时将终止完成。允许指定多个结束条件。maxTokens
:在一次完成中生成的最大 Token 数量(默认值:`2048`)。numThreads
:生成过程中使用的线程数量。仅 Ollama 提供者可用,参数名为 `num_thread`。keepAlive
:对于 Ollama,此参数设置在最后一次请求后模型保持加载状态的秒数,如果处于非活动状态则从内存中卸载(默认值:`1800` 秒,即 30 分钟)。numGpu
:对于 Ollama,此参数覆盖用于将模型加载到 VRAM 的 GPU 层数。useMmap
:对于 Ollama,此参数允许模型被映射到内存中。如果禁用,可以在低端设备上提高响应时间,但会减慢流式传输。reasoning
:为 Anthropic Claude 3.7+ 模型启用思考/推理能力。reasoningBudgetTokens
:为 Anthropic Claude 3.7+ 模型中的思考/推理设置预算 Token。
示例
{
"completionOptions": {
"stream": false,
"temperature": 0.5
}
}
requestOptions
默认 HTTP 请求选项,适用于所有模型和上下文提供者,除非在模型级别被覆盖。
属性
-
timeout
:对 LLM 的每次请求的超时时间(默认值:7200 秒)。 -
verifySsl
:是否验证请求的 SSL 证书。 -
caBundlePath
:自定义 CA Bundle 的路径,用于 HTTP 请求 - `.pem` 文件(或路径数组)的路径 -
proxy
:用于 HTTP 请求的代理 URL。 -
headers
:HTTP 请求的自定义头部(headers)。 -
extraBodyProperties
:要与 HTTP 请求正文合并的附加属性。 -
noProxy
:应绕过指定代理的主机名列表。 -
clientCertificate
:用于 HTTP 请求的客户端证书。cert
:客户端证书文件的路径。key
:客户端证书密钥文件的路径。passphrase
:客户端证书密钥文件的可选密码短语。
示例
{
"requestOptions": {
"headers": {
"X-Auth-Token": "xxx"
}
}
}
reranker
用于响应排名的 reranker 模型配置。
属性
name
(必需):Reranker 名称,例如 `cohere`、`voyage`、`llm`、`huggingface-tei`、`bedrock`参数
:model
:模型名称apiKey
:API 密钥region
:区域(仅限 Bedrock)
示例
{
"reranker": {
"name": "voyage",
"params": {
"model": "rerank-2",
"apiKey": "<VOYAGE_API_KEY>"
}
}
}
docs
要索引的文档网站列表。
属性
title
(必需):文档网站的标题,显示在下拉列表等位置。startUrl
(必需):抓取的起始页面 - 通常是文档的根页面或介绍页面
maxDepth
:抓取链接的最大深度。默认值 `4`favicon
:网站 favicon 的 URL(默认值为从 `startUrl` 获取的 `/favicon.ico`)。useLocalCrawling
:跳过默认抓取工具,仅使用本地抓取工具进行抓取。
示例
"docs": [
{
"title": "Continue",
"startUrl": "https://docs.continue.org.cn/intro",
"faviconUrl": "https://docs.continue.org.cn/favicon.ico",
}
]
slashCommands
在侧边栏输入 "/" 启动的自定义命令。命令包括预定义功能或用户自定义功能。
属性
name
:命令名称。选项包括 "issue"、"share"、"cmd"、"http"、"commit" 和 "review"。description
:命令的简要描述。step
:(已弃用)用于内置命令;为预配置选项设置名称。params
:配置命令行为的附加参数(特定于命令 - 请参阅命令的代码)
以下命令是内置的,可以添加到 `config.json` 中使其可见
/share
生成当前聊天记录的可共享 Markdown 副本。
{
"slashCommands": [
{
"name": "share",
"description": "Export the current chat session to markdown",
"params": { "outputDir": "~/.continue/session-transcripts" }
}
]
}
使用 `outputDir` 参数指定 Markdown 文件的保存位置。
/cmd
从自然语言生成 Shell 命令,并(仅在 VS Code 中)自动将其粘贴到终端。
{
"slashCommands": [
{
"name": "cmd",
"description": "Generate a shell command"
}
]
}
/commit
向 LLM 显示您当前的 git diff,并要求它生成提交消息。
{
"slashCommands": [
{
"name": "commit",
"description": "Generate a commit message for the current changes"
}
]
}
/http
在您自己的 HTTP 端点上编写自定义斜杠命令。在 params 对象中设置 'url' 指定您已设置的端点。该端点应返回一系列字符串更新,这些更新将流式传输到 Continue 侧边栏。请参阅我们的基本 FastAPI 示例 作为参考。
{
"slashCommands": [
{
"name": "http",
"description": "Does something custom",
"params": { "url": "<my server endpoint>" }
}
]
}
/issue
描述您想生成的问题,Continue 会将其转化为格式良好的标题和正文,然后为您提供草稿链接,以便您提交。请确保设置您要为其生成问题的仓库 URL。
{
"slashCommands": [
{
"name": "issue",
"description": "Generate a link to a drafted GitHub issue",
"params": { "repositoryUrl": "https://github.com/continuedev/continue" }
}
]
}
/onboard
onboard 斜杠命令通过分析项目结构、README 文件和依赖文件来帮助您熟悉新项目。它识别关键文件夹,解释其用途,并突出显示使用的流行包。此外,它还提供了对项目架构的见解。
{
"slashCommands": [
{
"name": "onboard",
"description": "Familiarize yourself with the codebase"
}
]
}
示例
{
"slashCommands": [
{
"name": "commit",
"description": "Generate a commit message"
},
{
"name": "share",
"description": "Export this session as markdown"
},
{
"name": "cmd",
"description": "Generate a shell command"
}
]
}
您还可以通过遵循本教程添加自己的斜杠命令。
customCommands
侧边栏中用于提示快捷方式的用户自定义命令,允许快速访问常用操作。
属性
name
:自定义命令的名称。prompt
:命令的文本提示。description
:解释命令功能的简要描述。
示例
{
"customCommands": [
{
"name": "test",
"prompt": "Write a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.",
"description": "Write unit tests for highlighted code"
}
]
}
contextProviders
聊天时将显示为选项的预定义上下文提供者列表,及其使用 `params` 进行的自定义。
属性
name
:上下文提供者的名称,例如 `docs` 或 `web`params
:一个特定于上下文提供者的参数记录,用于配置上下文行为
示例
{
"contextProviders": [
{
"name": "code",
"params": {}
},
{
"name": "docs",
"params": {}
},
{
"name": "diff",
"params": {}
},
{
"name": "open",
"params": {}
}
]
}
userToken
一个可选的 Token,用于标识用户,主要用于需要身份验证的服务。
systemMessage
定义一个系统消息,该消息出现在语言模型的每个响应之前,提供指导或上下文。
experimental
以下描述了几个实验性配置参数
实验性
:
defaultContext
:定义 LLM 的默认上下文。使用与 `contextProviders` 相同的格式,但包含一个附加的 `query` 属性来指定自定义查询参数。模型角色
:inlineEdit
:内联编辑的模型标题。applyCodeBlock
:应用代码块的模型标题。repoMapFileSelection
:仓库地图选择的模型标题。
quickActions
:自定义快速操作数组title
(必需):快速操作的显示标题。prompt
(必需):快速操作的提示。sendToChat
:如果为 `true`,将结果发送到聊天;否则插入到文档中。默认值为 `false`。
上下文菜单提示
:comment
:用于注释代码的提示。docstring
:用于添加文档字符串(docstring)的提示。fix
:用于修复代码的提示。optimize
:用于优化代码的提示。
modelContextProtocolServers
:请参阅 模型上下文协议
示例
{
"experimental": {
"modelRoles": {
"inlineEdit": "Edit Model"
},
"quickActions": [
{
"title": "Tags",
"prompt": "Return a list of any function and class names from the included code block",
"sendToChat": true
}
],
"contextMenuPrompts": {
"fixGrammar": "Fix grammar in the above but allow for typos."
},
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/NAME/test.db"]
}
}
]
}
}
已完全弃用的设置
一些已弃用的 `config.json` 设置不再存储在配置中,并已移至用户设置页面进行编辑。如果在 `config.json` 中找到它们,它们将自动迁移到用户设置并从 `config.json` 中移除。
-
allowAnonymousTelemetry
:此值将迁移到最安全的合并值(如果任一值为 `false`,则结果为 `false`)。 -
promptPath
:此值在迁移期间将被覆盖。 -
disableIndexing
:此值将迁移到最安全的合并值(如果任一值为 `true`,则结果为 `true`)。 -
disableSessionTitles
/ui.getChatTitles
:此值将迁移到最安全的合并值(如果任一值为 `true`,则结果为 `true`)。如果设置为 false,则 `getChatTitles` 优先。 -
tabAutocompleteOptions
useCache
:此值在迁移期间将被覆盖。disableInFiles
:此值将迁移到最安全的合并值(文件匹配数组合并/去重)multilineCompletions
:此值在迁移期间将被覆盖。
-
实验性
useChromiumForDocsCrawling
:此值在迁移期间将被覆盖。readResponseTTS
:此值在迁移期间将被覆盖。
-
ui
- 所有都会在迁移期间被覆盖codeBlockToolbarPosition
fontSize
codeWrap
displayRawMarkdown
showChatScrollbar
有关每个选项的更多信息,请参阅用户设置页面。