Agent工坊

【Agent工坊】Hermes delegate_task 多Agent协作实战:一条命令串起5个子Agent,自动产出2500字公众号文章

你有5个AI Agent在"待命"——一个负责搜热点、一个写大纲、一个写正文、一个审核质量、一个做封面。但它们各干各的,你要手动把上一个的输出复制粘贴给下一个。有没有办法让它们自动接力?Hermes 的 delegate_task 就是做这件事的——一条指令,5个Agent接力完成,你只需验收最终结果。

你肯定遇到过这个流程痛点

假设你的「AI创业内参」内容流水线是这样的:

① 研究员搜索热点 → 产出调研笔记
② 你复制调研笔记 → 发给大纲Agent → 产出大纲
③ 你复制大纲 → 发给写作Agent → 产出一稿
④ 你复制一稿 → 发给审核Agent → 产出修改意见
⑤ 你复制修改意见 → 发给写作Agent → 修改定稿
⑥ 你复制定稿 → 发给设计Agent → 做封面

每一步都需要你手动"搬运"上下文。5个Agent、6次手动操作——对于一个号称"自动化"的系统来说,你依然是最累的那个环节。

这不是Agent能力的问题,是编排方式的问题。

Hermes 从 v0.18 开始内置的 delegate_task 机制,就是专门解决这个问题的。它能让你在主会话中"派发任务"给独立的子Agent,子Agent完成任务后把结果写入文件,主Agent继续下一步——全程不需要你手动搬运任何东西。

delegate_task 是什么?(30秒速览)

delegate_task 是 Hermes Agent 的多Agent任务派发机制。它的工作原理:

           ┌──────────────────┐
           │   主控 Agent      │
           │  (你的会话)       │
           └──────┬───────────┘
                  │ delegate_task()
      ┌───────────┼───────────┐
      ▼           ▼           ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 子Agent 1│ │ 子Agent 2│ │ 子Agent 3│
│          │ │          │ │          │
│ 独立会话  │ │ 独立会话  │ │ 独立会话  │
│ 独立工具  │ │ 独立工具  │ │ 独立工具  │
│ 独立上下文 │ │ 独立上下文 │ │ 独立上下文 │
└────┬─────┘ └────┬─────┘ └────┬─────┘
     │            │            │
     ▼            ▼            ▼
  输出文件      输出文件      输出文件
     │            │            │
     └────────────┴────────────┘
                  │
                  ▼
           主控Agent 读取结果 → 下一步

核心概念:

概念 说明
子Agent 独立会话,有自己的上下文窗口和工具集
role leaf(纯执行,不做进一步委派)或 manager(可以再委派)
toolsets 分配给子Agent的工具组合,如 ["web","file","terminal"]
goal 一次性的任务描述,子Agent完成即退出
context 静态背景信息,注入到子Agent的system prompt

关键优势:每个子Agent有独立的上下文窗口。主Agent的上下文不会被子Agent的搜索/读取操作污染。这意味着你可以在一个主会话中调度数十个子Agent,而不会超出上下文窗口。

实战:5个Agent接力完成一篇公众号文章

下面是一个真实可运行的完整例子。目标:从零开始,自动产出《AI创业内参》的一篇文章。

架构设计

主控Agent
    
    ├─→  researcher Agent调研
           toolset: [web, file, terminal]
           输出: research/outputs/01-research.md
    
    ├─→  outliner Agent大纲
           toolset: [file]
           输入: 01-research.md
           输出: outline/outputs/01-outline.md
    
    ├─→  writer Agent写作
           toolset: [file]
           输入: 01-research.md + 01-outline.md
           输出: content/outputs/01-article.md
    
    ├─→  reviewer Agent审核
           toolset: [file]
           输入: 01-article.md
           输出: review/outputs/01-review.md
    
    └─→  writer-fix Agent修正
            toolset: [file]
            输入: 01-article.md + 01-review.md
            输出: 覆盖 01-article.md

完整调用代码

以下代码在主控Agent的会话中一次性执行

# ========== STEP 1: 调研 ==========
delegate_task(
    goal="""作为AI创业内参的调研Agent,请完成以下任务:

1. 搜索今日AI Agent工具领域的最新动态(Hermes Agent、OpenClaw、Claude Code、MCP等)
2. 从搜索结果中提取3个候选选题,每个选题包含:
   - 标题(含悬念/数字)
   - 核心观点(1句话)
   - 目标读者价值
   - 2-3条关键数据来源URL

3. 输出到文件: ~/ai-neican/research/outputs/01-research.md

格式:
# 今日AI Agent热点调研报告
## 候选选题1
- 标题:
- 核心观点:
- 数据来源:
## 候选选题2
...(以此类推)

注意:每条关键数据必须附带具体URL,不可只标注"官网"。""",
    context="""项目路径: ~/ai-neican/
输出路径创建: mkdir -p ~/ai-neican/research/outputs/
AI创业内参面向AI创业者,聚焦AI Agent工具赛道。""",
    toolsets=["web", "file", "terminal"],
    role="leaf"
)

# ========== STEP 2: 大纲 ==========
delegate_task(
    goal="""作为AI创业内参的大纲Agent,请完成以下任务:

1. 读取 ~/ai-neican/research/outputs/01-research.md
2. 选取最佳候选选题,撰写结构化大纲
3. 输出到 ~/ai-neican/outline/outputs/01-outline.md

大纲需包含:
- 引言钩子(前3句话怎么抓住读者)
- 5-7个章节,每章标注核心要点
- 字数分配(总2500字)
- 结尾CTA(引导关注/分享/订阅)""",
    context="""读取文件: ~/ai-neican/research/outputs/01-research.md
输出路径: mkdir -p ~/ai-neican/outline/outputs/
写作风格: 公众号体,实操导向,有代码/数据/截图。""",
    toolsets=["file", "terminal"],
    role="leaf"
)

# ========== STEP 3: 写作 ==========
delegate_task(
    goal="""作为AI创业内参的写作Agent,请按大纲创作完整文章。

1. 读取 ~/ai-neican/research/outputs/01-research.md
2. 读取 ~/ai-neican/outline/outputs/01-outline.md
3. 按大纲撰写2500字完整的公众号文章
4. 输出到 ~/ai-neican/content/outputs/01-article.md

要求:
- 公众号风格(短段落、多分段、小标题清晰)
- 必须有3+处具体数据
- 必须有可复制的代码/配置片段
- 结尾有CTA引导关注""",
    context="""输入文件:
- ~/ai-neican/research/outputs/01-research.md
- ~/ai-neican/outline/outputs/01-outline.md

输出: mkdir -p ~/ai-neican/content/outputs/
风格: 实操导向,AI创业者视角。""",
    toolsets=["file"],
    role="leaf"
)

# ========== STEP 4: 审核 ==========
delegate_task(
    goal="""作为AI创业内参的审核Agent,请审核以下文章并输出审核报告。

1. 读取 ~/ai-neican/content/outputs/01-article.md
2. 按以下五维度评分(每维度满分25,总分100):
   - 事实准确:关键数据是否有来源URL
   - 逻辑完整:是否有"事件→分析→行动"框架
   - 标题质量:信息密度和吸引力
   - 内容价值:是否有可操作的代码/模板
   - 原创性:是否有独家视角

3. 输出到 ~/ai-neican/review/outputs/01-review.md

格式:
# 审核报告
## 总评分: X/100
## 各维度评分
- 事实准确: X/25 — 具体问题
- 逻辑完整: X/25 — 具体问题
...
## 修改清单
1. 问题 + 修复建议
2. ...
## 裁决
✅ 直接发布 / ⚠️ 修改后发布 / ❌ 需重写""",
    context="""输入: ~/ai-neican/content/outputs/01-article.md
输出: mkdir -p ~/ai-neican/review/outputs/
审核标准: 60分及格线,事实准确维度无来源URL直接0分。""",
    toolsets=["file"],
    role="leaf"
)

# ========== STEP 5: 修正 ==========
delegate_task(
    goal="""作为AI创业内参的写作Agent,请根据审核报告修改文章。

1. 读取 ~/ai-neican/content/outputs/01-article.md(原文)
2. 读取 ~/ai-neican/review/outputs/01-review.md(审核报告)
3. 逐项修改审核报告中的问题
4. 输出修改后的文章,覆盖 ~/ai-neican/content/outputs/01-article.md

要求:
- 必须逐条响应审核报告中的修改清单
- 中文字数不低于2500字
- 保留所有代码片段和数据结构""",
    context="""输入:
- ~/ai-neican/content/outputs/01-article.md
- ~/ai-neican/review/outputs/01-review.md
输出: 覆盖 ~/ai-neican/content/outputs/01-article.md""",
    toolsets=["file"],
    role="leaf"
)

执行以上5个 delegate_task 调用后,你的 content/outputs/ 目录下就有了一篇经过"调研→大纲→写作→审核→修改"五轮加工的文章。

delegate_task 的三个关键参数(彻底搞懂)

1. role: "leaf" vs "manager"

# leaf: 纯执行者,不能再委派任务给其他Agent
delegate_task(goal="搜索今日AI热点", role="leaf", ...)

# manager: 可以进一步委派(适合复杂工作流)
delegate_task(goal="协调整个内容生产流水线", role="manager", ...)

选择决策树
- 子任务单一、可一步完成 → leaf
- 子任务需要拆分成多个子子任务 → manager

实际经验:90%的场景用 leaf 就够了manager 容易导致嵌套太深、难以追踪。优先考虑扁平化设计。

2. toolsets: 给子Agent什么工具

# 需要搜索网络 → 给 web
toolsets=["web", "file", "terminal"]

# 只需要读写文件 → 只给 file
toolsets=["file"]

# 需要执行脚本 → 给 terminal
toolsets=["file", "terminal"]

最小权限原则:只给子Agent完成任务所需的工具,不给多余的。这既是安全实践,也能避免子Agent"乱跑"——比如给了 terminal 的Agent可能会执行你不期望的命令。

3. goal vs context

delegate_task(
    goal="具体的、一次性的任务指令。子Agent完成即退出。",  # ← 执行什么
    context="静态背景信息,注入到子Agent的system prompt。"   # ← 需要知道什么
)

goal:任务指令,类似"给freelancer的brief"。要具体、有交付物、有输出路径。

context:背景知识,类似"项目README"。子Agent不需要主动探索的信息放在这里。

避坑指南:4个最常见的 delegate_task 失败场景

坑1:子Agent超时但文件已写入

场景: writer Agent 写作 2500 字文章,600 秒超时。
问题: 主控收到超时错误,以为任务失败。
真相: 文章已完整写入 01-article.md(2739字)。

正确处理

# 不要因为超时就放弃
result = delegate_task(...)
if result.timed_out:
    # 检查输出文件是否存在且内容完整
    if os.path.exists(output_path) and os.path.getsize(output_path) > 2000:
        print("文件已写入,继续流程")
    else:
        print("确实失败,重试")

坑2:子Agent的输出格式不符合预期

场景: 大纲Agent输出了Markdown,但格式与预期不符。
问题: 下游写作Agent读到异常格式,产出一团糟。

正确处理

# 主控Agent在读取子Agent输出后做格式校验
def validate_outline(filepath):
    content = open(filepath).read()
    assert "## 候选选题" in content, "大纲缺少选题章节"
    assert "字数分配" in content, "大纲缺少字数分配"
    return True

坑3:并行 vs 串行的错误选择

# ❌ 错误:把互不依赖的任务串行执行
delegate_task(goal="搜Hermes新闻", ...)  # 等待完成
delegate_task(goal="搜OpenClaw新闻", ...)  # 再等待完成
delegate_task(goal="搜Claude Code新闻", ...)  # 再等待完成
# 总耗时: T1 + T2 + T3

# ✅ 正确:互不依赖的调研任务可以并行
# 但在同一个主Agent会话中,delegate_task 目前是串行的
# 解决方案:用多个独立的 cron job 并行触发

实战技巧:如果你需要并行,可以考虑在主Agent中用 terminal 工具集触发多个独立的 Hermes CLI 调用。

坑4:子Agent的搜索工具被限

场景: researcher Agent 分配了 ["web"] 工具集。
问题: Tavily API 返回 432 错误,子Agent束手无策。

正确处理

# 在 context 中预先告知降级方案
delegate_task(
    goal="搜索今日AI热点",
    context="""
    搜索降级方案:
    1. web_search 失败 → 用 terminal + curl 调 GitHub API
    2. GitHub API: curl -s "https://api.github.com/repos/.../releases"
    3. HN Algolia: curl -s "https://hn.algolia.com/api/v1/search_by_date?..."
    """,
    toolsets=["web", "file", "terminal"],
    role="leaf"
)

从 delegate_task 到"一人公司":四步落地

第一步:用 cron 触发主控Agent

# 每2小时自动运行内容生产流水线
0 */2 * * * hermes run --profile ai-neican --goal "执行完整内容生产流水线" >> /var/log/ai-neican.log 2>&1

第二步:主控Agent中串联所有 delegate_task

把上面5个 delegate_task 放进一个主控脚本,cron 自动触发。

第三步:增加发布环节

第六个Agent负责:
- 读取最终文章
- 上传配图到微信素材库
- 构建 HTML
- 提交草稿箱

第四步:增加数据复盘

第七个Agent(analyst)负责:
- 读取昨日发布数据
- 分析标题/选题/发布时间与阅读量的关系
- 输出优化建议

至此,你拥有一个7 Agent 的自主内容工厂

总结:你的第一个多Agent工作流

今天的内容可以浓缩为一张"执行清单":

 1. 创建项目目录结构(research/outline/content/review/outputs
 2. 编写第一个 delegate_taskresearchertoolsets=["web","file"]
 3. 测试 researcher  确认输出文件格式符合预期
 4. 编写 outliner  确认大纲质量
 5. 串联前三步  验证"调研→大纲→写作"链路
 6. 加入 reviewer + writer-fix  验证五步全链路
 7. 配置 cron  定时自动触发

今天就能行动的第一步:打开你的 Hermes Agent,复制上面第一个 delegate_task(researcher) 的代码,看看你的Agent能不能自己完成一次热点调研。

如果你已经在用 Hermes Agent 但还没试过 delegate_task——你现在少做的事,就是竞争对手正在做的事。


AI创业 #HermesAgent #多Agent协作 #一人公司 #自动化


数据来源:
- Hermes Agent delegate_task 文档: https://hermes-agent.nousresearch.com/docs
- 本文中所有 delegate_task 代码均为 Hermes Agent v0.18+ 原生API,可直接运行