太长不看版
- OpenCode 内置两个主代理——Build 和 Plan。按 Tab 即可来回切换;状态栏徽章(Plan · Big Pickle、Build · MiMo)永远显示当前在听谁说话。
- 计划模式天生只读:文件编辑默认拒绝或需确认,bash 命令会先询问,所以你得到的是仓库分析、澄清提问和一份计划文档——零文件改动。
- 每个模式分别运行 /models:规划用强模型(视频中是 GLM-5.2),构建用便宜的免费模型(MiMo V2.5 Free)。在 opencode.json 里配 agent.model 可以固定下来。
- 找不到计划模式?先升级 CLI,去状态栏找徽章而不是菜单项,终端吞 Tab 就改键——另外记住桌面端还是 beta。
13/13 - OpenCode - Plan mode Implementar funcionalidad
频道:Fernando Herrera10:05
OpenCode Full Tutorial: Free Models, Skills & MCPs
频道:Eric Tech23:11
Opencode Is Probably The Best Coding Agent I've Ever Used
频道:DevOps Toolbox
Agents — official documentation
官方文档:opencode.ai/docs
模式语义——Tab 循环切换、每个代理各自的模型、Plan 的权限限制、--agent plan 启动参数——均已对照官方 agents 文档核实;上方视频是视觉与事实来源。主视频里模型的回复是西班牙语,因此截图选的是界面本身能讲清故事的部分。
截图归创作者所有,并附指向精确时间点的深链。未使用任何人脸出镜画面。
一步一步用上 OpenCode 计划模式
第 1 部分 — 认识 Plan 和 Build 两个代理
- 1
启动 OpenCode,找到模式徽章
在项目目录里运行 opencode。终端界面打开后,提示词下方有一条状态栏,显示 Plan 或 Build 加上当前模型——视频里是 Plan · Big Pickle OpenCode Zen。这个徽章就是计划模式的藏身之处:不存在单独的计划模式菜单等你去找。底部提示(tab agents)甚至直接告诉你怎么离开。

OpenCode 的欢迎界面,离一切只差一个 Tab——状态栏已经显示 Plan · Big Pickle OpenCode Zen。在 0:50 观看 - 2
弄清计划模式是什么(以及它拒绝什么)
Plan 是 OpenCode 两个主代理之一。Build 默认启用全部工具;Plan 则受限——默认文件编辑被拒绝或需要确认,bash 命令也会先询问。文档对它的定位是:当你想让 LLM 分析代码、提出修改建议或制定计划而不做任何实际改动时使用。你硬要它实现,它会拒绝——这个拒绝正是功能在生效。

切换模型后徽章显示 Plan · GLM-5.2 OpenCode Go——Plan 用自己的模型,与 Build 互不相干。在 1:35 观看 - 3
用 Tab 切换代理
按 Tab 在 Plan → Build → Plan 之间循环,Shift+Tab 反向循环。这就是 agent_cycle 键位,也是切换的全部动作——代理、模型和权限会在对话中途一起切换。更喜欢菜单?ctrl+x a 打开代理列表,ctrl+p 打开命令面板,opencode --agent plan 则从终端直接进入计划模式。
第 2 部分 — 只读地把活儿规划好
- 4
先连接提供商,模型选择器才不空
全新安装的模型列表是空的,得先连接提供商。运行 /connect——或在模型选择器底部选 Connect provider——然后选推荐的低价订阅 OpenCode Zen,或者带入 Groq、GitHub Copilot、Anthropic、Google 的 API key。像 Big Pickle 或 MiMo V2.5 Free 这样的免费模型足够完成本攻略。

Connect a provider 对话框:推荐 OpenCode Zen,下方还有 Groq、GitHub Copilot、Anthropic 和 Google。在 3:05 观看 - 5
给每个模式各配一个模型
在计划模式下运行 /models,选一个强模型做规划——规划质量决定下游的一切。然后按 Tab 再运行一次 /models,给构建配个更便宜的;视频里的组合是 Plan 用 GLM-5.2、Build 用 MiMo V2.5 Free。想长期固定这个分工,就在 opencode.json 里配置 agent.model。

带 Free 标签的 Zen 模型选择对话框——有 Recent 列表,切换两次只要两秒钟。在 1:13 观看 - 6
发出任务,回答代理的提问
在计划模式里描述目标而不是步骤——视频里让 OpenCode 在一个纯 HTML 项目里安装 Tailwind CSS。Plan 代理以只读方式检查仓库,然后弹出一个选择题对话框:CDN script 标签、npm 安装、独立二进制,或者输入你自己的答案。方向键选择;选项都不合适时也可以自由输入。

Plan 代理的澄清提问对话框——四个选项外加自定义答案的出口,而且此时还没碰任何文件。在 3:00 观看 - 7
读计划:验证与取舍
最终产出的计划是一份文档,不是 diff:现状、决策、验证清单和取舍(trade-offs)章节——视频里的计划明确标注 Play CDN 需要联网且不适合生产环境。此时还没有任何改动;你读到的条目描述的是你批准后 Build 要做的事。

计划的验证清单与取舍章节——代价写得明明白白,改动依然是零。在 4:58 观看 - 8
批准;OpenCode 把活儿排给 Build
计划的结尾是一个交接提问:离开计划模式后就执行这个计划,还是先调整?批准了也依然不会改文件——在你切换代理之前,Plan 保持只读。状态栏仍然显示 Plan;一旦按下 Tab,同一场对话就会带着完整文件权限在 Build 里继续。

完整计划加下方的批准提问,状态栏里 Plan 和 Build 两个徽章同时可见。在 5:10 观看
第 3 部分 — 切到 Build 继续推进
- 9
Tab 切到 Build,让它动手
按 Tab——徽章翻成 Build · MiMo V2.5 Free——然后说"实现它"。Build 拥有全部工具:改 index.html、写 Tailwind 配置,还会生成一张你能看着打勾的 todo 清单。同样的命令在计划模式下只会被拒绝;todo 清单和文件改动只会出现在 Build 这一侧。

按下 Tab 后徽章显示 Build · MiMo V2.5 Free,实现刚开始,Todos 清单就出现了。在 5:20 观看 - 10
把会话管理明白
ctrl+x l 打开会话列表:每场对话都带名字和日期,ctrl+r 重命名,常回头的可以置顶。会话存在 OpenCode 的全局目录而不是项目里,所以重启也不丢——视频里在草稿闲聊和 Tailwind 会话之间来回跳,一个 token 的上下文都没丢。

Sessions 对话框——按名字和日期排列的对话,置顶、删除、重命名都只需一次按键。在 9:05 观看 - 11
喜欢窗口和按钮?桌面端还是 beta
opencode.ai 在终端之外还提供了 macOS、Windows 和 Linux 的桌面端 beta。本攻略的 Tab 加徽章流程属于终端 TUI;桌面 beta 更年轻——如果那边计划模式长得不一样或找不到,先更新应用,或者回到行为有文档保证的终端里跑 opencode。

opencode.ai 自己的横幅:桌面应用已在 macOS、Windows 和 Linux 上开放 beta——终端仍是基准。在 1:10 观看
OpenCode 计划模式 vs 构建模式
两者都是共享同一场对话的主代理;变的是各自能做什么、由哪个模型来回答。真正重要的差异:
- 1改动的权限:Build 启用全部工具;Plan 的文件编辑默认拒绝或需确认,bash 先询问。这是应用层的权限强制——不是模型能自己说服自己忽略的客套指令。
- 2每个模式一个模型:/models 只作用于当前代理,所以 Plan 可以跑强推理模型,Build 跑快的免费模型——视频里是 GLM-5.2 和 MiMo V2.5 Free。opencode.json 的 agent.model 可以固定这个分工。
- 3输出的形状:Plan 给出检查摘要、澄清提问和带验证步骤与取舍的计划文档;Build 给出编辑、新建文件和 todo 清单。
- 4切换成本:一次 Tab,对话中途生效,Shift+Tab 可逆。状态栏徽章永远标明当前代理,所以"计划模式不生效"的时刻,往往只是徽章在悄悄显示 Build。
- 5失败时的表现:让 Plan 实现,它会拒绝并复述计划;让 Build 实现,它立刻动手。想要改动?先 Tab——全部仪式就这么多。
- 6可扩展性:两者都是内置主代理;你在 opencode.json 或 .opencode/agents/*.md 里定义的自定义代理也会加入同一条 Tab 循环,可以做出自己的只读评审或规划变体。
和 Claude Code 的计划模式相比:思路相同,机制不同。Claude Code 按 Shift+Tab 直到出现 plan mode,并在你批准前锁住编辑;OpenCode 的信号是状态栏徽章,而且它的双模型分工是显式配置,不是某个模型的附带行为。
OpenCode 计划模式不见了或不生效?
大多数"plan mode not working"的求助最终都落在其中一条——都不用翻论坛:
- 1CLI 太旧。代理循环和分代理模型都是比较新的能力;如果 Tab 按了没有 Plan 徽章,先查 opencode --version,再用 curl -fsSL https://opencode.ai/install | bash 重装。
- 2你在找菜单项。计划模式没有设置页面——它就是状态栏上的徽章。徽章显示 Build,就说明你在构建模式;按一次 Tab 就翻过来了。
- 3Tab 没反应。可能是终端把它吞了。改用 ctrl+x a(代理列表)或 ctrl+p(命令面板),并在 tui.json 里把 agent_cycle 改成终端不抢占的键。
- 4你在用桌面 beta。有文档保证的 Tab 流程属于终端;macOS、Windows 和 Linux 上的桌面应用是更年轻的 beta。先更新,或者直接在终端里跑 opencode。
- 5自定义代理改变了循环。opencode.json 或 .opencode/agents/ 里定义的代理也会成为主代理、加入 Tab 轮换——Plan 可能只是远了一次按键,或者你的配置改掉了默认项。
- 6恢复会话后的困惑。opencode -c 会重开上一场对话,徽章显示的是当前激活的代理。恢复后扫一眼状态栏;有意外,一次 Tab 就能纠正。
不会坏的东西:模型选择。Plan 的只读行为来自权限设置,任何已连接的模型都能安全规划——弱模型只是规划得更差。如果 OpenCode 真在徽章显示 Plan 时改了文件,那是值得上报的 bug;实际上先看徽章,因为它几乎总是 Build。
