跳到主要内容

简介

Continue 代理使用 config.yaml 规范定义。 代理由模型、规则和工具(MCP 服务器)组成。

属性

以下是可以在 config.yaml 中设置的每个属性的详细信息。 除非明确标记为必需,否则所有级别的所有属性都是可选的。 config.yaml 配置文件中的顶级属性是:

name

name 属性指定您的项目或配置的名称。
config.yaml
name: My Config
version: 1.0.0
schema: v1

version

version 属性指定您的项目或配置的版本。

schema

schema 属性指定用于 config.yaml 的 schema 版本,例如 v1

models

models 部分定义了配置中使用的语言模型。模型用于聊天、编辑和摘要等功能。 属性:
  • name (必需):在配置中唯一标识模型的名称。
  • provider (必需):模型的提供者(例如,openaiollama)。
  • model (必需):具体的模型名称(例如,gpt-4starcoder)。
  • apiBase:可用于覆盖每个模型指定的默认 API 基址
  • roles:一个数组,指定此模型可以扮演的角色,例如 chatautocompleteembedrerankeditapplysummarize。默认值为 [chat, edit, apply, summarize]。请注意,目前未使用 summarize 角色。
  • capabilities:表示模型功能的字符串数组,它将覆盖 Continue 根据提供者和模型进行的自动检测。有关详细信息,请参阅模型功能指南。支持的功能包括
    • tool_use:启用函数/工具调用支持(代理模式所需)
    • image_input:启用图像上传和处理支持
    Continue 会自动检测大多数模型的这些功能,但在使用自定义部署或自动检测无法正常工作时,您可以覆盖此设置。
  • maxStopWords:允许的最大停用词数量,以避免因列表过长导致 API 错误。
  • promptTemplates:可用于覆盖不同模型角色的默认提示模板。有效值为 chateditapplyautocompletechat 属性必须是有效的模板名称,例如 llama3anthropic
  • chatOptions:如果模型包含 chat 角色,这些设置适用于代理和聊天模式
    • baseSystemMessage:可用于覆盖聊天模式的默认系统提示。
    • baseAgentSystemMessage:可用于覆盖代理模式的默认系统提示。
    • basePlanSystemMessage:可用于覆盖计划模式的默认系统提示。
  • embedOptions:如果模型包含 embed 角色,这些设置适用于嵌入
    • maxChunkSize:每个文档块的最大标记数。最小为 128 个标记。
    • maxBatchSize:每个请求的最大块数。最小为 1 个块。
  • defaultCompletionOptions:模型设置的默认补全选项。
    • contextLength:模型的最大上下文长度,通常以标记为单位。
    • maxTokens:一次补全中生成的最大标记数。
    • temperature:控制补全的随机性。值范围从 0.0(确定性)到 1.0(随机)。
    • topP:核心采样中的累积概率。
    • topK:每一步考虑的最大标记数。
    • stop:一个停用标记数组,将终止补全。
    • reasoning:布尔值,用于启用 Anthropic Claude 3.7+ 和某些 Ollama 模型的思考/推理功能。
    • reasoningBudgetTokens:Anthropic Claude 3.7+ 模型中思考/推理的预算标记数。
  • requestOptions:特定于模型的 HTTP 请求选项。
    • timeout:对语言模型每个请求的超时。
    • verifySsl:是否验证请求的 SSL 证书。
    • caBundlePath:HTTP 请求的自定义 CA 捆绑包路径。
    • proxy:HTTP 请求的代理 URL。
    • headers:HTTP 请求的自定义标头。
    • extraBodyProperties:与 HTTP 请求正文合并的其他属性。
    • noProxy:应绕过指定代理的主机名列表。
    • clientCertificate:HTTP 请求的客户端证书。
      • cert:客户端证书文件的路径。
      • key:客户端证书密钥文件的路径。
      • passphrase:客户端证书密钥文件的可选密码。
  • autocompleteOptions:如果模型包含 autocomplete 角色,这些设置适用于 Tab 键自动补全
    • disable:如果为 true,则禁用此模型的自动补全。
    • maxPromptTokens:自动补全提示的最大标记数。
    • debounceDelay:触发自动补全前的延迟(毫秒)。
    • modelTimeout:自动补全请求的模型超时(毫秒)。
    • maxSuffixPercentage:为后缀分配的提示的最大百分比。
    • prefixPercentage:为前缀分配的输入百分比。
    • transform:如果为 false,则禁用多行补全的修剪。默认为 true。适用于生成更好多行补全而无需转换的模型。
    • template:使用 Mustache 语法的自定义自动补全模板。您可以使用 {{{ prefix }}}{{{ suffix }}}{{{ filename }}}{{{ reponame }}}{{{ language }}} 变量。
    • onlyMyCode:仅包含仓库中的代码作为上下文。
    • useCache:如果为 true,则启用补全缓存。
    • useImports:如果为 true,则在上下文中包含导入。
    • useRecentlyEdited:如果为 true,则在上下文中包含最近编辑的文件。
    • useRecentlyOpened:如果为 true,则在上下文中包含最近打开的文件。
示例
config.yaml
name: My Config
version: 1.0.0
schema: v1
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
    autocompleteOptions:
      debounceDelay: 250
      maxPromptTokens: 1024
      onlyMyCode: true
  - 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 (必需):上下文提供者的标识符或名称(例如,codedocsweb
  • name:提供者的可选名称
  • params:配置上下文提供者行为的可选参数。
示例
config.yaml
name: My Config
version: 1.0.0
schema: v1
context:
  - provider: file
  - provider: code
  - provider: diff
  - provider: http
    name: Context Server 1
    params:
      url: "https://api.example.com/server1"
  - provider: terminal

rules

规则被连接到所有 代理聊天编辑 请求的系统消息中。 配置示例:
config.yaml
name: My Config
version: 1.0.0
schema: v1
rules:
  - uses: sanity/sanity-opinionated # rules file stored on Continue Mission Control
  - uses: file://user/Desktop/rules.md # rules file stored on local computer
规则文件示例
rules.md
---
name: Pirate rule
---

Talk like a pirate
有关更多详细信息,请参阅规则深入探讨

prompts

可以使用 / 命令调用提示。 配置示例:
config.yaml
name: My Config
version: 1.0.0
schema: v1
prompts:
  - uses: supabase/create-functions # prompts file stored on Continue Mission Control 
  - uses: file://user/Desktop/prompts.md # prompts file stored on local computer
提示文件示例
prompts.md
---
name: Make pirate comments
invokable: true
---

Rewrite all comments in the active file to talk like a pirate
有关更多详细信息,请参阅提示深入探讨

docs

要索引的文档站点列表。 属性:
  • name (必需):文档站点的名称,显示在下拉菜单等中。
  • startUrl (必需):抓取的起始页面 - 通常是文档的根页面或介绍页面
  • favicon:站点图标的 URL(默认为 startUrl/favicon.ico)。
  • useLocalCrawling:跳过默认爬虫,仅使用本地爬虫抓取。
示例
config.yaml
name: My Config
version: 1.0.0
schema: v1
docs:
  - name: Continue
    startUrl: https://docs.continue.org.cn/intro
    favicon: https://docs.continue.org.cn/favicon.ico

mcpServers

Anthropic 提出的 模型上下文协议 是一个统一提示、上下文和工具使用的标准。Continue 支持任何带有 MCP 上下文提供者的 MCP 服务器。 属性:
  • name (必需):MCP 服务器的名称。
  • command (必需):用于启动服务器的命令。
  • args:命令的可选参数数组。
  • env:服务器进程的环境变量的可选映射。
  • cwd:运行命令的可选工作目录。可以是绝对路径或相对路径。
  • requestOptionsssestreamable-http 服务器的可选请求选项。格式与 模型 requestOptions 相同。
  • connectionTimeout:与 MCP 服务器初始连接的可选超时
示例
config.yaml
name: My Config
version: 1.0.0
schema: v1
mcpServers:
  - name: My MCP Server
    command: uvx
    args:
      - mcp-server-sqlite
      - --db-path
      - ./test.db
    cwd: /Users/NAME/project
    env:
      NODE_ENV: production

data

将发送开发数据的目的地。 属性:
  • name (必需):数据目的地的显示名称
  • destination (必需):将接收数据目的地/端点。可以是
    • 接收 JSON blob 的 HTTP 端点
    • 将事件转储到 .jsonl 文件的目录的文件 URL
  • schema (必需):要发送的 JSON blob 的 schema 版本。选项包括 0.1.00.2.0
  • events:要包含的事件名称数组。如果未指定,则默认为所有事件。
  • level:事件字段的预定义过滤器。选项包括 allnoCode;后者排除文件内容、提示和补全等数据。默认为 all
  • apiKey:随请求发送的 API 密钥(Bearer 标头)
  • requestOptions:事件 POST 请求的选项。格式与 模型 requestOptions 相同。
示例
config.yaml
name: My Config
version: 1.0.0
schema: v1
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 配置文件的完整示例
config.yaml
name: My Config
version: 1.0.0
schema: v1
models:
  - uses: anthropic/claude-3.5-sonnet
    with:
      ANTHROPIC_API_KEY: ${{ secrets.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
    autocompleteOptions:
      debounceDelay: 350
      maxPromptTokens: 1024
      onlyMyCode: true
    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: code
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 配置文件的示例
config.yaml
%YAML 1.1
---
name: My Config
version: 1.0.0
schema: v1
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
    autocompleteOptions:
      debounceDelay: 350
      maxPromptTokens: 1024
      onlyMyCode: true

config.json 已弃用

config.yaml 取代了已弃用的 config.json。查看迁移指南以获取从旧格式转换的帮助。