融合 Boris Cherny 的系统性方法论与 OpenCode 开源生态的实战经验

一、思维转变:从"聊天工具"到"工程系统"

Boris Cherny(Claude Code 创始人)在 2026 年初的分享中强调了一个核心理念:AI 编程助手不是聊天工具,而是工程系统。这一认知转变是使用好这类工具的前提。

1.1 并行化工作流

Claude Code 经验:Boris 常年在终端运行 5 个 Claude 实例,Web 端再开 5-10 个,配合 --teleport 在本地和网页版间无缝切换,甚至用手机启动任务让其在后台运行。

OpenCode 实践:OpenCode 作为开源替代方案,同样支持多实例并行。通过 .opencode/skills/ 定义可复用的技能(Skills),你可以让不同实例专注于不同任务维度——一个负责核心功能开发,一个处理代码审查,一个专门做文档生成。

关键收益:不再"盯着 AI 干活",而是让它在后台推进任务,人类专注于架构设计和关键决策。

1.2 模型选择策略

Claude Code 经验:Boris 坚持使用 Opus 4.5 + thinking 模式,虽然更大更慢,但"更少跑偏、更少返工"。真正浪费时间的不是"等几秒",而是反复纠正。

OpenCode 实践:OpenCode 支持 75+ 种模型,包括其官方精选的 OpenCode Zen 免费模型(如 GLM-4.7、MiniMax M2.1)。建议根据任务复杂度分层:

  • 复杂架构设计:选择带 thinking 模式的大模型(如 Claude 3.7 Sonnet、Kimi K2-Thinking)

  • 日常编码任务:使用 OpenCode Zen 的免费轻量模型

  • 快速验证:本地小模型或 Grok Code Fast 1 这类高速模型

二、系统化配置:构建可复用的 AI 行为边界

2.1 长期记忆外置:CLAUDE.md vs AGENTS.md

Claude Code 经验:团队共享 CLAUDE.md 文件,提交到 Git。这不是文档,而是长期记忆外置层。每次发现 AI 做错事,立即补充约束规则,团队成员每周多次贡献更新。

OpenCode 实践:OpenCode 提供了 AGENTS.md 作为对等方案。通过 /init 命令(或 ctrl+x i)创建,用于存储项目级上下文和规则,帮助 Agent 理解代码库。同时配合 Skills 系统.opencode/skills/<name>/SKILL.md)定义可复用的具体行为。

三者关系

  • AGENTS.md = 项目级长期记忆(对标 CLAUDE.md),存储架构规范、编码标准、常用命令

  • SKILL.md = 可复用的具体技能模块,通过 skill 工具按需加载

  • opencode.json = 配置文件,管理模型、权限、MCP 等设置

工作流建议

  1. 首次进入项目时运行 /init 生成 AGENTS.md,手动补充项目架构和约束规则

  2. 当发现 AI 重复犯错时,将纠正写入 AGENTS.md 作为长期记忆

  3. 对于跨项目复用的能力(如 Git 工作流、发布流程),封装为 Skill 放入 .opencode/skills/

  4. 团队共享这些文件,通过 Git 版本控制迭代更新

2.2 Slash Commands 自动化

Claude Code 经验:将高频重复工作流(commit、push、PR)封装成 Slash Commands,配置在 .claude/commands/ 目录,避免每天几十次重复写同样的提示词。

OpenCode 实践:OpenCode TUI 原生支持丰富的 Slash Commands,通过 / 前缀快速执行操作。常用命令包括:

命令 功能 快捷键
/compact 压缩当前会话上下文 ctrl+x c
/init 创建或更新 AGENTS.md 文件 ctrl+x i
/models 列出可用模型 ctrl+x m
/new 开启新会话 ctrl+x n
/undo 撤销上条消息及文件变更 ctrl+x u
/redo 重做已撤销的操作 ctrl+x r
/export 导出会话为 Markdown ctrl+x x
/thinking 切换思考/推理块的显示 -

进阶技巧

  • 使用 @ 引用文件(如 @src/index.ts),自动将文件内容加入对话上下文

  • 使用 ! 前缀执行 shell 命令(如 !git status),输出自动作为工具结果返回

  • 通过 /editorctrl+x e)打开外部编辑器编写复杂提示词,支持 VS Code、Vim 等

三、工作流程优化:从计划到验证的闭环

3.1 Plan Mode 先行

Claude Code 经验:会话从 Plan Mode 开始(Shift+Tab 两次),与 Claude 反复讨论直到产出满意计划,确认后再切换到自动接受编辑模式。好的计划 = 避免更大的返工

OpenCode 实践:OpenCode 的初始化流程体现了类似理念。首次进入项目时,可以通过tab键切换为plan模式,和ai探讨方案后,通过/init初始化并生成 AGENTS.md 文件——这相当于项目的"记忆文件",包含代码库信息,帮助 Agent 更好地理解上下文。

建议流程

  1. 初始化阶段:允许 OpenCode 生成 AGENTS.md,手动补充项目架构、编码规范、常用命令等

  2. 任务开始前:明确告诉 AI 你的预期,如"先列出修改计划,确认后再执行"

  3. 复杂任务:使用专门的 Plan Agent(可在 opencode.json 中配置)先生成详细方案

3.2 Subagents 与职责分离

Claude Code 经验:定义专用子代理处理配套工作(如代码简化器、验证器),让 Claude 像项目指挥官一样协调这些"团队成员"。

OpenCode 实践:通过 Skills 的权限配置,可以为不同 Agent 分配不同技能集:

{
  "agent": {
    "plan": {
      "permission": {
        "skill": {
          "internal-*": "allow"
        }
      }
    },
    "code": {
      "permission": {
        "skill": {
          "test-*": "allow",
          "deploy-*": "deny"
        }
      }
    }
  }
}

这样,Plan Agent 可以访问内部文档技能,而 Code Agent 只能使用测试相关技能,实现权限最小化。

3.3 验证闭环:质量提升 2-3 倍的关键

Boris 强调:给 AI 一个验证其工作的方法,最终结果质量提升 2-3 倍。

具体实践

  • 自动化测试:配置 PostToolUse hook 在工具调用后自动运行测试套件

  • 代码格式化:使用 hook 处理最后 10% 的格式问题,避免 CI 因小问题反复失败

  • 浏览器测试:使用 Claude Chrome 扩展或 Playwright 测试 UI

  • 类型检查:对 TypeScript 项目,在 AI 编辑后自动运行 tsc --noEmit

在 OpenCode 中,可以通过定义专门的 validator skill 来实现:

---
name: validator
description: Run tests and type check after code changes
---

## Validation Steps
1. Run `npm run type-check` or `tsc --noEmit`
2. Run `npm test` or equivalent test command
3. If failures, report specific errors and suggest fixes
4. If success, confirm "All checks passed"

四、安全与权限管理

4.1 谨慎使用危险权限

Claude Code 经验不使用 --dangerously-skip-permissions,而是使用 /permissions 预先允许已知安全的命令,配置写入 .claude/settings.json 并团队共享。

OpenCode 实践:OpenCode 同样支持细粒度权限控制。在 opencode.json 中:

{
  "permission": {
    "skill": {
      "*": "allow",
      "pr-review": "allow",
      "internal-*": "deny",
      "experimental-*": "ask"
    }
  }
}
权限 行为
allow 技能立即加载
deny 对 Agent 隐藏,访问被拒绝
ask 加载前提示用户批准

4.2 长时间任务处理

Claude Code 经验:使用 --permission-mode=dontAsk 避免阻塞,配合后台代理验证工作,使用 Stop hook 确保执行预定义检查。

OpenCode 建议:对于耗时任务,可以:

  1. 在独立终端会话启动 OpenCode

  2. 使用 screentmux 保持会话在后台运行

  3. 配置技能在任务完成后发送通知(如调用 Slack MCP)

五、MCP 集成:连接外部系统

Claude Code 经验:配置 MCP server 连接 Slack、Sentry、BigQuery 等,Claude 可以搜索 Slack、查询数据库、拉取错误日志。配置写在 .mcp.json 并团队共享。

OpenCode 实践:OpenCode 原生支持 Model Context Protocol (MCP),可集成本地和远程服务器。配置在 opencode.jsonmcp 字段中,支持工具级权限管理。

5.1 本地 MCP 服务器

通过 type: "local" 配置,使用 npx/bun 等命令启动:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sentry-local": {
      "type": "local",
      "command": ["npx", "-y", "@modelcontextprotocol/server-sentry"],
      "enabled": true,
      "environment": {
        "SENTRY_AUTH_TOKEN": "{env:SENTRY_TOKEN}"
      }
    }
  }
}

5.2 远程 MCP 服务器

通过 type: "remote" 配置,支持 OAuth 自动认证:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sentry": {
      "type": "remote",
      "url": "https://mcp.sentry.dev/mcp",
      "oauth": {}
    },
    "context7": {
      "type": "remote",
      "url": "https://mcp.context7.com/mcp",
      "headers": {
        "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
      }
    }
  }
}

OAuth 认证流程

  1. 首次使用时自动触发浏览器授权

  2. 或使用 CLI 手动触发:opencode mcp auth sentry

  3. 查看认证状态:opencode mcp auth list

  4. 清除凭证:opencode mcp logout sentry

5.3 权限与上下文管理

重要警告:MCP 服务器会增加上下文 tokens,过多工具容易超出上下文限制(如 GitHub MCP server)。建议谨慎选择。

全局禁用/启用

{
  "mcp": {
    "sentry": { "type": "remote", "url": "https://mcp.sentry.dev/mcp" },
    "context7": { "type": "remote", "url": "https://mcp.context7.com/mcp" }
  },
  "tools": {
    "sentry*": false,
    "context7*": true
  }
}

按 Agent 分配

{
  "tools": { "sentry*": false },
  "agent": {
    "debug-agent": {
      "tools": { "sentry*": true }
    }
  }
}

5.4 使用示例

配置完成后,在提示词中显式调用:

Show me the latest unresolved issues in my project. use sentry

或在 AGENTS.md 中预设行为规则:

When you need to search docs, use `context7` tools.
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.

常用 MCP 集成

  • Sentry:查询错误日志和项目问题

  • Context7:搜索技术文档(支持 API Key 提升限流)

  • Grep by Vercel:在 GitHub 代码片段中搜索示例

六、核心收获总结

融合 Boris Cherny 的系统性思维与 OpenCode 的开源实践,AI 编程助手的工程化使用可以归纳为三个核心原则:

1. 并行(Parallelism)

  • 多实例调度,不让 AI 空闲

  • 不同实例负责不同任务维度

  • 后台运行,人类专注决策

2. 约束(Constraints)

  • CLAUDE.mdAGENTS.md 积累团队共识

  • 将经验转化为可复用的行为边界

  • 每次 Review 不只是改代码,也在更新 AI 行为

3. 验证(Verification)

  • 必须有反馈闭环,质量提升 2-3 倍

  • 自动化测试、类型检查、代码格式化

  • AI 不只是写代码,还要能验证自己的工作

七、OpenCode 独特优势

作为开源方案,OpenCode 相比 Claude Code 有以下独特价值:

  1. 完全免费:OpenCode Zen 提供免费模型,降低使用门槛

  2. 高度可定制:Skills 系统允许深度自定义,不受限于厂商预设

  3. 多模型支持:75+ 模型可选,避免供应商锁定

  4. 社区生态:开源社区持续贡献新技能和集成

  5. 隐私可控:可本地部署,敏感代码无需上传第三方

结语

无论是 Claude Code 还是 OpenCode,工具只是手段,工程化思维才是关键。从"聊天"到"系统",从"单次交互"到"持续迭代",从"人工验证"到"自动闭环"——这三重转变,才是 AI 编程助手发挥最大价值的正确姿势。

建议从以下步骤开始实践:

  1. 选择 OpenCode 或 Claude Code 作为主力工具

  2. 建立项目的 CLAUDE.mdAGENTS.md,记录前三个你纠正过 AI 的错误

  3. 配置一个自动化验证流程(测试 + 类型检查)

  4. 尝试并行运行两个实例,分别处理不同任务

  5. 每周回顾并更新你的技能库

让 AI 成为真正的工程伙伴,而不仅仅是代码生成器。


参考来源

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐