3.4 OpenCode 的操作模型¶
OpenCode 更适合理解为一个开放、可配置、模型无关的本地 TUI Agent 外壳。它的核心价值不是“默认模型一定最强”,而是把工具层和模型层解耦,让你能按任务选择不同模型、供应商和权限策略。
如果 Claude Code 的优势是开箱生态,Codex 的优势是严谨执行和 OpenAI 生态,那么 OpenCode 的优势是控制权。
OpenCode 解决什么问题¶
| 问题 | OpenCode 的价值 |
|---|---|
| 不想被单一模型供应商锁住 | 可以接不同供应商,也可以接本地模型 |
| 想把 TUI Agent 做成自己的工作台 | 配置、agent、权限、模型路由更容易按个人或团队习惯调整 |
| 希望计划和执行分离 | 可以用只读 planning agent 做分析,再切到可写 build agent |
| 希望代码智能接近 IDE 能力 | LSP 能提供类型、诊断、符号等上下文辅助 |
这类能力对初学者的意义不是“先折腾配置”,而是知道:当你开始在多个模型、多个任务类型、多个权限级别之间切换时,OpenCode 会比封闭的一体化工具更容易变成统一入口。
典型工作流¶
flowchart TD
A[选择任务] --> B{需要写文件吗}
B -->|否| C[Plan / Explore: 只读分析]
B -->|是| D[Build: 可写执行]
C --> E[确认文件范围、风险、验证命令]
E --> D
D --> F[运行测试或构建]
F --> G[Review diff]
G --> H{质量足够吗}
H -->|否| I[换模型或换 agent 复查]
I --> E
H -->|是| J[记录规则或 skill]
重点是不要把 OpenCode 当成“另一个聊天窗口”。它更像一个可以切换驾驶模式的终端工作台:
- 只读模式用于理解 repo、找文件、做计划。
- 可写模式用于实现、修复、补测试。
- 子 agent 用于并行探索或专项审查。
- 不同模型用于不同质量、速度、成本和隐私约束。
模型选择策略¶
OpenCode 的能力上限取决于你接入的模型。实战里不要只问“哪个模型最强”,要按阶段选:
| 阶段 | 推荐模型策略 | 原因 |
|---|---|---|
| repo 初读 | 便宜、快、长上下文模型 | 读取多、改动少,成本更重要 |
| 复杂实现 | 强代码模型 | 需要跨文件一致性和指令遵循 |
| code review | 换一个强模型复查 | 避免同一模型自证正确 |
| 低风险脚本 | 本地或低成本模型 | 失败成本低,适合省预算 |
| 隐私敏感探索 | 本地模型或内部模型 | 避免把敏感代码送外部 API |
不要用弱模型硬做复杂重构。OpenCode 给你的是选择权,不是让任何模型都突然变强。
OpenCode 适合的任务¶
适合:
- 你想在同一个 TUI 里使用 OpenAI、Anthropic、Gemini、OpenRouter、本地模型等不同后端。
- 你重视开源、可审计、可改造的工具链。
- 你希望用 LSP 辅助代码理解。
- 你想把 planning、build、review 拆成不同 agent。
- 你希望比较多个模型对同一任务的输出。
- 你有本地模型、公司内部模型或自建网关。
不适合:
- 你只想零配置开箱就跑复杂任务。
- 你不想管理 API key、模型成本和 provider 差异。
- 你所在团队需要明确商业支持和统一供应商责任。
- 你没有强模型可用,却期待它稳定完成复杂多文件开发。
和 Codex / Claude Code 的关系¶
OpenCode 不一定替代 Codex 或 Claude Code。更实际的组合是:
| 场景 | 更合适 |
|---|---|
| 想快速进入成熟生态,重点用 skills、hooks、subagents | Claude Code |
| 想用 OpenAI 模型做严谨执行、测试修复、review | Codex |
| 想统一多个模型供应商、接本地模型、可定制 TUI | OpenCode |
| 想免费或长上下文辅助阅读 | Gemini CLI 辅助 |
如果你刚开始学习本地 Agent,优先把 Claude Code 或 Codex 的闭环练熟。等你开始明显感到“我想换模型”“我想接本地模型”“我想让不同 agent 用不同模型”,再把 OpenCode 加进主力工作流。
最小上手方式¶
第一周不要追求复杂配置,只练三件事:
- 用只读 agent 让它分析一个 repo,输出文件地图、风险和验证命令。
- 用可写 agent 做一个小 bugfix,要求最小 diff 和测试。
- 用另一个模型或 review agent 审当前 diff,检查无关改动、测试缺口和边界风险。
最小提示词:
先使用只读方式分析当前 repo,不要修改文件。
任务:
<一句话目标>
请输出:
1. 相关文件和调用链。
2. 现有实现模式。
3. 推荐使用哪个 agent 或模型阶段。
4. 修改计划。
5. 验证命令。
6. 风险和不做什么。
使用提醒¶
- OpenCode 的强项是可配置,不是免配置。
- 模型越多,越需要明确任务边界,否则只会增加混乱。
- 本地模型适合低风险和隐私场景,但复杂任务仍要看模型能力。
- 多 agent 并行前先拆文件范围,避免互相覆盖。
- 把稳定流程写进项目规则或自定义 agent,不要每次口头重复。