以下是根据《智能体Agent-书生浦语大模型实战营》学习笔记第6部分的内容概要:### 第6部分:智能体Agent的高级应用#### 6.1 智能体Agent的协作与通信- **协作机制**:介绍智能体之间如何通过协商、合作完成任务。- **通信协议**:

摘要:大语言模型学习:10.智能体Agent 书生浦语大模型实战营学习笔记6 两个月之后的6月13日,特意来重写这部分的内容。之前关于智能体介绍得太粗糙了。这次修订主要是把整体逻辑换成吴恩达的逻辑,更多参考了deeplearning.ai上面的内
大语言模型学习:10.智能体Agent 书生浦语大模型实战营学习笔记6 两个月之后的6月13日,特意来重写这部分的内容。之前关于智能体介绍得太粗糙了。这次修订主要是把整体逻辑换成吴恩达的逻辑,更多参考了deeplearning.ai上面的内容 定义 我们将智能体Agent定义为具有感知、规划、行动3种特性的东西,如下图: 类似人类「做事情」的过程,Agent的核心功能,可以归纳为三个步骤的循环:感知(Perception)、规划(Planning)和行动(Action)。感知(Perception)是指Agent从环境中收集信息并从中提取相关知识的能力,规划(Planning)是指Agent为了某一目标而作出的决策过程,行动(Action)是指基于环境和规划做出的动作。其中,Policy是Agent做出Action的核心决策,而行动又通过观察(Observation)成为进一步Perception的前提和基础,形成自主地闭环学习过程。 组成 设计模式 这里的设计模式,指的是构成Agent的基础模式。根据这些模式的排列组合,会得到各种不同的智能体范式。我们将在下一节讲这些范式。 根据吴恩达的总结,设计模式共有4种: Reflection 反思:LLM自己检查自己的输出,并改进自己的输出 Tool Use 使用工具:LLM可以使用如网络搜索、代码执行等工具收集信息、采取行动或处理数据。 Planning 规划:LLM提出并执行一个包含多个步骤的计划来实现一个目标 Multi-agent collaboration 多智能体协作:多个智能体一起工作,分解任务,讨论想法,以提出比单个智能体更好的解决方案。 Reflection 反思 举个例子:当你请LLM写代码,然后它给出了个有bug的代码时,你通常会告诉LLM代码第几行执行以后会报错,并请它修改。这时,LLM就会根据你的提示反思自己的输出,并给出修正后的代码。 Tool Use 使用工具 这意味着给LLM使用工具的能力。当你请Agent进行数学计算时,它可能会先写出能解决这个问题的代码,再通过调用工具执行代码,根据代码执行的输出得到最后的输出。 Planning 规划 许多任务无法通过一个步骤就完成,但是Agent可以决定采取哪些步骤。我们来看论文“HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face,” Shen et al. (2023)中的例子:如果你想让一个Agent根据一张男孩的照片画一张女孩的照片,并要求生成的图片与原图姿势相同,那么这个任务可能被分解成: 检测男孩照片中的姿势 画一张被检测姿势的女孩照片 可以对LLM进行微调或提示(使用少量提示),通过输出像“ftool: pose-detection, input: image.jpg, output: temp1) {tool: pose-to-image, input: temp1, output: final.jpg}”这样的字符串来指定计划。这个结构化的输出指定了要采取的两个步骤,然后触发软件调用姿势检测工具,然后是姿势到图像的工具来完成任务。 Multi-agent collaboration 多智能体协作 对于编写软件这样的复杂任务,多智能体方法将任务分解为子任务,由不同的角色(如软件工程师、产品经理、设计师、QA(质量保证)工程师等)执行,并让不同的智能体完成不同的子任务。 可以通过提示LLM执行不同的任务来构建不同的智能体。例如,要构建一个软件工程师智能体,我们可能会提示法学硕士:“You are an expert in writing clear, efficient code. Write code to perform the task . . .." 智能体范式 个人感觉,Agent的处理更强调workflow,更像一个flow-engineering ReAct ReAct: Synergizing Reasoning and Acting in Language Models ReAct是这几种范式里面最基础的。核心原理是:自己选择需要使用的工具,并使用工具获取输出。 关于ReAct,这里有个Repo实现了一个简易的ReAct Agent,可以去看看具体实现。在这里简单的提一下: 首先定义工具类。
阅读全文