Hermes Agent: 委托
最后更新:2026-08-31
委托是 Hermes Agent 的管理能力——遇到复杂任务时,它可以创建子 Agent 分头干活,最后汇总结果,就像一个项目经理分配任务给团队成员。
💡 提示:委托机制是 Hermes 处理复杂任务的关键能力。主 Agent 分解任务、分配给子 Agent、监控进度、汇总结果,实现并行高效执行。
📋 前置知识:第7课 Skills 技能系统、第8课 工具与工具集
1. 你将学到
| 编号 | 内容 |
|---|---|
| ❶ | 委托机制原理 |
| ❷ | 子 Agent 创建与配置 |
| ❸ | 任务分解与分配 |
| ❹ | 并行执行与协调 |
| ❺ | 结果汇总与质量检查 |
2. 故事
(1) 痛点:大任务串行执行太慢
Bob 让 Agent 分析一个大型项目,Agent 逐文件审查,20 个文件花了 30 分钟。Bob 想:能不能多个人同时审?
(2) 解法:委托子 Agent 并行处理
BASH
me: 审查整个项目的代码质量
Agent: 项目有20个文件,我将创建5个子Agent并行审查:
🤖 Sub-Agent-1: src/api/ (4 files)
🤖 Sub-Agent-2: src/models/ (5 files)
🤖 Sub-Agent-3: src/utils/ (4 files)
🤖 Sub-Agent-4: src/views/ (4 files)
🤖 Sub-Agent-5: tests/ (3 files)
[并行执行中...] 8分钟完成
📊 汇总报告:
- 安全问题: 3个
- 性能问题: 5个
- 类型问题: 7个
- 建议: ...
3. 委托机制原理
(1) 主 Agent → 子 Agent 架构
graph TB
A[主 Agent] --> B[任务分解]
B --> C1[子 Agent 1]
B --> C2[子 Agent 2]
B --> C3[子 Agent 3]
C1 --> D[结果汇总]
C2 --> D
C3 --> D
D --> E[质量检查]
E --> F[最终输出]
A -.->|监控| C1
A -.->|监控| C2
A -.->|监控| C3
(2) 委托类型
| 类型 | 说明 | 场景 |
|---|---|---|
| 并行委托 | 子 Agent 同时执行 | 多文件审查、多源搜索 |
| 串行委托 | 子 Agent 依次执行 | 有依赖关系的任务 |
| 条件委托 | 根据结果决定下一步 | 需要人工确认的步骤 |
| 递归委托 | 子 Agent 再创建子 Agent | 超大规模任务 |
4. 子 Agent 创建与配置
(1) 自动创建
BASH
# 对话中触发委托
me: 分析这个仓库的所有 Python 文件的代码质量
Agent: 识别到 15 个 Python 文件,将创建 3 个子 Agent 并行分析:
- 子 Agent "analyzer-1": 处理 5 个文件
- 子 Agent "analyzer-2": 处理 5 个文件
- 子 Agent "analyzer-3": 处理 5 个文件
每个子 Agent 配置:
- 模型: gpt-4o-mini(节省成本)
- 工具: fs_read, code_python
- 技能: python-quality-check
(2) 手动配置子 Agent
YAML
delegate:
# 子 Agent 模板
sub_agent_template:
model: "gpt-4o-mini" # 用小模型节省成本
max_tokens: 2048
timeout: 120
# 可用工具
tools:
- fs_read
- code_python
- web_search
# 可用技能
skills:
- code-review
- test-runner
# 委托策略
strategy:
max_sub_agents: 5 # 最多5个子Agent
min_task_size: 1 # 每个子Agent至少1个任务
cost_limit: 0.10 # 单次委托最大成本
5. 任务分解与分配
(1) 自动分解
BASH
me: 帮我调研 React 19、Vue 4 和 Svelte 5 的最新特性
Agent: [任务分解]
总任务: 3个框架的调研
分解策略: 按框架分配
🤖 Sub-Agent-1: 调研 React 19
→ web_search("React 19 features")
→ web_scrape("react.dev/blog")
🤖 Sub-Agent-2: 调研 Vue 4
→ web_search("Vue 4 features")
→ web_scrape("vuejs.org/blog")
🤖 Sub-Agent-3: 调研 Svelte 5
→ web_search("Svelte 5 features")
→ web_scrape("svelte.dev/blog")
[并行执行...]
(2) 自定义分解规则
YAML
delegate:
decomposition:
# 按文件类型分解
- trigger: "审查项目"
strategy: "by_file_type"
group_by: "extension"
# 按目录分解
- trigger: "分析仓库"
strategy: "by_directory"
max_per_group: 10
# 按任务类型分解
- trigger: "调研"
strategy: "by_topic"
identify_entities: true
6. 并行执行与协调
(1) 执行监控
BASH
# 查看委托执行状态
/delegate status
# 输出示例:
# ┌─────────────┬──────────┬─────────┬──────────┐
# │ Sub-Agent │ Status │ Progress│ Cost │
# ├─────────────┼──────────┼─────────┼──────────┤
# │ analyzer-1 │ ✅ Done │ 5/5 │ $0.03 │
# │ analyzer-2 │ 🔄 Run │ 3/5 │ $0.02 │
# │ analyzer-3 │ ⏳ Wait │ 0/5 │ $0.00 │
# └─────────────┴──────────┴─────────┴──────────┘
(2) 错误处理
YAML
delegate:
error_handling:
on_sub_agent_fail: "retry" # retry / skip / abort
max_retries: 2
retry_delay: 5
on_timeout: "partial_result" # partial_result / abort
timeout_per_task: 120
on_cost_exceed: "warn" # warn / pause / abort
(3) 结果汇总
BASH
Agent: [汇总子 Agent 结果]
📊 综合分析报告
来源: 3个子Agent, 共分析15个文件
问题统计:
├── 🔴 严重: 2个
│ ├── api/auth.py: SQL注入风险
│ └── utils/crypto.py: 硬编码密钥
├── 🟡 警告: 5个
└── 🔵 建议: 8个
优先修复: 先修2个严重问题
预计修复时间: 30分钟
7. 高级委托场景
(1) 递归委托
BASH
me: 分析整个 monorepo 的代码质量
Agent: Monorepo 有 5 个 package,创建 5 个子 Agent:
每个子 Agent 内部再按目录分解...
🤖 Sub-Agent-frontend → 创建3个孙Agent
🤖 Sub-Agent-backend → 创建4个孙Agent
🤖 Sub-Agent-shared → 直接处理
🤖 Sub-Agent-infrastructure → 直接处理
🤖 Sub-Agent-tests → 创建2个孙Agent
(2) 人机协作委托
BASH
me: 帮我完成发布流程
Agent: 发布流程需要人工确认,我将分步执行:
Step 1: [自动] 代码审查 → ✅ 通过
Step 2: [自动] 跑测试 → ✅ 通过
Step 3: [等待确认] 部署到staging?
me: 确认
Step 4: [自动] 部署staging → ✅ 完成
Step 5: [等待确认] 部署到production?
me: 确认
Step 6: [自动] 部署production → ✅ 完成
Step 7: [自动] 通知团队 → ✅ 完成
❓ 常见问题
Q 子 Agent 和主 Agent 共享记忆吗?
A 共享长期记忆和用户模型,但工作记忆独立。子 Agent 知道用户偏好,但不干扰主对话上下文。
Q 最多能创建多少子 Agent?
A 默认最多 5 个,可通过
delegate.strategy.max_sub_agents 调整。过多会增加成本和协调开销。Q 子 Agent 用什么模型?
A 默认用 gpt-4o-mini 节省成本。可以配置为与主 Agent 相同模型。
Q 并行执行会冲突吗?
A 文件写入操作会自动加锁,避免并发冲突。只读操作无限制。
Q 委托的成本怎么算?
A 子 Agent 的 Token 消耗独立计算,但合并到主账户。
/delegate status 实时显示各子 Agent 成本。Q 子 Agent 失败会影响整体吗?
A 取决于配置。默认跳过失败任务,汇总已完成的。可配置为全部中止。
📖 小节
- 委托机制:主 Agent 分解任务 → 子 Agent 并行执行 → 汇总结果
- 四种委托类型:并行、串行、条件、递归
- 子 Agent 独立配置:模型、工具、技能、超时
- 自动分解:按文件类型/目录/主题智能分组
- 错误处理:重试、跳过、部分结果、成本控制
📝 作业
- 基础题(难度⭐):让 Agent 用委托机制并行搜索 3 个不同话题,观察子 Agent 创建和结果汇总。
- 进阶题(难度⭐⭐):配置子 Agent 使用不同模型(gpt-4o-mini),验证成本节省效果,对比串行执行的耗时。
- 挑战题(难度⭐⭐⭐):设计一个递归委托方案,处理 monorepo 的全项目代码审查,包含错误处理和成本控制策略。