continue: config.yaml Reference
类别: Continue AICodingAssistant 标签: Continue AICodingAssistant config.yaml GitHubCopilot目录
简介
Continue hub 助手使用 config.yaml
规范定义。本地助手也可以通过放置在全局 .continue 文件夹中的 YAML 文件 config.yaml
进行配置(Mac 上为 ~/.continue
,Windows 上为 %USERPROFILE%\.continue
)
:::info
Config YAML 替代了 config.json
。查看迁移指南。
:::
一个助手由以下部分组成:
- 顶级属性,用于指定助手的
name
、version
和config.yaml
的schema
- 块列表,这些是可组合的编码助手构建块数组,可供助手使用,如模型、文档和上下文提供者。
块是编码助手的一个独立构建块,例如一个模型或一个文档来源。在 config.yaml
语法中,块包含与助手相同的顶级属性(name
、version
和 schema
),但在其所属的块类型下只有一个项目。
可以在 Continue hub 上找到块和助手的示例。
助手可以显式定义块(参见下面的属性),也可以导入和配置现有的 hub 块。
使用块
Hub 块和助手通过格式为 owner-slug/block-or-assistant-slug
的标识符识别,所有者可以是用户或组织。
可以通过在块类型下添加 uses
子句将块导入到助手中。这可以与该类型的其他 uses
子句或显式块一起使用。
:::info
注意,uses
块不能与本地 config.yaml
一起使用
:::
例如,以下助手导入了一个 Anthropic 模型并定义了一个 Ollama DeepSeek 模型。
models:
- uses: anthropic/claude-3.5-sonnet # 导入的模型块
- model: deepseek-reasoner # 显式定义的模型块
provider: ollama
输入
块可以接收用户输入,包括 hub 密钥和原始文本值。要创建具有输入的块,请使用 mustache 模板,如下所示:
name: myprofile/custom-model
models:
- name: My Favorite Model
provider: anthropic
apiKey: $
defaultCompletionOptions:
temperature: $
然后可以这样导入:
name: myprofile/custom-assistant
models:
- uses: myprofile/custom-model
with:
ANTHROPIC_API_KEY: $
TEMP: 0.9
注意,hub 密钥可以作为输入传递,使用类似的 mustache 格式:secrets.SECRET_NAME
。
覆盖
块属性也可以使用 override
直接覆盖。例如:
name: myprofile/custom-assistant
models:
- uses: myprofile/custom-model
with:
ANTHROPIC_API_KEY: $
TEMP: 0.9
override:
roles:
- chat
属性
以下是 config.yaml
中可以设置的每个属性的详细信息。
除非明确标记为必需,否则所有级别的所有属性都是可选的。
config.yaml
配置文件中的顶级属性有:
name
(必需)version
(必需)schema
(必需)models
context
rules
prompts
docs
mcpServers
data
name
name
属性指定项目或配置的名称。
name: MyProject
version
version
属性指定项目或配置的版本。
schema
schema
属性指定用于 config.yaml
的模式版本,例如 v1
models
models
部分定义了配置中使用的语言模型。这些模型用于聊天、编辑和总结等功能。
属性:
name
(必需):在配置中唯一标识模型的名称。provider
(必需):模型的提供者(例如,openai
、ollama
)。model
(必需):特定的模型名称(例如,gpt-4
、starcoder
)。roles
:指定此模型可以执行的角色数组,如chat
、autocomplete
、embed
、rerank
、edit
、apply
、summarize
。默认值为[chat, edit, apply, summarize]
。注意,目前不使用summarize
角色。capabilities
:表示模型能力的字符串数组,将覆盖 Continue 基于提供者和模型的自动检测。支持的能力包括tool_use
和image_input
。-
embedOptions
:如果模型包含角色embed
,这些设置适用于嵌入:maxChunkSize
:每个文档块的最大标记数。最小为 128 个标记。maxBatchSize
:每个请求的最大块数。最小为 1 个块。
-
defaultCompletionOptions
:模型设置的默认完成选项。属性:
contextLength
:模型的最大上下文长度,通常以标记计算。maxTokens
:在完成中生成的最大标记数。temperature
:控制完成的随机性。值范围从0.0
(确定性)到1.0
(随机)。topP
:核采样的累积概率。topK
:每一步考虑的最大标记数。stop
:将终止完成的停止标记数组。n
:要生成的完成数量。
-
requestOptions
:特定于模型的 HTTP 请求选项。属性:
timeout
:每个语言模型请求的超时时间。verifySsl
:是否验证请求的 SSL 证书。caBundlePath
:HTTP 请求的自定义 CA 包的路径。proxy
:HTTP 请求的代理 URL。headers
:HTTP 请求的自定义头部。extraBodyProperties
:要与 HTTP 请求主体合并的附加属性。noProxy
:应绕过指定代理的主机名列表。clientCertificate
:HTTP 请求的客户端证书。cert
:客户端证书文件的路径。key
:客户端证书密钥文件的路径。passphrase
:客户端证书密钥文件的可选密码。
示例:
models:
- name: GPT-4o
provider: openai
model: gpt-4o
roles:
- chat
- edit
- apply
defaultCompletionOptions:
temperature: 0.7
maxTokens: 1500
- name: Codestral
provider: mistral
model: codestral-latest
roles:
- autocomplete
- name: My Model - OpenAI-Compatible
provider: openai
apiBase: http://my-endpoint/v1
model: my-custom-model
capabilities:
- tool_use
- image_input
roles:
- chat
- edit
context
context
部分定义了上下文提供者,它们为语言模型提供额外的信息或上下文。每个上下文提供者可以配置特定参数。
关于每个上下文提供者的使用/参数的更多信息可以在这里找到
属性:
provider
(必需):上下文提供者的标识符或名称(例如,code
、docs、web
)。params
:用于配置上下文提供者行为的可选参数。
示例:
context:
- provider: files
- provider: code
- provider: codebase
params:
nFinal: 10
- provider: docs
- provider: diff
- provider: folder
- provider: terminal
rules
LLM 应遵循的规则列表。这些会插入到所有聊天请求的系统消息中。
示例:
rules:
- uses: myprofile/my-mood-setter
with:
MOOD: happy
- Always annotate Python functions with their parameter and return types
- Always write Google style docstrings for functions and classes
prompts
可以从聊天窗口调用的自定义提示列表。每个提示都有名称、描述和实际的提示文本。
prompts:
- name: check
description: Check for mistakes in my code
prompt: |
Please read the highlighted code and check for any mistakes. You should look for the following, and be extremely vigilant:
- Syntax errors
- Logic errors
- Security vulnerabilities
docs
要索引的文档站点列表。
属性:
name
(必需):文档站点的名称,显示在下拉菜单等中。startUrl
(必需):爬取的起始页面 - 通常是文档的根页面或介绍页面maxDepth
:爬取的最大链接深度。默认为4
favicon
:站点 favicon 的 URL(默认是startUrl
的/favicon.ico
)。useLocalCrawling
:跳过默认爬取器,只使用本地爬取器爬取。
示例:
docs:
- name: Continue
startUrl: https://docs.continue.dev/intro
favicon: https://docs.continue.dev/favicon.ico
mcpServers
Model Context Protocol 是 Anthropic 提出的一个标准,用于统一提示、上下文和工具使用。Continue 通过 MCP 上下文提供者支持任何 MCP 服务器。
属性:
name
(必需):MCP 服务器的名称。command
(必需):用于启动服务器的命令。args
:命令的可选参数数组。env
:服务器进程的可选环境变量映射。
示例:
mcpServers:
- name: My MCP Server
command: uvx
args:
- mcp-server-sqlite
- --db-path
- /Users/NAME/test.db
data
开发数据将发送到的目的地。
属性:
name
(必需):数据目的地的显示名称destination
(必需):接收数据的目的地/端点。可以是:- 接收 JSON blob 的 POST 请求的 HTTP 端点
- 指向事件将被转储为
.jsonl
文件的目录的文件 URL
schema
(必需):要发送的 JSON blob 的模式版本events
:要包含的事件名称数组。如果未指定,默认包括所有事件。level
:事件字段的预定义过滤器。选项包括all
和noCode
;后者排除文件内容、提示和完成等数据。默认为all
apiKey
:随请求一起发送的 API 密钥(Bearer 标头)-
requestOptions
:事件 POST 请求的选项。格式与模型 requestOptions 相同。示例:
data:
- name: Local Data Bank
destination: file:///Users/dallin/Documents/code/continuedev/continue-extras/external-data
schema: 0.2.0
level: all
- name: My Private Company
destination: https://mycompany.com/ingest
schema: 0.2.0
level: noCode
events:
- autocomplete
- chatInteraction
完整的 YAML 配置示例
将所有内容整合在一起,以下是一个完整的 config.yaml
配置文件示例:
name: MyProject
version: 0.0.1
schema: v1
models:
- uses: anthropic/claude-3.5-sonnet
with:
ANTHROPIC_API_KEY: $
override:
defaultCompletionOptions:
temperature: 0.8
- name: GPT-4
provider: openai
model: gpt-4
roles:
- chat
- edit
defaultCompletionOptions:
temperature: 0.5
maxTokens: 2000
requestOptions:
headers:
Authorization: Bearer YOUR_OPENAI_API_KEY
- name: Ollama Starcoder
provider: ollama
model: starcoder
roles:
- autocomplete
defaultCompletionOptions:
temperature: 0.3
stop:
- "\n"
rules:
- Give concise responses
- Always assume TypeScript rather than JavaScript
prompts:
- name: test
description: Unit test a function
prompt: |
Please write a complete suite of unit tests for this function. You should use the Jest testing framework. The tests should cover all possible edge cases and should be as thorough as possible. You should also include a description of each test case.
- uses: myprofile/my-favorite-prompt
context:
- provider: diff
- provider: file
- provider: codebase
- provider: code
- provider: docs
params:
startUrl: https://docs.example.com/introduction
rootUrl: https://docs.example.com
maxDepth: 3
mcpServers:
- name: DevServer
command: npm
args:
- run
- dev
env:
PORT: "3000"
data:
- name: My Private Company
destination: https://mycompany.com/ingest
schema: 0.2.0
level: noCode
events:
- autocomplete
- chatInteraction
使用 YAML 锚点避免配置重复
您还可以使用节点锚点来避免属性重复。为此,需要添加 YAML 版本头 %YAML 1.1
,以下是使用锚点的 config.yaml
配置文件示例:
%YAML 1.1
---
name: MyProject
version: 0.0.1
model_defaults: &model_defaults
provider: openai
apiKey: my-api-key
apiBase: https://api.example.com/llm
models:
- name: mistral
<<: *model_defaults
model: mistral-7b-instruct
roles:
- chat
- edit
- name: qwen2.5-coder-7b-instruct
<<: *model_defaults
model: qwen2.5-coder-7b-instruct
roles:
- chat
- edit
- name: qwen2.5-coder-7b
<<: *model_defaults
model: qwen2.5-coder-7b
useLegacyCompletionsEndpoint: false
roles:
- autocomplete
完全弃用的设置
一些已弃用的 config.json
设置不再存储在配置中,已移到可通过用户设置页面编辑。如果在 config.json
中找到,它们将被迁移到用户设置页面并从 config.json
中删除。
allowAnonymousTelemetry
:此值将迁移为最安全的合并值(如果任一为false
,则为false
)。promptPath
:此值将在迁移时覆盖。disableIndexing
:此值将迁移为最安全的合并值(如果任一为true
,则为true
)。disableSessionTitles
/ui.getChatTitles
:此值将迁移为最安全的合并值(如果任一为true
,则为true
)。如果getChatTitles
设置为 false,则优先使用。tabAutocompleteOptions
useCache
:此值将在迁移时覆盖。disableInFiles
:此值将迁移为最安全的合并值(文件匹配数组合并/去重)multilineCompletions
:此值将在迁移时覆盖。
experimental
useChromiumForDocsCrawling
:此值将在迁移时覆盖。readResponseTTS
:此值将在迁移时覆盖。
-
ui
- 所有都将在迁移时覆盖codeBlockToolbarPosition
fontSize
codeWrap
displayRawMarkdown
showChatScrollbar
有关每个选项的更多信息,请参见用户设置页面。