为什么需要任务拆解?
复杂任务直接扔给Agent,容易出现:遗漏步骤、步骤顺序错误、子任务之间依赖关系混乱。显式地让Agent先拆解任务,再按计划执行,错误率会大幅下降。
让Agent拆解任务的Prompt技巧
# 在System Prompt中加入
"处理复杂任务时,请先列出执行计划(带编号的步骤列表),
等我确认后再开始执行。"
# 或者直接在User Prompt中要求
"请先给我一个执行计划,然后按计划一步步完成。"任务依赖图
识别哪些步骤可以并行,哪些必须串行:
任务:写一份完整的市场分析报告
依赖图:
A. 搜索宏观经济数据
B. 搜索行业竞争格局 ← A, B, C 可以并行
C. 搜索目标公司财务数据
D. 分析并生成初稿 ← 依赖 A+B+C 完成
E. 格式化并输出报告 ← 依赖 D 完成并行 vs 串行的选择
- 并行:步骤之间没有依赖关系,可以同时执行(如同时搜索多个信息源)
- 串行:步骤之间有数据依赖,必须等前一步完成(如先获取数据,再分析)
# 在Hermes中用delegate_task并行执行
results = delegate_task(tasks=[
{"goal": "搜索宏观经济数据"},
{"goal": "搜索行业竞争格局"},
{"goal": "搜索目标公司财务数据"},
])
# 等所有子任务完成后,再合并生成报告「写市场分析报告」完整拆解示例
[Agent的思考过程]
Thought: 用户要写市场分析报告,我先列出计划
计划:
1. 并行收集信息:
1a. 搜索宏观经济环境(GDP/利率/政策)
1b. 搜索行业规模和增速数据
1c. 搜索主要竞争对手信息
2. 分析竞争格局(基于1的结果)
3. 分析市场机会和风险
4. 生成报告大纲
5. 写完整报告
Action: web_search("2026年XX行业市场规模")
Observation: 市场规模约500亿,年增速15%...
[继续执行直到报告完成]粒度控制
- 步骤太细 → 执行轮次太多,时间长,token消耗大
- 步骤太粗 → AI不知道怎么执行,容易出错
- 合适粒度 → 每步对应一个明确的工具调用或输出
先计划,再执行。对于3步以上的复杂任务,让Agent先输出执行计划是最有效的降错手段。