agent
Agent知识学习与实践
接在《大模型自学笔记》后,继续对agent的深入学习,主要参考学习教程:hello-agent)
主要从hello-agent的第四章开始学习。
智能体经典范式构建
- ReAct(推理与行动):一种将“思考”和“行动”紧密结合的范式,让智能体边想边做,动态调整。
- Plan-and-Solve: 一种“三思而后行”的范式,智能体首先生成一个完整的行动计划,然后严格执行。
- Reflection: 一种赋予智能体“反思”能力的范式,通过自我批判和修正来优化结果。
ReAct
工作流程
最经典,模仿人类解决问题的方式,将推理 (Reasoning) 与行动 (Acting) 显式地结合起来,形成“思考-行动-观察”的循环。
在react之前,主流方法有纯思考(eg.思维链)和纯行动两种。ReAct范式将两者结合起来,通过一种特殊的提示工程来引导模型,重复循环:Thought -> Action -> Observation,将新的观察结果追加到历史记录中,形成一个不断增长的上下文,直到它在中认为已经找到了最终答案,然后输出结果。
- Thought(思考):这是智能体的“内心独白”。它会分析当前情况、分解任务、制定下一步计划,或者反思上一步的结果。
- Action (行动): 这是智能体决定采取的具体动作,通常是调用一个外部工具,例如:
Search['华为最新款手机'] - Observation (观察):这是执行后从外部工具返回的结果,例如搜索结果的摘要或API的返回值。
推理使得行动更具目的性,而行动则为推理提供了事实依据。
工具
定义:
- 名称 (Name): 一个简洁、唯一的标识符,供智能体在中调用,例如 。
ActionSearch - 描述 (Description): 一段清晰的自然语言描述,说明这个工具的用途。这是整个机制中最关键的部分,因为大语言模型会依赖这段描述来判断何时使用哪个工具。
- 执行逻辑 (Execution Logic): 真正执行任务的函数或方法。
对于多种工具,还需要一个统一的管理器来注册和调度这些工具。
ReAct Agent编码实现
即ReActAgent 类。
提示词
ReAct机制的基石。
- 角色定义:“你是一个有能力调用外部工具的智能助手”,设定了LLM的角色。
- 工具清单 (
{tools}): 告知LLM它有哪些可用的“手脚”。 - 格式规约 (
Thought/Action): 这是最重要的部分,它强制LLM的输出具有结构性,使我们能通过代码精确解析其意图。 - 动态上下文 (
{question}/{history}): 将用户的原始问题和不断累积的交互历史注入,让LLM基于完整的上下文进行决策。
核心循环
不断地“格式化提示词 -> 调用LLM -> 执行动作 -> 整合结果”,直到任务完成或达到最大步数限制。
输出解析器
工具调用与执行
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 MugaiAshe's Blog!
评论



