跳转到内容

专业 Agent 编排与委托模式

专业 Agent 编排与委托模式

学习目标

  • 理解 11 个专业 Agent 的角色分工
  • 掌握工具权限矩阵的设计模式
  • 实现委托链防死锁(Sisyphus-Junior 禁止再委托)
  • 识别不同模型家族工具调用格式差异

前置知识

本章涉及 Agent 设计的通用原理,建议先阅读:

下文假设你已理解 Agent 核心循环和路由模式,直接聚焦 Oh-My-OpenAgent 的具体实现。

项目实践

11 个专业 Agent 的角色分工

Oh-My-OpenAgent 将 Agent 分为四组,每组有明确的职责范围和工具权限:

核心 Agent

Agent默认模型角色
Sisyphusclaude-opus-4-7主编排器:规划、委托、并行执行
Hephaestusgpt-5.5深度工匠:自主研究 + 端到端执行
Oraclegpt-5.5架构咨询:只读分析、代码审查
Librariangpt-5.4-mini-fast文档搜索:OSS 实现示例、API 查询
Exploregpt-5.4-mini-fast快速 grep:代码库模式发现
Multimodal-Lookergpt-5.5视觉分析:PDF、图像、图表解析

规划 Agent

Agent默认模型角色
Prometheusclaude-opus-4-7战略规划:Interview 模式需求澄清
Metisclaude-sonnet-4-6计划顾问:预规划分析,识别歧义
Momusgpt-5.5计划审查:验证清晰度、可验证性

编排 Agent

Agent默认模型角色
Atlasclaude-sonnet-4-6Todo 编排器:执行计划、分配任务
Sisyphus-JuniorCategory 决定分类执行器:禁止再委托

工具权限矩阵

Oh-My-OpenAgent 通过严格的工具权限限制防止 Agent 越权操作:

Agent限制理由
Oracle只读:禁止 write/edit/task/call_omo_agent咨询角色,不应修改代码
Librarian只读:禁止 write/edit/task/call_omo_agent搜索角色,不应修改代码
Explore只读:禁止 write/edit/task/call_omo_agent探索角色,不应修改代码
Multimodal-Looker白名单:仅 read视觉分析,无需写操作
Atlas禁止 delegate:无 task/call_omo_agent执行者,不应产生子任务
Momus只读:禁止 write/edit/task审查角色,不应修改代码

委托链防死锁:Sisyphus-Junior

当使用 Category 路由时,系统创建 Sisyphus-Junior 作为执行 Agent。关键约束:

  • 禁止再委托:Sisyphus-Junior 不能调用 task 或 call_omo_agent 委托给其他 Agent
  • 目的:防止无限委托链(A 委托 B,B 委托 C,C 委托 A…)
  • 实现:通过工具权限限制,在 Agent 配置中移除 delegate 工具

Sisyphus 的动态 Prompt 组装

Sisyphus 的系统提示不是静态字符串,而是按模型家族动态组装的:

Sisyphus Prompt 结构:
├── Agent Identity(角色定义)
├── Intent Gate(每条消息的意图分类)
├── Key Triggers(技能触发词)
├── Tool Selection Table(可用工具表)
├── Delegation Table(可委托的 Agent)
├── Category Skills Guide(Category + Skill 组合指南)
├── Parallel Delegation(并行委托策略)
├── Task Management(Todo 驱动工作流)
├── Hard Blocks(禁止行为列表)
└── Anti-Patterns(反模式列表)

不同模型家族的组装函数不同:

  • Claude Opus 4.7:buildClaudeOpus47SisyphusPrompt()
  • GPT-5.5:buildGpt55SisyphusPrompt()
  • Kimi K2.6:buildKimiK26SisyphusPrompt()
  • Gemini:buildGemini...() 系列函数

问题与规避

不同模型家族的工具调用格式差异

问题:Claude、GPT、Gemini 对工具调用的响应格式不同。Claude 使用 <antThinking> thinking block,GPT 使用 reasoning 模式,Gemini 需要显式的 tool mandate。

规避:Oh-My-OpenAgent 为每个模型家族构建专门的 prompt 函数,在函数内部处理该家族特有的工具调用格式要求。例如 Gemini 需要 buildGeminiToolMandate()buildGeminiDelegationOverride()

委托链深度过深

问题:如果每个 Agent 都可以再委托,委托链深度指数增长,导致上下文爆炸和任务漂移。

规避

  • Sisyphus-Junior 禁止再委托
  • Atlas 禁止 delegate 工具
  • 只有 Sisyphus 和 Hephaestus 可以创建子 Agent

设计取舍

专用 Agent vs 通用 Agent

方案优势代价
专用 Agent(11 个)每个 Agent 针对特定任务优化,工具权限精确控制配置复杂度高,需要维护多个 Agent 定义
通用 Agent(1-2 个)配置简单,上下文切换少权限模糊,模型选择不灵活

推荐:当任务类型差异大(研究 vs 实现 vs 审查)时,专用 Agent 的收益远大于维护成本。

参考来源