Oh-My-OpenAgent 源码剖析
目录
本系列文章旨在通过阅读 Oh-My-OpenAgent 源码,理解如何基于 OpenCode 构建复杂的多智能体编排系统。
系列目录
| 序号 | 文章 | 状态 |
|---|---|---|
| 01 | 导读 | 已完成 |
| 02 | 架构概览 — 插件架构与初始化流程 | 已完成 |
| 03 | 插件接入 — Hook 系统与 OpenCode 集成 | 已完成 |
| 04 | 多智能体系统 — 11 个专业化 Agent 与分类编排 | 已完成 |
| 05 | 生命周期钩子 — 52 个 Hook 的三层架构 | 已完成 |
| 06 | 工具系统 — 26 个扩展工具 | 已完成 |
| 07 | 技能系统 — 8 个内置 Skill 与四层发现机制 | 已完成 |
| 08 | 配置系统 — Zod v4 Schema 与多层合并 | 已完成 |
| 09 | 后台任务管理 — 并发控制与 Tmux 集成 | 已完成 |
| 10 | MCP 集成 — 三层架构与 OAuth 支持 | 已完成 |
| 11 | 内置命令 — 8 个复杂工作流命令 | 已完成 |
| 12 | Prompt 前缀抖动 — 工具注册与 Hook 注入对缓存的影响 | 已完成 |
项目定位
Oh-My-OpenAgent(简称 OMO)是一个基于 OpenCode 构建的插件系统,它的核心目标是:将单个 AI Agent 改造成一个协调的开发团队。
OpenCode (单 Agent)
└── Oh-My-OpenAgent (插件)
├── 11 个专业 Agent (Sisyphus 主协调、Hephaestus 深工作者、Prometheus 战略规划...)
├── 52 个生命周期 Hook
├── 26 个扩展工具
├── 8 个内置 Skill
└── 3 层 MCP 架构与 OpenCode 的核心差异
| 维度 | OpenCode | Oh-My-OpenAgent |
|---|---|---|
| Agent 数量 | 7 个(build/plan/explore/general…) | 11 个专业 Agent |
| Agent 协作 | Session 树(父子隔离) | 分类委托 + Intent Gate |
| Hooks | 基础 Plugin Hooks | 52 个三层 Hook |
| 工具 | 26 个原生工具 | 26 + 扩展工具 |
| Skill | 无内置 | 8 个内置 Skill |
| MCP | 基础 MCP 客户端 | 三层 MCP 架构 + OAuth |
| 后台任务 | Session 子任务 | BackgroundAgent + 并发控制 |
| 编排方式 | 会话树 | Sisyphus 主协调者 + 分类委托 |
为什么研究 Oh-My-OpenAgent
- 理解如何在已有 Agent 框架上构建复杂编排层
- 学习 Effect 框架 + Plugin Hook 的可扩展性设计
- 掌握多模型编排的最佳实践
- 理解 Skill 嵌入 MCP 的创新架构
源码位置
本系列分析的源码位于:/mnt/e/code/cc/omo-code
omo-code/src/
├── index.ts # 插件入口
├── agents/ # 11 个 Agent 定义
├── tools/ # 26 个扩展工具
├── hooks/ # 52 个生命周期钩子
├── features/ # 19 个功能模块
├── mcp/ # 3 个内置 MCP
├── config/ # Zod v4 Schema (27 个文件)
└── cli/ # CLI 工具持续更新中…