Skip to content

OpenCode 的 Modes 功能让你为不同场景配置不同的 AI 行为。内置 Build(全功能开发)和 Plan(只读分析规划)两种模式,也可以通过配置文件创建自定义模式,指定模型、temperature、系统 Prompt 和可用工具。

注意:Modes 功能目前通过 agent 选项在 opencode 配置中进行设置,mode 选项已废弃。详见 Agents 文档

OpenCode 的模式系统让你根据任务类型定制 AI 的行为——使用什么模型、开放哪些工具权限、遵循什么系统提示。


内置模式

Build(默认)

全功能开发模式,所有工具均可用。这是标准的开发模式,适合需要文件操作和命令执行的场景。

Plan

规划分析模式,以下工具默认禁用:

工具说明
write不能创建新文件
edit不能修改现有文件(.opencode/plans/*.md 除外)
patch不能应用 patch
bash不能执行 Shell 命令

Plan 模式适合需要 AI 分析代码、提出建议或制定计划,但不希望它直接修改代码库的场景。


切换模式

在会话中按 Tab 键(或配置的 switch_mode 快捷键)可以在模式之间切换。


配置

JSON 配置

opencode.json 中配置:

json
{
  "$schema": "https://opencode.ai/config.json",
  "mode": {
    "build": {
      "model": "anthropic/claude-sonnet-4-20250514",
      "prompt": "{file:./prompts/build.txt}",
      "tools": {
        "write": true,
        "edit": true,
        "bash": true
      }
    },
    "plan": {
      "model": "anthropic/claude-haiku-4-20250514",
      "tools": {
        "write": false,
        "edit": false,
        "bash": false
      }
    }
  }
}

Markdown 配置

也可以用 Markdown 文件定义模式,文件名即模式名:

  • 全局:~/.config/opencode/modes/
  • 项目级:.opencode/modes/
markdown
---
model: anthropic/claude-sonnet-4-20250514
temperature: 0.1
tools:
  write: false
  edit: false
  bash: false
---

你处于代码审查模式。请关注:

- 代码质量和最佳实践
- 潜在 Bug 和边界情况
- 性能影响
- 安全考量

提供建设性反馈,不要直接修改代码。

上面的文件命名为 review.md 即创建了 review 模式。


Model

为特定模式覆盖默认模型,不同任务使用不同能力的模型:

json
{
  "mode": {
    "plan": {
      "model": "anthropic/claude-haiku-4-20250514"
    }
  }
}

Temperature

控制 AI 响应的随机性和创造性(通常 0.0 ~ 1.0):

范围特点适用场景
0.0-0.2专注确定性强代码分析、规划
0.3-0.5平衡适中通用开发任务
0.6-1.0更有创意头脑风暴、探索
json
{
  "mode": {
    "analyze": { "temperature": 0.1 },
    "build": { "temperature": 0.3 },
    "brainstorm": { "temperature": 0.7 }
  }
}

未指定时使用模型默认值(大多数模型为 0,Qwen 系列为 0.55)。


Prompt

为模式指定系统 Prompt 文件(相对于配置文件位置):

json
{
  "mode": {
    "review": {
      "prompt": "{file:./prompts/code-review.txt}"
    }
  }
}

Tools

控制模式下可用的工具:

json
{
  "mode": {
    "readonly": {
      "tools": {
        "write": false,
        "edit": false,
        "bash": false,
        "read": true,
        "grep": true,
        "glob": true
      }
    }
  }
}

可控制的内置工具:

工具功能
bash执行 Shell 命令
edit修改现有文件
write创建新文件
read读取文件内容
grep搜索文件内容
glob按模式查找文件
patch应用 patch
todowrite管理待办列表
webfetch抓取网页内容

未指定时默认开启所有工具。


自定义模式示例

调试模式(只读 + 可运行命令)

markdown
---
temperature: 0.1
tools:
  bash: true
  read: true
  grep: true
  write: false
  edit: false
---

你处于调试模式。通过仔细分析来调查和诊断问题。
使用 bash 命令检查系统状态,读取相关文件和日志。
不要修改任何文件,只调查并报告发现。

重构模式

markdown
---
model: anthropic/claude-sonnet-4-20250514
temperature: 0.2
tools:
  edit: true
  read: true
  grep: true
  glob: true
---

你处于重构模式。在不改变功能的前提下提升代码质量。
优先改善可读性和可维护性,减少代码重复,确保所有测试继续通过。

常见问题

Q: Modes 和 Agents 有什么区别?

A: 两者功能类似,但 Agents 是推荐的新方式(Modes 已废弃)。Agents 支持更丰富的配置,包括子 Agent 编排。如果你正在新建配置,直接用 Agents 即可。

Q: 会话中途切换模式会影响已有的对话历史吗?

A: 不会,切换模式只影响后续 AI 响应的工具权限和模型,已有对话历史保持不变。

Q: 可以给同一个项目配置多个自定义模式吗?

A: 可以。在 .opencode/modes/ 目录下创建多个 Markdown 文件,或在 opencode.jsonmode 对象中添加多个条目即可。