1.6 任务分解-识别工作流程步骤
讲解任务分解的核心概念,并通过案例说明如何构建Agentic AI工作流。
1.6 任务分解-识别工作流程步骤
一、核心概念:任务分解 (Task Decomposition)
任务分解是构建代理型AI工作流的关键技能。其核心思想是:
- 观察人类行为: 思考如果一个人类要完成这个任务,他会怎么做?
- 拆解步骤: 将整个任务拆解成多个独立的、清晰的子步骤。
- 评估可行性: 对每个子步骤,思考它是否能用大型语言模型(LLM)或某个工具(如API、函数调用)来实现。
- 迭代优化: 如果初步分解的效果不理想,可以进一步细化某个步骤,将其拆分成更小的子步骤,直到达到满意的性能。
案例一:写一篇深度论文(Writing an Essay)
目标
让AI系统撰写一篇关于特定主题X的深入研究报告。
方法一:直接生成(1 步)
输入:Write an essay on topic X→ LLM → 输出文档 问题:内容表面化,缺乏深度和一致性。
方法二:三步工作流 (3-step Workflow)
- 撰写大纲 (Write an essay outline): LLM根据主题X生成一个结构化的写作提纲。
- 网络搜索 (Search web): LLM根据大纲生成搜索词,调用
web search工具获取相关资料。 - 撰写论文 (Write the essay): LLM结合大纲和搜索到的信息,撰写最终的论文。 优点:引入外部信息,内容更丰富。 缺点:文章仍可能“脱节”,开头、中间、结尾风格不一致。
方法三:五步工作流 (5-step Workflow)
- 撰写大纲 (Write an essay outline): LLM生成大纲。
- 网络搜索 (Search web): LLM调用
web search工具获取信息。 - 撰写初稿 (Write a first draft): LLM根据大纲和搜索结果写出第一版草稿。
- 考虑修订部分 (Consider what parts need revision): LLM阅读自己的初稿,分析哪些部分需要改进。
- 修订草稿 (Revise your draft): LLM根据自我批评,对草稿进行修改和完善。 效果提升:模拟人类“写作-反思-修改”循环,输出质量显著提高。
核心方法论:“如果某一步骤效果不好,就把它再拆成更小的子步骤。”
实例二:回复客户邮件 (Responding to Customer Email)
目标
自动回复客户关于“发错货”的投诉邮件。
任务分解
- 提取关键信息 (Extract key information):
- 输入: 客户邮件。
- 操作: LLM解析邮件,提取发件人姓名(Susan Jones)、订单号(#8847)、订购商品(蓝色搅拌机)和问题(收到红色烤面包机)。
- 可行性: LLM擅长文本信息提取。
- 查找相关客户记录 (Find relevant customer records):
- 操作: LLM调用
orders database query工具,根据订单号查询数据库,核实订单详情和发货记录。 - 可行性: LLM可以通过函数调用与数据库交互。
- 操作: LLM调用
- 撰写并发送回复 (Write and send response):
- 操作: LLM根据提取的信息和查询到的记录,起草一封回复邮件,并调用
send emailAPI 将其发送给客户。 - 可行性: LLM可以生成文本,并通过API执行发送动作。
- 操作: LLM根据提取的信息和查询到的记录,起草一封回复邮件,并调用
关键洞察
- 这个例子展示了如何将一个看似单一的任务(回复邮件)分解为三个清晰、独立的步骤。
- 每个步骤都可以由LLM或其调用的工具完成,从而构成一个完整的自动化流程。
实例三:从发票中提取信息 (Extracting Information from Invoice)
目标
在PDF发票被转换为文本后,从中提取关键字段并保存到数据库。
任务分解
- 查找所需信息 (Find required information):
- 操作: LLM分析文本,识别出账单发送方、地址、到期金额、到期日期等必需字段。
- 可行性: LLM擅长从非结构化文本中提取结构化信息。
- 创建并保存新的数据库条目 (Create a new database entry and save):
- 操作: LLM调用
update database工具,将提取到的信息写入数据库。 - 可行性: LLM可以通过API或函数调用更新数据库。
- 操作: LLM调用
关键洞察
- 这个例子非常简单,只有两个步骤,但它完美地诠释了任务分解的核心:将一个目标拆解为几个可执行的动作。
二、构建代理型AI工作流的基本构件 (Building Blocks)
构建任何代理型AI工作流,都离不开以下两大类基本构件:
1. 模型 (Models)
- 大型语言模型 (LLMs):
- 用途: 文本生成、工具使用决策、信息提取。
- 特点: 擅长处理文本,是代理工作流的大脑。
- 其他AI模型 (Other AI models):
- 用途: 处理非文本模态数据,如PDF转文本、文本转语音、图像分析等。
2. 工具 (Tools)
- API:
- 用途: 执行外部服务,如网页搜索、获取实时天气数据、发送电子邮件、查看日历等。
- 信息检索 (Information retrieval):
- 用途: 从数据库或大型文本库中检索信息,常用于RAG(检索增强生成)场景。
- 代码执行 (Code execution):
- 用途: 允许LLM编写并运行代码,以执行更复杂的计算或数据处理任务,如基础计算器、数据分析等。
三、总结与关键技能
核心方法论
- 从宏观到微观: 面对一个复杂任务,不要试图一步到位。先将其分解为几个大的步骤。
- 评估每个步骤: 对每个步骤自问:“这个步骤能否由LLM或我拥有的某个工具来完成?”
- 迭代与细化: 如果某个步骤无法直接实现,或者实现效果不好,就把它再分解成更小的子步骤。
- 组合构件: 最终,你的工作流就是由“模型”和“工具”这两个基本构件按特定顺序组合而成的。
工作流设计原则
- 从简单开始:先做 1-3 步的原型,再逐步扩展。
- 模块化设计:每个步骤应尽量独立、可复用。
- 容错与反馈:加入“检查”、“评审”步骤,避免错误累积。
- 持续迭代:没有一步到位的完美工作流,需不断优化。
关键技能
- 任务分解能力: 能够清晰地识别和定义任务的各个离散步骤。
- 构件理解能力: 理解可用的模型和工具及其适用场景。
- 迭代优化能力: 不断测试、评估和改进工作流,直至达到预期性能。
“当你发现某一步无法由 LLM 或工具完成时,问问自己:‘作为一个人,我会怎么做?’然后把这个‘人’的做法拆成机器能执行的子步骤。”