模式
针对不同使用场景的不同模式。
opencode 中的模式允许您针对不同的使用场景自定义行为、工具和提示。
它内置了两种模式:build 和 plan。您可以通过 opencode 配置来自定义这些模式或配置您自己的模式。
您可以在会话期间切换模式,或在配置文件中配置它们。
内置模式
opencode 内置了两种模式。
Build
Build 是默认模式,启用了所有工具。这是开发工作的标准模式,您需要完全访问文件操作和系统命令。
Plan
一种为规划和分析设计的受限模式。在 plan 模式下,默认禁用以下工具:
write- 无法创建新文件edit- 无法修改现有文件patch- 无法应用补丁bash- 无法执行 shell 命令
当您希望 AI 分析代码、建议更改或创建计划,而不对您的代码库进行任何实际修改时,此模式非常有用。
切换
您可以在会话期间使用 Tab 键切换模式。或者使用您配置的 switch_mode 快捷键。
另请参阅:格式化器 以了解代码格式化配置信息。
配置
您可以通过配置来自定义内置模式或创建自己的模式。可以通过两种方式配置模式:
JSON 配置
在 opencode.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/mode/ - 项目:
.opencode/mode/
---model: anthropic/claude-sonnet-4-20250514temperature: 0.1tools: write: false edit: false bash: false---
你处于代码审查模式。请专注于:
- 代码质量和最佳实践- 潜在的 Bug 和边界情况- 性能影响- 安全考虑
提供建设性的反馈,不要直接进行修改。Markdown 文件名将成为模式名(例如,review.md 会创建一个 review 模式)。
让我们详细看看这些配置选项。
模型
使用 model 配置来覆盖此模式的默认模型。这对于为不同任务使用优化的不同模型非常有用。例如,为规划使用更快的模型,为实施使用能力更强的模型。
{ "mode": { "plan": { "model": "anthropic/claude-haiku-4-20250514" } }}温度
通过 temperature 配置项控制 AI 响应的随机性和创造性。较低的值使响应更专注和确定,而较高的值则增加创造性和可变性。
{ "mode": { "plan": { "temperature": 0.1 }, "creative": { "temperature": 0.8 } }}温度值通常范围在 0.0 到 1.0 之间:
- 0.0-0.2: 非常专注和确定的响应,适用于代码分析和规划
- 0.3-0.5: 平衡的响应,带有一定的创造性,适用于一般开发任务
- 0.6-1.0: 更具创造性和多样性的响应,适用于头脑风暴和探索
{ "mode": { "analyze": { "temperature": 0.1, "prompt": "{file:./prompts/analysis.txt}" }, "build": { "temperature": 0.3 }, "brainstorm": { "temperature": 0.7, "prompt": "{file:./prompts/creative.txt}" } }}如果未指定温度,opencode 将使用模型特定的默认值(大多数模型通常为 0,Qwen 模型通常为 0.55)。
提示词
通过 prompt 配置项为此模式指定自定义系统提示词文件。提示词文件应包含针对该模式用途的特定指令。
{ "mode": { "review": { "prompt": "{file:./prompts/code-review.txt}" } }}此路径相对于配置文件所在的位置。因此,它既适用于全局的 opencode 配置,也适用于项目特定的配置。
工具
通过 tools 配置控制此模式下可用的工具。您可以通过将其设置为 true 或 false 来启用或禁用特定工具。
{ "mode": { "readonly": { "tools": { "write": false, "edit": false, "bash": false, "read": true, "grep": true, "glob": true } } }}如果未指定任何工具,则默认启用所有工具。
可用工具
以下是所有可以通过模式配置控制的工具。
| 工具 | 描述 |
|---|---|
bash | 执行 shell 命令 |
edit | 修改现有文件 |
write | 创建新文件 |
read | 读取文件内容 |
grep | 搜索文件内容 |
glob | 按模式查找文件 |
list | 列出目录内容 |
patch | 将补丁应用到文件 |
todowrite | 管理待办事项列表 |
todoread | 读取待办事项列表 |
webfetch | 获取网络内容 |
自定义模式
您可以通过将自定义模式添加到配置中来创建它们。以下是使用两种方法的示例:
使用 JSON 配置
{ "$schema": "https://opencode.ai/config.json", "mode": { "docs": { "prompt": "{file:./prompts/documentation.txt}", "tools": { "write": true, "edit": true, "bash": false, "read": true, "grep": true, "glob": true } } }}使用 Markdown 文件
在 .opencode/mode/ 目录下创建项目特定的模式文件,或在 ~/.config/opencode/mode/ 目录下创建全局模式文件:
---temperature: 0.1tools: bash: true read: true grep: true write: false edit: false---
您处于调试模式。您的主要目标是帮助调查和诊断问题。
重点关注:
- 通过仔细分析来理解问题- 使用 bash 命令检查系统状态- 读取相关文件和日志- 搜索模式和异常情况- 提供清晰的调查结果说明
不要对文件进行任何更改。仅进行调查和报告。---model: anthropic/claude-sonnet-4-20250514temperature: 0.2tools: edit: true read: true grep: true glob: true---
您处于重构模式。专注于在不改变功能的情况下提高代码质量。
优先事项:
- 提高代码可读性和可维护性- 应用一致的命名约定- 减少代码重复- 在适当的地方优化性能- 确保所有测试继续通过使用场景
以下是不同模式的一些常见使用场景。
- 构建模式:启用所有工具的完整开发工作
- 计划模式:在不进行更改的情况下进行分析和规划
- 审查模式:具有只读访问权限和文档工具的代码审查
- 调试模式:专注于使用启用的 bash 和读取工具进行调查
- 文档模式:具有文件操作但没有系统命令的文档编写
您可能还会发现不同的模型适用于不同的使用场景。