【Datawhale组队学习202602】Hello-Agents task04智能体经典范式构建

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、现代智能体
    • [1.1 环境准备与基础工具定义](#1.1 环境准备与基础工具定义)
  • 二、ReAct
    • [2.1 为什么提出 ReAct](#2.1 为什么提出 ReAct)
    • [2.2 ReAct核心循环](#2.2 ReAct核心循环)
    • [2.3 工具的定义与实现](#2.3 工具的定义与实现)
      • [借助 SerpApi 实现结构化搜索](#借助 SerpApi 实现结构化搜索)
    • [2.4 实现 ReAct agent](#2.4 实现 ReAct agent)
    • [2.5 调式技巧](#2.5 调式技巧)
    • [2.6 评价一下 ReAct](#2.6 评价一下 ReAct)
  • 三、Plan-and-Solve
  • 四、Reflection
  • 总结

前言


一、现代智能体

  • 之前学会提示工程,学会了怎么让大模型说话,但是这远远不够,大模型的潜力才开发了一点,智能体是让大模型真正能够提供实际作用的途径。

  • 聚焦于其中最具代表性的三种,并一步步从零实现它们:

ReAct (Reasoning and Acting): 一种将"思考"和"行动"紧密结合的范式,让智能体边想边做,动态调整。
Plan-and-Solve: 一种"三思而后行"的范式,智能体首先生成一个完整的行动计划,然后严格执行。
Reflection: 一种赋予智能体"反思"能力的范式,通过自我批判和修正来优化结果。

1.1 环境准备与基础工具定义

  • 安装依赖库
shell 复制代码
pip install openai python-dotenv
  • 通过环境变量配置 API 密钥

    .env file

    LLM_API_KEY="YOUR-API-KEY"
    LLM_MODEL_ID="YOUR-MODEL"
    LLM_BASE_URL="YOUR-URL"

  • 按照教程代码封装 LLM 调用函数并测试

二、ReAct

ReAct 由 Shunyu Yao 于 2022 年提出,其核心思想是模仿人类解决问题的方式,将推理 (Reasoning)行动 (Acting) 显式地结合起来,形成一个"思考-行动-观察"的循环。

2.1 为什么提出 ReAct

  • 举个例子,要查"华为最新手机",大模型很可能给出下面这样的案例
  1. 纯思维链(CoT):

    模型直接推理:"我记得2023年是Mate 60...所以最新应该是Mate 70"

  • 问题:它的知识冻结在训练截止日,可能给出过时答案,甚至编造不存在的型号(幻觉)。
  1. 纯行动(直接调工具):

    模型一上来就调搜索:Search[华为手机]

  • 问题:搜出来一堆结果,它不知道该关注"最新"还是"性价比",可能直接把搜索摘要当答案甩给你。

  • 想想如果是我们面对这个问题会怎么办,反正我是这么想的:

    ① 先想"我需要查最新款"
    |→ ② 搜索"华为2024最新手机"
    |→ ③ 看到结果发现有Mate 70和Pura 70
    |→ ④ 再想"哪个更新?"
    |→ ⑤ 二次搜索确认
    |→ ⑥ 综合得出答案。

  • 这也正是 ReAct 的思考路径。

2.2 ReAct核心循环

核心循环:Thought → Action → Observation

步骤 ReAct对应 案例体现
Thought 分析现状、规划下一步 Thought: 需要搜索华为2024年发布的旗舰机型
Action 调用工具 Action: Search[华为最新手机型号]
Observation 工具返回结果 Observation: [1] Mate 70于2024年11月发布...
  • 关键在于 : Observation 会成为下一轮 Thought 的输入。

2.3 工具的定义与实现

  • 之前学过 SHRDLU 的物理机械臂,ReAct 的工具就是它的现代智能数字版:
智能体组件 比喻 Search工具
LLM 大脑 负责思考"该搜什么"
Tools 手脚 负责执行搜索、计算等
ReAct 循环 神经系统 把大脑指令传给手脚,把感官反馈传回大脑

借助 SerpApi 实现结构化搜索

  • 首先,需要安装依赖库:

    pip install google-search-results

  • 同时,需要前往 SerpApi官网 注册一个免费账户,获取API密钥,并将其添加项目根目录下的 .env 文件中:

    .env file

    ... (保留之前的LLM配置)

    SERPAPI_API_KEY="YOUR_SERPAPI_API_KEY"

  • 实现搜索工具的核心逻辑

  • 一个良好定义的工具应包含以下三个核心要素:

要素 说明 举例
名称 (Name) 一个简洁、唯一的标识符,供智能体在 Action 中调用 例如 Search
描述 (Description) 一段清晰的自然语言描述,说明这个工具的用途。 这是整个机制中最关键的部分,因为大语言模型会依赖这段描述来判断何时使用哪个工具。 还要设定清晰的边界 "一个实时网页搜索引擎。当你需要回答时事新闻、产品参数、股价、天气等时效性信息,或你的内部知识可能已过时时,必须使用此工具。不要用于回答常识性问题(如'地球有几大洲')。"
执行逻辑 (Execution Logic) 真正执行任务的函数或方法 通过代码实现
  • 运行教程代码,这时已经测试通了调用工具获取外部搜索信息

2.4 实现 ReAct agent

  • 下面来一一拆解

  • 提示词

  • 使用了 Python 多行字符串(三引号)定义模板
  • 采用占位符 {tools} 、 {question} 和 {history} 实现动态内容注入
  • 严格定义了输出格式,要求 LLM 按照 Thought: 和 Action: 的结构输出
  • 明确了两种 Action 类型:工具调用和最终回答

2.5 调式技巧

  • 打印完整提示词,防止出现历史记录污染。
  • 必看原始输出,别太相信解析器 parse_out
  • 工具的输入要做清洗,尤其是前后空格和感叹号

2.6 评价一下 ReAct


三、Plan-and-Solve


四、Reflection


总结

  1. 某电商初创公司现在希望使用"客服智能体"来代替真人客服实现降本增效,它需要具备以下功能:

    a. 理解用户的退款申请理由

    b. 查询用户的订单信息和物流状态

    c. 根据公司政策智能地判断是否应该批准退款

    d. 生成一封得体的回复邮件并发送至用户邮箱

    e. 如果判断决策存在一定争议(自我置信度低于阈值),能够进行自我反思并给出更审慎的建议

    • 此时作为该产品的负责人:
      • 你会选择本章的哪种范式(或哪些范式的组合)作为系统的核心架构?
      • 这个系统需要哪些工具?请列出至少3个工具及其功能描述。
      • 如何设计提示词来确保智能体的决策既符合公司利益,又能保持对用户的友好态度?
      • 这个产品上线后可能面临哪些风险和挑战?如何通过技术手段来降低这些风险?

答:

  • 选择 ReAct + Reflection组合起来一起作为系统的核心架构
  • 工具:
    1. UserInfo,根据用户标识符识别具体用户;
    2. UserOrder
相关推荐
2501_926978331 小时前
重整化群理论:从基础到前沿应用的综述(公式版)---AGI理论系统基础2.2
人工智能·经验分享·深度学习·机器学习·agi
乾元1 小时前
数据投毒:如何通过训练数据污染埋下“后门”
运维·人工智能·网络协议·安全·网络安全·系统架构·自动化
KG_LLM图谱增强大模型2 小时前
未来属于Agentic AI:释放人工智能在药企医学洞察中的潜力
人工智能
说私域2 小时前
技术赋能直播运营:开源AI智能名片商城小程序助力个人IP构建与高效运营
人工智能·tcp/ip·小程序·流量运营·私域运营
AI周红伟2 小时前
周红伟:企业大模型微调和部署, DeepSeek-OCR v2技术原理和架构,部署案例实操。RAG+Agent智能体构建
大数据·人工智能·大模型·ocr·智能体·seedance
AomanHao2 小时前
【阅读笔记】基于规则的清晰度评价值峰值搜索Development and real-time implementation of a rule-based au
人工智能·后端
_waylau2 小时前
跟老卫学仓颉编程语言开发:浮点类型
人工智能·华为·harmonyos·鸿蒙·鸿蒙系统·仓颉
回眸&啤酒鸭2 小时前
【回眸】AI新鲜事(七)——使用AI写日记
人工智能
过期的秋刀鱼!2 小时前
深度学习-预测与向前传播
人工智能·深度学习