Skip to content

模式

针对不同使用场景的不同模式。

opencode 中的模式允许您针对不同的使用场景自定义行为、工具和提示。

它内置了两种模式:buildplan。您可以通过 opencode 配置来自定义这些模式或配置您自己的模式。

您可以在会话期间切换模式,或在配置文件中配置它们。


内置模式

opencode 内置了两种模式。


Build

Build 是默认模式,启用了所有工具。这是开发工作的标准模式,您需要完全访问文件操作和系统命令。


Plan

一种为规划和分析设计的受限模式。在 plan 模式下,默认禁用以下工具:

  • write - 无法创建新文件
  • edit - 无法修改现有文件
  • patch - 无法应用补丁
  • bash - 无法执行 shell 命令

当您希望 AI 分析代码、建议更改或创建计划,而不对您的代码库进行任何实际修改时,此模式非常有用。


切换

您可以在会话期间使用 Tab 键切换模式。或者使用您配置的 switch_mode 快捷键。

另请参阅:格式化器 以了解代码格式化配置信息。


配置

您可以通过配置来自定义内置模式或创建自己的模式。可以通过两种方式配置模式:

JSON 配置

opencode.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/
~/.config/opencode/mode/review.md
---
model: anthropic/claude-sonnet-4-20250514
temperature: 0.1
tools:
write: false
edit: false
bash: false
---
你处于代码审查模式。请专注于:
- 代码质量和最佳实践
- 潜在的 Bug 和边界情况
- 性能影响
- 安全考虑
提供建设性的反馈,不要直接进行修改。

Markdown 文件名将成为模式名(例如,review.md 会创建一个 review 模式)。

让我们详细看看这些配置选项。


模型

使用 model 配置来覆盖此模式的默认模型。这对于为不同任务使用优化的不同模型非常有用。例如,为规划使用更快的模型,为实施使用能力更强的模型。

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

温度

通过 temperature 配置项控制 AI 响应的随机性和创造性。较低的值使响应更专注和确定,而较高的值则增加创造性和可变性。

opencode.json
{
"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: 更具创造性和多样性的响应,适用于头脑风暴和探索
opencode.json
{
"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 配置项为此模式指定自定义系统提示词文件。提示词文件应包含针对该模式用途的特定指令。

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

此路径相对于配置文件所在的位置。因此,它既适用于全局的 opencode 配置,也适用于项目特定的配置。


工具

通过 tools 配置控制此模式下可用的工具。您可以通过将其设置为 truefalse 来启用或禁用特定工具。

{
"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 配置

opencode.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/ 目录下创建全局模式文件:

.opencode/mode/debug.md
---
temperature: 0.1
tools:
bash: true
read: true
grep: true
write: false
edit: false
---
您处于调试模式。您的主要目标是帮助调查和诊断问题。
重点关注:
- 通过仔细分析来理解问题
- 使用 bash 命令检查系统状态
- 读取相关文件和日志
- 搜索模式和异常情况
- 提供清晰的调查结果说明
不要对文件进行任何更改。仅进行调查和报告。
~/.config/opencode/mode/refactor.md
---
model: anthropic/claude-sonnet-4-20250514
temperature: 0.2
tools:
edit: true
read: true
grep: true
glob: true
---
您处于重构模式。专注于在不改变功能的情况下提高代码质量。
优先事项:
- 提高代码可读性和可维护性
- 应用一致的命名约定
- 减少代码重复
- 在适当的地方优化性能
- 确保所有测试继续通过

使用场景

以下是不同模式的一些常见使用场景。

  • 构建模式:启用所有工具的完整开发工作
  • 计划模式:在不进行更改的情况下进行分析和规划
  • 审查模式:具有只读访问权限和文档工具的代码审查
  • 调试模式:专注于使用启用的 bash 和读取工具进行调查
  • 文档模式:具有文件操作但没有系统命令的文档编写

您可能还会发现不同的模型适用于不同的使用场景。