教程链接

第四章 智能体经典范式构建 - 学习笔记

一、本章核心目标

  • 理解智能体的核心能力:将大语言模型(LLM)的推理能力与外部世界(工具、API等)联通,自主拆解任务、调用工具达成目标。
  • 掌握三种经典智能体范式的构建原理与实现:ReAct、Plan-and-Solve、Reflection(本章重点前两者)。
  • 理解“重复造轮子”的意义:掌握底层设计机制,应对工程挑战,从“使用者”转变为“创造者”。

二、环境准备与基础工具定义

1. 基础概念

  • 开发依赖:Python 3.10+,核心库为openai(LLM交互)和python-dotenv(环境变量管理)。
  • 环境配置:通过.env文件统一管理模型ID、API密钥、服务地址等敏感信息,避免硬编码。
  • LLM客户端封装:将LLM调用细节(如流式响应处理、错误捕获)封装为HelloAgentsLLM类,简化后续智能体逻辑。

2. 关键原理

  • 配置文件设计:.env文件分离配置与代码,提高灵活性(支持切换OpenAI官方服务或兼容接口的第三方服务)。
  • LLM客户端核心功能:think方法接收消息列表,调用LLM并返回流式响应结果,包含错误处理机制。

3. 注意事项(坑)

  • 环境变量缺失会直接导致客户端初始化失败,需确保.env文件中LLM_MODEL_IDLLM_API_KEYLLM_BASE_URL均正确配置。
  • 流式响应处理需注意空内容(chunk.choices[0].delta.content可能为None),避免拼接错误。

三、ReAct范式(Reasoning and Acting)

1. 基础概念

  • 核心思想:模仿人类“思考-行动-观察”的循环,将推理(Reasoning)与行动(Acting)紧密结合,动态调整任务处理过程。
  • 三要素:
    • Thought:智能体的“内心独白”,用于分析情况、规划下一步。
    • Action:调用外部工具的具体操作(如Search[查询内容])。
    • Observation:工具执行Action后的返回结果,作为下一轮思考的输入。

2. 关键原理

  • 工作流程:Thought -> Action -> Observation循环,不断积累上下文,直至任务完成。
    • 形式化表达: ( th t , a t ) = π ( q , ( a 1 , o 1 ) , … , ( a t − 1 , o t − 1 ) ) (\text{th}_t, a_t) = \pi(q, (a_1,o_1),\ldots,(a_{t-1},o_{t-1})) (tht,at)=π(q,(a1,o1),,(at1,ot1))(LLM生成思考与行动); o t = T ( a t ) o_t = T(a_t) ot=T(at)(工具返回观察结果)。
  • 工具设计:
    • 核心要素:名称(唯一标识)、描述(LLM判断何时使用的依据)、执行逻辑(实际功能实现)。
    • 工具管理器(ToolExecutor):统一注册、调度工具,提供工具列表描述(供LLM参考)。
  • 智能体实现:
    • 系统提示词:严格定义Thought/Action格式(如Action: Search[输入]Action: Finish[答案]),确保LLM输出可解析。
    • 核心循环:格式化提示词→调用LLM→解析Thought/Action→执行工具→整合Observation到历史,重复至任务完成或达最大步数。
    • 解析器:通过正则表达式提取ThoughtAction,分离工具名称与输入。

3. 注意事项(坑)

  • 对LLM能力强依赖:LLM若无法遵循格式(如未生成Action字段),会导致流程中断。
  • 提示词脆弱性:模板格式微小变动可能影响LLM输出,需严格维护格式规范。
  • 效率问题:多步骤任务需多次调用LLM,耗时且成本高。
  • 可能陷入循环:需设置max_steps限制最大循环次数,避免无限循环。
  • 调试技巧:
    • 打印完整提示词与LLM原始输出,定位格式错误或推理偏差。
    • 验证工具输入输出格式,确保Observation可被LLM理解。
    • 必要时添加示例(Few-shot Prompting)引导LLM遵循格式。

四、Plan-and-Solve范式

1. 基础概念

  • 核心思想:“先规划,后执行”,将任务处理分为两个阶段,适用于结构化、多步骤的复杂任务。
  • 两阶段划分:
    • 规划阶段(Planning Phase):LLM生成完整的分步骤行动计划。
    • 执行阶段(Solving Phase):严格按计划逐步执行,直至完成所有步骤。

2. 关键原理

  • 工作流程:
    • 规划阶段: P = π plan ( q ) P = \pi_{\text{plan}}(q) P=πplan(q)(LLM根据问题生成计划 P = ( p 1 , p 2 , … , p n ) P=(p_1,p_2,\dots,p_n) P=(p1,p2,,pn))。
    • 执行阶段: s i = π solve ( q , P , ( s 1 , … , s i − 1 ) ) s_i = \pi_{\text{solve}}(q, P, (s_1,\dots,s_{i-1})) si=πsolve(q,P,(s1,,si1))(按计划步骤依次执行,依赖前序结果)。
  • 适用场景:多步数学题、报告撰写(需整合多信息源)、代码生成(需先设计结构)等结构性任务。

3. 注意事项(坑)

  • 计划合理性依赖LLM:若初始计划存在疏漏(如步骤缺失或错误),执行阶段会持续偏离目标。
  • 灵活性差:计划生成后难以动态调整,不适合需要实时反馈修正的任务(如实时信息查询)。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐