// 工作原理
OMA 的工作原理。
两张图,一套系统。一张是架构——OMA 的结构,也就是它是什么;另一张是流程——调用 runTeam() 时,按时间顺序发生了什么。
01 结构
架构。
自上而下五层:你调用的编排器、它协调的团队、负责调度工作的池与队列、真正干活的智能体,以及底层的适配器、运行器和工具接口。每个方框都与框架里的一个类型一一对应。
- 强调色描边用户入口——你实例化的那个类。每张图里有且仅有一个。
- 实线具体类型——只有一种实现的类:Team、AgentPool、TaskQueue、Agent、AgentRunner。
- 虚线有多种实现的接口——LLMAdapter 提供方、ToolRegistry 工具。
- 箭头拥有 / 包含——源端实例化或拥有目标端。自上而下读。
02 执行
一次 runTeam() 调用。
目标进,结果出。协调器把目标拆解成任务 DAG,让智能体并行扇出,通过 MessageBus 传递中间结果,并综合出最终答案。从左往右读——横轴是时间。
- 纵向 = 哪个智能体每个智能体有自己的一条水平轨道,像乐谱里的一个声部。
- 横向 = 什么时候对齐在同一个 x 上的轨道,在同一逻辑时刻运行;更早结束的轨道先完成。
- reviewer 等待reviewer 向右偏移——它在 TaskQueue 里依赖 architect 和两个 developer。
- message bus那条翠绿色虚线带,是任何智能体在执行期间都能发布和订阅的通道。