19-oh-my-opencode:OpenCode 的多 Agent 编排层 —— 把开源工具变成工程团队
·
oh-my-opencode:OpenCode 的多 Agent 编排层 —— 把开源工具变成工程团队
上篇讲 OpenCode 本身——一个 AI 程序员。这篇讲 oh-my-opencode——把它变成一个 AI 工程团队。更重要的是,它在多 Provider 之间做故障转移的能力,是商业产品做不到的。
核心架构
oh-my-opencode 在 OpenCode 之上构建了四个核心层:
┌─────────────────────────────────────────────┐
│ oh-my-opencode │
├─────────────────────────────────────────────┤
│ Agent 层 │
│ ├── Orchestrator:任务拆解和分配 │
│ ├── Coder:代码编写 │
│ ├── Reviewer:代码审查 │
│ ├── Tester:测试编写和执行 │
│ └── DocWriter:文档生成 │
├─────────────────────────────────────────────┤
│ 执行模式层 │
│ ├── Team Mode:多 Agent 并行协作 │
│ ├── Autopilot:单 Agent 自主循环 │
│ └── Ultrawork:多 Agent + 自我纠错 + 优先级 │
├─────────────────────────────────────────────┤
│ Provider 层 │
│ ├── 主 Provider:Claude / GPT / DeepSeek │
│ ├── 备用 Provider:主 Provider 挂了自动切 │
│ └── 模型路由:按任务分配不同 Provider │
├─────────────────────────────────────────────┤
│ 配置层 │
│ ├── oh-my-opencode.json:多 Agent 配置 │
│ ├── opencode.json:OpenCode 基础配置 │
│ └── omo-switch-cli:多套配置快速切换 │
└─────────────────────────────────────────────┘
安装与配置
# 1. 确保 OpenCode 已安装
npm install -g @sst/opencode
# 2. 安装 oh-my-opencode
git clone https://github.com/community/oh-my-opencode ~/.opencode/plugins/oh-my-opencode
# 3. 创建配置
cp ~/.opencode/plugins/oh-my-opencode/oh-my-opencode.example.json \
~/.opencode/oh-my-opencode.json
配置文件结构
// ~/.opencode/oh-my-opencode.json
{
"agent_system": {
"mode": "team", // team | autopilot | ultrawork
"max_agents": 4, // 最多同时运行的 Agent 数
"agents": {
"coder": {
"model": "claude-sonnet-4-6",
"worktree": true, // 在独立 Worktree 中工作
"auto_review": true // 写完代码后自动触发 Reviewer
},
"reviewer": {
"model": "claude-haiku-4-5", // 审查用便宜模型即可
"strictness": "high"
},
"tester": {
"model": "claude-haiku-4-5",
"auto_fix": true // 测试失败自动修复
},
"docwriter": {
"model": "deepseek-v4-flash", // 写文档用最便宜的
"output_dir": "docs/api"
}
}
},
"provider_failover": {
"primary": "anthropic",
"fallback_chain": ["openai", "deepseek"],
"health_check_interval": 30, // 每 30 秒检查 Provider 健康
"max_retries": 3
},
"ultrawork": {
"max_iterations": 50, // 最多循环 50 次
"checkpoint_interval": 5, // 每 5 步保存一次进度
"auto_rollback": true // 出错了自动回滚到上一个 checkpoint
}
}
omo-switch-cli:多套配置快速切换
这是 oh-my-opencode 最实用的功能之一——你在不同项目、不同场景需要不同的配置,一条命令切换:
# 列出所有配置预设
omo-switch list
# 输出:
# default → 日常开发(Claude Sonnet + 2 Agent)
# budget → 预算模式(DeepSeek + 1 Agent)
# max-quality → 极致质量(Claude Opus + 4 Agent)
# offline → 离线模式(本地 Ollama)
# 切换到预算模式
omo-switch use budget
# 创建自己的预设
omo-switch create my-preset \
--model claude-sonnet-4-6 \
--mode team \
--agents 3
预设示例
// ~/.opencode/presets/budget.json
{
"models": {
"default": "deepseek-v4-pro"
},
"agent_system": {
"mode": "autopilot", // 预算模式只要单 Agent
"max_agents": 1
}
}
// ~/.opencode/presets/max-quality.json
{
"models": {
"default": "claude-opus-4-7"
},
"agent_system": {
"mode": "ultrawork",
"max_agents": 4,
"agents": {
"coder": { "model": "claude-opus-4-7" },
"reviewer": { "model": "claude-sonnet-4-6" },
"tester": { "model": "claude-sonnet-4-6" },
"docwriter": { "model": "claude-haiku-4-5" }
}
}
}
// 切换
omo-switch use max-quality // 重要项目
omo-switch use budget // 个人项目
omo-switch use default // 日常
Ultrawork 自主执行模式
Ultrawork 是 oh-my-opencode 的多 Agent 自主执行模式,对标 Codex 的 /goal:
Ultrawork 的执行循环:
1. 你给一个目标
"重构用户模块的数据库层,从同步改异步,并写完整测试"
2. Orchestrator 拆解任务
├── 子任务 1:改造 User model(异步 session)
├── 子任务 2:改造 UserRepository(异步查询)
├── 子任务 3:改造 UserService(异步调用)
├── 子任务 4:更新所有调用方
└── 子任务 5:写异步测试
3. 分配 Agent
Coder → 子任务 1-4(串行,因为有依赖)
Tester → 子任务 5(并行,不需要等 Coder 全部完成)
4. 执行 + 自我纠错
每完成一个子任务 → Reviewer 自动审查
审查不通过 → Coder 修复 → 再审查
测试不通过 → Tester 分析 → Coder 修复 → 再测试
5. Checkpoint
每 5 步保存一次进度
如果后续步骤出错 → Rollback 到上一个 Checkpoint → 换策略重试
6. 汇报
全部子任务完成
→ Orchestrator 汇总结果
→ 输出报告:做了什么、改了哪些文件、有没有遗留问题
Ultrawork vs /goal
| oh-my-opencode Ultrawork | Codex /goal | |
|---|---|---|
| 模型要求 | 任意模型 | 仅 GPT-5.5/5.3-Codex |
| 开源 | ✅ MIT | ❌ 闭源 |
| 自我纠错 | ✅ Reviewer + Tester | ✅ 内置审查 |
| Rollback | ✅ Checkpoint 机制 | ❌ 无 |
| 多 Provider 故障转移 | ✅ | ❌ |
| 成熟度 | 较新(社区驱动) | 成熟(官方维护) |
Slim 单文件配置策略
oh-my-opencode 支持把所有配置合并到一个文件中,方便分享和版本管理:
// oh-my-opencode.slim.json —— 一个文件包含全部配置
{
// OpenCode 基础配置(原 opencode.json)
"opencode": {
"models": {
"default": "claude-sonnet-4-6",
"providers": [...]
}
},
// oh-my-opencode Agent 配置(原 oh-my-opencode.json)
"omo": {
"agent_system": { ... },
"provider_failover": { ... },
"ultrawork": { ... }
},
// 自定义 Tool(原 opencode.json tools.custom)
"tools": {
"run_tests": {
"command": "pytest ${test_path:-tests/} -v",
"parameters": { ... }
}
},
// MCP Server 配置
"mcp": {
"mcpServers": {
"github": { ... }
}
}
}
Slim 策略的好处:
场景:新同事入职
传统方式:
"你先装 OpenCode,然后配 opencode.json,
然后装 oh-my-opencode,然后配 oh-my-opencode.json,
然后配 MCP,然后配自定义 Tool..."
→ 6 个步骤,每个都可能出错
Slim 方式:
"把这个文件放到 ~/.opencode/,运行 opencode"
→ 1 个步骤
团队把这一个文件放在项目仓库的 .opencode/ 目录下,新人 clone 项目后自动获得全套配置。
多 Provider 故障转移链
这是 oh-my-opencode 最独特的功能——商业产品做不到,因为它们只绑定自己的模型:
{
"provider_failover": {
"primary": "anthropic",
"fallback_chain": ["openai", "deepseek", "ollama-local"],
"health_check_interval": 30,
"max_retries": 2
}
}
故障转移的实际运行
正常情况:
OpenCode → Anthropic API → Claude Sonnet → 正常响应
Anthropic API 挂了(确实发生过):
OpenCode → Anthropic API → ❌ 超时
→ OpenAI API → GPT-5.3-Codex → 正常响应
OpenAI 也挂了(极其罕见但有可能):
OpenCode → Anthropic API → ❌
→ OpenAI API → ❌
→ DeepSeek API → DeepSeek → 正常响应
所有云 API 都挂了(断网):
OpenCode → ... → ❌
→ Ollama Local → 本地模型 → 正常响应(质量下降但能工作)
为什么这很重要
场景:你在赶一个周五下午截止的 PR
15:30 → Anthropic API 突然开始返回 500 错误
Claude Code 用户:只能等 API 恢复,PR 延期
oh-my-opencode 用户:自动切到 GPT,继续工作
15:45 PR 按时提交
这不是假设场景。2025-2026 年 Anthropic 和 OpenAI
都出现过 30 分钟以上的 API 中断。
与 oh-my-claude 的功能对比
| 维度 | oh-my-claude | oh-my-opencode |
|---|---|---|
| 底层工具 | Claude Code(闭源) | OpenCode(开源) |
| 模型绑定 | 只支持 Claude 系列 | 75+ LLM 任意切换 |
| Agent 数量 | 2-3 个(轻量) | 可配置(1-5 个) |
| 执行模式 | Team / Autopilot / Ultrawork | Team / Autopilot / Ultrawork |
| Provider 故障转移 | ❌(只有一个 Provider) | ✅ 多 Provider 链 |
| 配置切换 | 手改配置 | omo-switch-cli 一键切换 |
| 配置分发 | 通过 Plugin | Slim 单文件 |
| 成熟度 | 较成熟 | 较新,社区活跃 |
| 适合人群 | Claude 生态的深度用户 | 多模型用户、预算敏感、需要私有化 |
选型建议
选 oh-my-claude 如果:
├── 你已经深度绑定 Claude Code 生态
├── 你不需要切换模型
└── 你想要最稳定的体验
选 oh-my-opencode 如果:
├── 你需要对接多种模型(包括国产模型)
├── 你对成本敏感,想按任务分级用不同价格的模型
├── 你需要私有化部署
├── 你需要 Provider 故障转移的高可用性
└── 你偏好开源方案
混用也可以:
- 日常主力:Claude Code + oh-my-claude
- 省钱/备份:OpenCode + oh-my-opencode(Slim 配置 ready)
- 当前者挂了,后者无缝顶上
OpenCode 两部曲总结
上篇(第 18 篇):OpenCode 基础
→ 安装 + 75+ LLM 配置 + TUI + 自定义 Tool
→ 四大适用场景(省钱/私有化/多模型/定制)
下篇(本篇):oh-my-opencode 多 Agent 编排
→ Agent 系统架构
→ omo-switch-cli 一键切换配置
→ Ultrawork 自主执行 + Checkpoint
→ Slim 单文件分发
→ 多 Provider 故障转移链
至此,三大终端 Agent(Claude Code / Codex / OpenCode)全部深度覆盖完毕。接下来进入最后一部分——把它们放在一起横向对比,以及生产级实战。
延伸阅读
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)