Skip to content

Latest commit

 

History

History
173 lines (122 loc) · 8.61 KB

File metadata and controls

173 lines (122 loc) · 8.61 KB

Deep Code 配置

配置层级

配置按以下优先级顺序应用(数字较小的会被数字较大的覆盖):

层级 配置来源 说明
1 默认值 应用程序内硬编码的默认值
2 用户设置文件 当前用户的全局设置
3 项目设置文件 项目特定的设置
4 环境变量 系统范围或会话特定的变量

设置文件

Deep Code 使用 settings.json 设置文件进行持久化配置,支持两个层级的存放位置:

文件类型 位置 作用范围
用户设置文件 ~/.deepcode/settings.json 适用于当前用户的所有 Deep Code 会话。
项目设置文件 项目根目录/.deepcode/settings.json 仅在该特定项目中运行 Deep Code 时生效。项目设置会覆盖用户设置。

settings.json 中的可用设置

以下是 settings.json 支持的全部顶层字段,以及 env 内部支持的子字段:

字段 类型 说明
env object 环境变量分组(见下方子字段表)
model string 模型名称。优先级高于 env.MODEL
thinkingEnabled boolean 是否启用思考模式(DeepSeek V4 系列默认启用)
reasoningEffort string 推理强度,可选 "high" 或 "max"(默认 "max")
debugLogEnabled boolean 是否启用调试日志输出(默认 false)
notify string 任务完成通知脚本的完整路径(如 Slack 通知脚本)
webSearchTool string 自定义联网搜索脚本的完整路径
mcpServers object MCP 服务器配置(键为服务名,值为 McpServerConfig 对象)

env 子字段

字段 类型 说明
MODEL string 模型名称。例如 "deepseek-v4-pro"、"deepseek-v4-flash"
BASE_URL string API 请求的基础 URL。例如 "https://api.deepseek.com"
API_KEY string API 密钥
THINKING_ENABLED string 是否启用思考模式
REASONING_EFFORT string 推理强度
DEBUG_LOG_ENABLED string 是否启用调试日志输出
<其他任意KEY> string 自定义环境变量

thinkingEnabled — 思考模式

是否启用 DeepSeek 思考模式。设置为 true 启用、false 禁用。

  • 对于 deepseek-v4-pro 和 deepseek-v4-flash,思考模式默认启用。
  • 对于其他模型,思考模式默认关闭。

reasoningEffort — 推理强度

当思考模式启用时,控制模型思考的深度:

值 说明
max 最大推理深度(默认值)
high 较高推理深度,token消耗相对较小

notify — 任务完成通知

设置一个 Shell 脚本的完整路径。当 AI 助手完成一轮任务后,会自动执行该脚本,可用于发送通知(如 Slack 消息)。

{
  "notify": "/path/to/slack-notify.sh"
}

webSearchTool — 自定义联网搜索

Deep Code 内置免费可用的 Web Search 工具。如果需要自定义搜索逻辑,可将 webSearchTool 设为一个可执行脚本的完整路径:

{
  "webSearchTool": "/path/to/my-search-script.sh"
}

脚本接收一个搜索查询参数,输出 JSON 格式的结果供 AI 使用。

mcpServers — MCP 服务器

MCP(Model Context Protocol)服务器配置。值是键值对,键为服务名称,值为服务器配置对象。

{
  "mcpServers": {
    "<服务名>": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
      }
    }
  }
}
McpServerConfig 字段 类型 必填 说明
command string 是 可执行文件路径或命令(如 npx、node、python)
args string[] 否 传递给命令的参数列表
env object 否 传递给 MCP 服务器进程的环境变量

当 command 为 npx 时,Deep Code 会自动在参数前补充 -y。

详细 MCP 使用说明请参考 mcp.md。

debugLogEnabled — 调试日志

设为 true 可让程序输出详细的调试日志(默认 false),用于排查 API 调用和工具执行的问题。

环境变量优先级

环境变量是配置应用程序的常用方式,尤其适用于敏感信息(如 api-key)或可能在不同环境之间更改的设置。

优先级原则

环境变量优先级遵循“越具体、越局部的配置,优先级越高”和“env文件默认保护现有环境,系统变量高于env文件”的覆盖逻辑。(settings.json的env对象可以认为是一种env文件)

优先级层级 (由低到高)

  1. settings.json 外层的 env:这是针对整个工具及其所有子进程的通用配置(全局变量)。可被外层环境变量覆盖,但环境变量KEY会移除DEEPCODE_前缀。
  2. settings.json mcpServers 内定义的 env:这是针对特定 MCP 服务的最具体配置(局部变量)。可被外层环境变量覆盖,但环境变量KEY会移除MCP_前缀。
  3. Shell 环境系统变量:操作系统层面的环境变量。

场景

一、设置模型的api_key, base_url

按以下优先级顺序应用(数字较小的会被数字较大的覆盖)(以api_key为例):

  1. 硬编码默认值: ""
  2. 用户级settings.json: {"env": {"API_KEY": "abc123"}}
  3. 项目级settings.json: {"env": {"API_KEY": "abc123"}}
  4. 系统环境变量: DEEPCODE_API_KEY=abc123 deepcode

二、设置模型的model, thinkingEnabled, reasoningEffort

按以下优先级顺序应用(数字较小的会被数字较大的覆盖)(以thinkingEnabled为例):

  1. 硬编码默认值: true
  2. 用户级settings.json: {"env": {"THINKING_ENABLED": "true"}}
  3. 用户级settings.json: {"thinkingEnabled": true}
  4. 项目级settings.json: {"env": {"THINKING_ENABLED": "true"}}
  5. 项目级settings.json: {"thinkingEnabled": true}
  6. 系统环境变量: DEEPCODE_THINKING_ENABLED=true deepcode

三、设置启动notify, webSearchTool等外挂脚本的环境变量

按以下优先级顺序应用(数字较小的会被数字较大的覆盖)(以notify为例):

  1. 硬编码默认值:os.environ.get('WEBHOOK', '...') # notify脚本代码
  2. 用户级settings.json: {"env": {"WEBHOOK": "..."}}
  3. 项目级settings.json: {"env": {"WEBHOOK": "true"}}
  4. 系统环境变量: DEEPCODE_WEBHOOK=... deepcode

四、设置MCP Service的环境变量

按以下优先级顺序应用(数字较小的会被数字较大的覆盖)(以github MCP server为例):

  1. 用户级settings.json: {"mcpServers":{"github":{"env":{"GITHUB_PERSONAL_ACCESS_TOKEN":"..."}}}}
  2. 用户级settings.json: {"env": {"MCP_GITHUB_PERSONAL_ACCESS_TOKEN": "..."}}
  3. 项目级settings.json: {"mcpServers":{"github":{"env":{"GITHUB_PERSONAL_ACCESS_TOKEN":"..."}}}}
  4. 项目级settings.json: {"env": {"MCP_GITHUB_PERSONAL_ACCESS_TOKEN": "..."}}
  5. 系统环境变量: DEEPCODE_MCP_GITHUB_PERSONAL_ACCESS_TOKEN=... deepcode