什么时候该用子Agent?

delegate_task的三要素

delegate_task(
    goal="...",    # 子Agent的目标,越具体越好
    context="...", # 子Agent需要的背景信息(它没有主对话的上下文!)
    role="leaf"    # leaf=专注工作者 / orchestrator=可以再派子Agent
)

子Agent结果验证的重要性

子Agent汇报"成功"不代表真的成功。必须验证:

# ❌ 错误:直接信任子Agent的自我汇报
result = delegate_task(goal="把文件上传到GitHub")
print("成功!")  # 不对,没验证

# ✅ 正确:要求子Agent返回可验证的handle,然后自己验证
result = delegate_task(
    goal="把文件上传到GitHub,完成后返回commit SHA和文件URL",
    context="仓库:..."
)
# 然后自己去验证URL是否真实存在
verify_url(result["url"])  # 确认文件确实在GitHub上

完整使用示例

# 主任务:生成每日AI报告并推送
# 把耗时的信息收集拆成并行子任务

tasks = [
    {
        "goal": "搜索今日GitHub上star增长最快的AI项目,返回前5个的名称、star数、简介",
        "context": "只关注AI/ML相关仓库,今日指2026-07-24"
    },
    {
        "goal": "搜索今日HackerNews上关于AI的热门讨论,返回前3个的标题和链接",
        "context": "HN分数需要>100"
    },
    {
        "goal": "搜索今日arXiv上最新发布的LLM相关论文,返回2-3篇的标题和摘要",
        "context": "关注cs.AI和cs.CL类别"
    }
]

# 并行运行,等待所有结果
results = delegate_task(tasks=tasks)

# 验证每个子任务的结果是否非空
for r in results:
    assert r and len(r) > 0, "子任务返回了空结果"

# 合并生成报告
report = generate_report(results)

常见陷阱

子Agent最大的价值是并行化和上下文隔离。记住:它们是盲的,只知道你传进去的context,什么都不假设。