来源: https://github.com/datawhalechina/agentic-ai/blob/main
Agentic AI任务拆解
核心思想
- 观察人类行为:思考如果一个人类要完成应该怎么做?
- 拆解步骤:整个任务拆解成多个独立的,清晰的子步骤
- 评估可行性:对每个步骤,思考是否能用大预言模型LLM或者工具API/函数调用来实现
- 迭代优化:如果初步分解的效果不理想,可以进一步细化步骤,将其拆分成更小的子步骤,直到达到满意的性能
案例一:写一篇深度论文
目标
让AI系统撰写一篇关于特定主体“X”的深入研究报告
版本: V1.0 直接生成
输入:Write an essay on topic X→ LLM → 输出文档
问题:内容表面化,缺乏深度和一致性。
版本: V2.0 三步工作流
- 撰写大纲: LLM根据主题X生成一个结构化的写作提纲
- 网络搜索: LLM根据大纲生成搜索词,调用
web search工具获取相关资料 - 撰写论文: LLM结合大纲和搜索到的内容,撰写论文
优点:引入外部信息内容更丰富
缺点:文章可能脱节,开头,中间,结尾风格不一样
版本: V3.0 五步工作流
- 撰写大纲:LLM根据主题X生成大纲
- 网络搜索: LLM根据大纲生成搜索词,调用
web search工具获取相关资料 - 撰写初稿:LLM根据大纲和搜索结果写出第一版草稿
- 考虑修订部分:LLM阅读自己的初稿,分析哪些部分需要改进
- 修订草稿: LLM根据自我批评,对草稿进行修改和完善。效果提升,类似“写作->反思->修改”循环
核心方法论:“如果某一步骤效果不好,就把它再拆成更小的子步骤。”
案例二:回复客户邮件
目标
自动回复客户关于“发错货”的投诉邮件。
任务分解
- 提取关键信息 (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或其调用的工具完成,从而构成一个完整的自动化流程。
构建代理型AI工作流的基本构件 (Building Blocks)
构建任何代理型AI工作流,都离不开以下两大类基本构件:
模型 (Models)
- 大型语言模型 (LLMs):
- 用途 文本生成、工具使用决策、信息提取。
- 特点: 擅长处理文本,是代理工作流的大脑。
- 其他AI模型 (Other AI models):
- 用途: 处理非文本模态数据,如PDF转文本、文本转语音、图像分析等。
工具 (Tools)
- API:
- 用途: 执行外部服务,如网页搜索、获取实时天气数据、发送电子邮件、查看日历等。
- 信息检索 (Information retrieval):
- 用途: 从数据库或大型文本库中检索信息,常用于RAG(检索增强生成)场景。
- 代码执行 (Code execution):
- 用途: 允许LLM编写并运行代码,以执行更复杂的计算或数据处理任务,如基础计算器、数据分析等。
总结与关键技能
核心方法论
- 从宏观到微观: 面对一个复杂任务,不要试图一步到位。先将其分解为几个大的步骤。
- 评估每个步骤: 对每个步骤自问:“这个步骤能否由LLM或我拥有的某个工具来完成?”
- 迭代与细化: 如果某个步骤无法直接实现,或者实现效果不好,就把它再分解成更小的子步骤。
- 组合构件: 最终,你的工作流就是由“模型”和“工具”这两个基本构件按特定顺序组合而成的。
工作流设计原则
- 从简单开始:先做 1-3 步的原型,再逐步扩展。
- 模块化设计:每个步骤应尽量独立、可复用。
- 容错与反馈:加入“检查”、“评审”步骤,避免错误累积。
- 持续迭代:没有一步到位的完美工作流,需不断优化。
关键技能
- 任务分解能力: 能够清晰地识别和定义任务的各个离散步骤。
- 构件理解能力: 理解可用的模型和工具及其适用场景。
- 迭代优化能力: 不断测试、评估和改进工作流,直至达到预期性能。
“当你发现某一步无法由 LLM 或工具完成时,问问自己:‘作为一个人,我会怎么做?’然后把这个‘人’的做法拆成机器能执行的子步骤。”
Agentic AI任务评估
为什么评估如此重要?
- 预测成败的关键: 在团队合作中,能否有效评估工作六是区分“做得好”/“做得差”的最大因素
- 驱动迭代优化:没有评估,就无法知道哪里出了问题,也就无法改进
- 避免“黑盒”陷阱:不能只看最终输出,要深入分析中间过程和错误根源
能否进行严格、有纪律的评估(evals) 是区分一个团队或个人在构建智能体工作流时“做得好”与“做得差”的最大预测因素。评估能力对有效构建智能体工作流至关重要。”
核心评估方法论
- 先构建,再观察,后评估
- 问题:在构建智能体工作流前,很难预知可能出错的地方
- 解决方案:不要试图提前设计所有评估标准。最佳实践是先构建一个初步版本,然后手动检查其输出,寻找那些你认为能做的更好的地方
- 识别低质量输出
- “以处理客户订单查询的智能体为例”
- 输入:客户邮件“我订购了蓝色搅拌机,但收到了红色烤面包机”
- 期望输出:礼貌,专业,解决问题的回复
- 低质量输出:“很高兴您选择了我们,我们比竞争对手强多了”
- 分析:这种输出是错误的,因为它提到了竞争对手,这在商业中通常不被允许
- “以处理客户订单查询的智能体为例”
- 构建评估指标来追踪错误
- 目标:量化并跟踪已知识别的错误
- 方法:
- 定义错误类型:例如“提到竞争对手”
- 创建列表:列出所有需要避免提及的竞争对手的名称
- 编写代码:编写脚本自动扫描智能体所有的输出,统计这些竞争对手的此处和频率
- 优势:这是一个客观指标,可以用代码精确衡量,便于追踪改进效果
- 使用大语言模型作为裁判
- 场景:当评估标准更为主管,难以用代码精确判断时,例如,评估一篇论文的质量
- 方法:
- 构建生成论文Agent: 一个用于撰写不同主题研究报告的智能体
- 引入裁判LLM:使用另一个LLM来评估第一个LLM的生成报告
- 设计评分提示词:让裁判LLM对报告进行打分(比如1-5分,5分最佳)
评估量大类型
端到端评估
衡量整个智能体最终输出整体质量,比如一篇完整论文最终得分
组件级评估
衡量智能体工作流中单个步骤或者组件的输出质量,比如评估第一步“提取关键信息”的准确性,或者第二步“查找相关客户记录”的召回率