为什么需要任务拆解?

复杂任务直接扔给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%...

[继续执行直到报告完成]

粒度控制

先计划,再执行。对于3步以上的复杂任务,让Agent先输出执行计划是最有效的降错手段。