Agent杂货铺
零散记录一些Agent相关的内容。不成体系,看情况是否整理
ReAct
ReAct 是一种实践代理模型的高级框架,通过将大语言模型(LLMs)的推理和执行行动的能力结合起来,增强了它们在处理复杂任务时的决策能力、适应性和与外部环境的交互。ReAct包括许多关键组件,如 LLMs、用于外部交互的工具(Tools)、多种代理类型(Agent Types)、思维链(Chain-of-Thought,CoT)Prompting和 ReAct Prompting。
CoT和ReAct Prompting示例
一、思维链(Chain-of-Thought,CoT)
▋ 核心原理
通过显式要求AI展示推理过程,模仿人类逐步解决问题的思考路径。与直接输出答案不同,AI会先分解问题、执行中间推理,最后得出最终结论。
▋ 核心价值
- 提升复杂问题(数学/逻辑/多步推理)的解决能力
- 错误更容易溯源
- 输出过程可解释性增强
▋ 实现方式
[System]
当解决数学问题时,请按以下步骤执行:
1. 逐句解读题目条件
2. 列出已知变量与未知量
3. 选择适用的公式
4. 分步计算并验证每步合理性
5. 最后用方框标出最终答案[User]
某商品原价200元,先涨价20%再降价25%,现价多少?
▋ 典型输出
1. 初始价格:200元
2. 第一次涨价:200 × (1+20%) = 240元
3. 第二次降价:240 × (1-25%) = 240 × 0.75 = 180元
4. 验证:20%涨幅与25%降幅并非抵消,实际变化率是(1.2×0.75)=0.9
→ 最终价格:[[180元]]
▋ 适用场景
- 数学应用题(如折扣计算、追及问题)
- 逻辑谜题(如谁在说谎类问题)
- 因果推理(如故障排查)
二、ReAct Prompting
▋ 核心原理
整合推理(Reason)与行动(Act)的交互模式,允许AI在需要时调用外部工具/知识库,形成"思考-行动-观察"循环。
▋ 核心组件
- Reason:分析当前状况,确定需要采取的行动
- Act:执行具体操作(如调用API/查询知识库)
- Observe:获取行动结果,继续推进思考
▋ 实现案例(天气信息查询)
[System]
你拥有查询实时天气的API权限(act.get_weather),请按以下流程处理问题:
1. 解析用户问题中的关键信息(地点/时间/天气要素)
2. 判断是否需要调用API
3. 若需调用,用JSON格式请求:act.get_weather({"city":"北京"})
4. 根据API返回数据生成自然语言回答[User]
北京明天适合穿什么衣服?
▋ 典型交互过程
Thought:用户询问穿衣建议,需先获取北京明日天气预报
Action:act.get_weather({"city":"北京","date":"2023-08-20"})
Observation:{"temp_min":18℃, "temp_max":26℃, "weather":"小雨"}Thought:明日气温在18-26℃间有小雨,建议:
1. 外层防水外套
2. 内搭长袖衬衫
3. 携带折叠伞
▋ 技术优势对比
维度 | CoT | ReAct |
---|---|---|
核心能力 | 线性推理 | 动态交互 |
外部交互 | 无 | 可调用工具/API |
适用场景 | 封闭问题 | 开放域动态问题 |
错误处理 | 依赖预设逻辑 | 可实时修正 |
三、组合应用案例(客服场景)
[System]
处理客户投诉时按ReAct框架执行:
1. Reason:识别问题类型(物流/质量/服务)
2. Act:调用CRM系统查询订单(act.query_order)
3. Reason:根据数据判断责任方
4. Act:生成解决方案模板
5. 最终回复需包含:致歉+处理方案+预防措施
执行过程:
用户:订单#1123还没收到,已经超时3天!Reason:物流延迟类投诉,需确认物流信息
Action:act.query_order(1123)
Observation:物流状态"运输中",最后节点"杭州分拣中心"Reason:因极端天气导致延误,需提供补偿方案
→ 方案:1. 优先派送 2. 赠送20元优惠券
→ 预防:开通极端天气物流预警通道
四、最佳实践指南
CoT优化技巧:
- 用
让我们逐步思考...
开头引导推理 - 要求用特定符号(如→、◆)标注关键步骤
- 添加验证环节(“请检查第三步计算是否合理”)
ReAct设计要点:
- 明确定义可用的 Action 清单
- 设置行动次数限制(防止死循环)
- 设计异常处理机制(如API超时响应)
混合使用场景:
- 先用 CoT 拆解复杂问题
- 对需要外部数据的子任务启用 ReAct
- 最后用 CoT 整合所有信息得出结论