OMP Agent、Subagent 与 Swarm 分层关系

makoMakoGo 于 2026-05-06 发布

1. 先说结论

Oh My Pi 里实际上有两套相关但不同的多代理能力:

  1. 内建的 subagent / task delegation

    • 在当前会话里,主代理临时拆分任务并委派给子代理。
    • 这套很像 Claude Code 的 built-in subagent 哲学。
    • 代码主要在 packages/coding-agent/src/task/*
  2. YAML + DAG 的 swarm workflow

    • 先写一个 swarm.yaml,定义多个 agent 节点、依赖关系和执行模式。
    • 再由 swarm orchestrator 按 DAG 执行。
    • 这套在 packages/swarm-extension/*,不是 core task 工具本体。

最容易混淆的地方在于:


2. 什么是 subagent / task delegation

这套能力的本质是:

可以把它理解成:

它更像什么

更像 Claude Code 那种:

它的典型使用场景


3. OMP 内建的默认子代理

Oh My Pi 内建的常见子代理包括:

我自己的理解可以记成:

所以这套默认预设,本质上已经是一套通用 agent team。


4. 默认预设够不够用

对大多数人来说,默认预设已经够用

原因:

  1. 角色已经覆盖常见开发流程
  2. 默认行为比较保守,不会过度并发、过度递归
  3. 学习成本低,适合先理解 OMP 的工作方式

默认相关设置

常见默认值:

这套默认值的含义

所以对于“先学会用”,默认是合适的。


5. 什么情况下需要自定义子代理

只有在你出现很明确的固定需求时,才值得自定义:

场景 A:你有固定角色分工

例如:

场景 B:你有领域专用约束

例如:

场景 C:你想改变 delegation 风格

例如:

如果只是普通开发使用,先用默认预设更合理。


6. 自定义子代理像不像 Claude Code

像,而且哲学很接近。

相似点

  1. 都有内建专家角色
  2. 都支持用户自定义“领域专家”
  3. 都偏向会话内动态委派

自建 subagent 的本质

其实就是把一种固定工作方式封装成“专职代理”:

这点和 Claude Code 的自建 subagent 非常像。


7. 那什么是 YAML + DAG 的 swarm

这个是另一套东西。

它不是普通的 task delegation,而是:

它更像什么

更像:

而不是“会话里临场找几个助手”。


8. swarm-extension 的关键特征

8.1 配置驱动

它需要一个 YAML 文件,例如:

swarm:
  name: my-pipeline
  workspace: ./workspace
  mode: pipeline
  target_count: 10

  agents:
    finder:
      role: researcher
      task: |
        Find one new source.
    analyzer:
      role: analyst
      task: |
        Analyze the source.
      waits_for:
        - finder

8.2 支持 DAG

依赖关系来自:

然后系统会:

8.3 支持多种执行模式

常见模式:

8.4 适合可重复流程

比如:


9. task delegation 和 DAG swarm 的区别

维度task / subagent delegationswarm-extension / YAML DAG swarm
本质会话内动态代理委派预定义工作流编排
所在位置packages/coding-agent/src/task/*packages/swarm-extension/*
是否默认就有不是,属于扩展
入口主代理调用 task 工具/swarm run xxx.yamlomp-swarm xxx.yaml
任务拆分方式运行时由主代理临时决定事先在 YAML 里写死 agent 节点和依赖
依赖关系通常没有显式 DAG明确支持 DAG
更像什么Claude Code 风格 subagentworkflow / pipeline orchestrator
适合什么交互式 coding、临时分工固定流程、长链路自动化
底层执行原生子代理执行引擎底层仍复用原生子代理执行引擎

最重要的一点:

swarm-extension 底层也会复用 OMP 的子代理执行能力,但它上面再包了一层 DAG 调度。


10. plan mode 和 swarm DAG 是什么关系

这是另一个容易混淆的点。

不是同一个东西

更准确的关系

可以这么理解:

  1. 先和 OMP 交互,分析问题
  2. 用 plan mode 或普通对话把流程拆出来
  3. 让 OMP 帮你写一个 swarm.yaml
  4. 再运行 /swarm run xxx.yamlomp-swarm xxx.yaml

所以:

一句话区分


11. 我自己的心智模型

我现在会这样记:

第一层:对话分析层

第二层:动态委派层

第三层:工作流编排层

也就是:


12. 什么时候该用哪一个

用默认 subagent / task delegation

适合:

用自定义子代理

适合:

用 swarm-extension

适合:


13. 最后的判断

我的现阶段建议

如果只是学习和日常使用 Oh My Pi:

  1. 先学会默认 subagent / task delegation
  2. 先别急着自定义 agent
  3. 更不要一开始就上 DAG swarm

因为学习顺序最好是:

一句话总结


14. 关键源码位置备忘

Core subagent / task delegation

Swarm extension / YAML DAG


15. 适合我自己的记忆版

OMP 有两种多代理:

  • 一种是像 Claude Code 一样的动态 subagent 委派
  • 一种是用 YAML 定义 DAG 的 swarm workflow

前者适合交互式 coding,后者适合固定 pipeline。