搭建可以自主决策规划和行动的 agent 通常涉及以下几个方面:
一、Agent 的概念
Agent 是一种能够在环境中自主感知、思考并采取行动的实体。可以将其想象成一个具有特定目标和行为能力的智能角色,能根据环境变化做出相应决策和反应。
二、LLM Agent
LLM Agent 是结合大型语言模型(LLM)和自主智能体(Agent)特性的系统,能够利用大型语言模型的自然语言处理能力,理解用户输入,并在此基础上进行智能决策和行动。
三、LLM Agent 的组成部分
规划(Planning)
记忆(Memory)
工具(Tools)
行动(Action)
四、Anthropic 的建议
随着 LLM 在几个关键能力上的成熟,如理解复杂输入、进行推理和规划、可靠使用工具以及从错误中恢复,智能体开始在生产环境中涌现。智能体通过与人类用户的命令或交互式对话开始工作。一旦任务明确,智能体就会独立进行规划和操作,必要时会向人类寻求更多信息或判断。
在执行过程中,智能体需要在每个步骤从环境中获取“基准事实”(如工具调用结果或代码执行情况)以评估其进展。智能体可以在检查点或遇到障碍时暂停等待人类反馈。任务通常在完成时终止,但也常常包含停止条件(如最大迭代次数)以保持控制。
智能体适用于难以或无法预测所需步骤数量的开放性问题,且无法硬编码固定路径的场景。但智能体的自主性意味着更高的成本和潜在的错误累积。建议在沙盒环境中进行广泛测试,并设置适当的防护措施。
五、实例探究
Generative Agents 是一个有趣的实验,其中 25 个虚拟角色,每个角色都由 LLM 支持的 Agents 控制,在沙盒环境中生活和交互,其灵感来自《模拟人生》。生成 Agents 的设计将 LLM 与记忆、规划和反射机制相结合,使 Agents 能够根据过去的经验进行行为,并与其他 Agents 进行交互。
记忆流是一个长期记忆模块(外部数据库),用自然语言记录智能体经验的完整列表。检索模型会根据相关性、新近度和重要性,呈现上下文以告知 Agents 的行为。反射机制随着时间的推移将记忆合成更高层次的推论,并指导智能体未来的行为。规划与反应将反思和环境信息转化为行动,规划本质上是为了优化当前与时间的可信度。
Agent(智能体)是一种能够在环境中自主感知、思考并采取行动的实体。你可以把Agent想象成一个具有特定目标和行为能力的智能角色,它们可以根据环境变化做出相应的决策和反应。[heading3]LLM Agent[content]LLM Agent是指结合大型语言模型(LLM)和自主智能体(Agent)特性的系统。这种系统能够利用大型语言模型的自然语言处理能力,理解用户的输入,并在此基础上进行智能决策和行动。大语言模型-Agent框架[heading3]LLM Agent组成部分:[content]1.规划(Planning)定义:规划是Agent的思维模型,负责将复杂任务分解成可执行的子任务,并评估这些子任务的执行策略。实现方式:通过使用大型语言模型的提示工程(如ReAct、CoT推理模式)来实现精准任务拆解和分步解决。2.记忆(Memory)定义:记忆即信息存储与回忆,包括短期记忆和长期记忆。实现方式:短期记忆用于存储对话上下文,支持多轮对话;长期记忆存储用户特征和业务数据,通常通过向量数据库等技术实现快速存取。3.工具(Tools)定义:工具是Agent感知环境、执行决策的辅助手段,如API调用、插件扩展等。实现方式:通过接入外部工具(如API、插件)扩展Agent的能力,例如使用插件解析文档、生成图像等。4.行动(Action)定义:行动是Agent将规划和记忆转换为具体输出的过程,包括与外部环境的互动或工具调用。实现方式:根据规划和记忆执行具体行动,如智能客服回复、查询天气预报、AI机器人抓起物体等。
随着LLM在几个关键能力上的成熟——理解复杂输入、进行推理和规划、可靠使用工具以及从错误中恢复,智能体开始在生产环境中涌现。智能体通过与人类用户的命令或交互式对话开始工作。一旦任务明确,智能体就会独立进行规划和操作,必要时会向人类寻求更多信息或判断。在执行过程中,智能体需要在每个步骤从环境中获取"基准事实"(如工具调用结果或代码执行情况)以评估其进展。智能体可以在检查点或遇到障碍时暂停等待人类反馈。任务通常在完成时终止,但也常常包含停止条件(如最大迭代次数)以保持控制。智能体虽然可以处理复杂任务,但其实现往往很直接。它们通常只是基于环境反馈在循环中使用工具的LLM。因此,清晰而深思熟虑地设计工具集及其文档至关重要。我们在附录2("工具的提示工程")中详细探讨了工具开发的最佳实践。使用场景:智能体适用于难以或无法预测所需步骤数量的开放性问题,且无法硬编码固定路径的场景。LLM可能需要运行多个回合,您必须对其决策能力有一定信任。智能体的自主性使其非常适合在可信环境中扩展任务。智能体的自主性意味着更高的成本和潜在的错误累积。我们建议在沙盒环境中进行广泛测试,并设置适当的防护措施。实用案例:以下是我们自己的实践案例:用于解决SWE-bench任务的编码智能体,根据任务描述对多个文件进行编辑:https://www.anthropic.com/research/swe-bench-sonnet我们的"计算机使用"参考实现,让Claude使用计算机完成任务:https://github.com/anthropics/anthropic-quickstarts/tree/main/computer-use-demo
Generative Agents([Park等人,2023](https://arxiv.org/abs/2304.03442))是一个超级有趣的实验,其中25个虚拟角色,每个角色都由LLM支持的Agents控制,在沙盒环境中生活和交互,其灵感来自《模拟人生》。生成Agents为交互式应用程序创建可信的人类行为模拟。生成Agents的设计将LLM与记忆、规划和反射机制相结合,使Agents能够根据过去的经验进行行为,并与其他Agents进行交互。记忆流:是一个长期记忆模块(外部数据库),用自然语言记录智能体经验的完整列表。每个元素都是一个观察结果,是由Agent直接提供的事件。代理人之间的交流可以引发新的自然语言陈述。检索模型:根据相关性、新近度和重要性,呈现上下文以告知Agents的行为。新近度:最近发生的事件得分较高重要性:区分平凡记忆和核心记忆。直接问LM。相关性:基于它与当前情况/查询的相关程度。反射机制:随着时间的推移将记忆合成更高层次的推论,并指导智能体未来的行为。它们是对过去事件的更高层次的总结(<-注意,这与上面的[自我反思](https://lilianweng.github.io/posts/2023-06-23-agent/#self-reflection)有点不同)提示LM提供100个最新观察结果,并根据这些观测/陈述生成3个最重要的高层次问题。然后让LM回答这些问题。规划与反应:将反思和环境信息转化为行动规划本质上是为了优化当前与时间的可信度。提示模板:{Intro of an agent X}.Here is X's plan today in broad strokes:1)规划和反应时都会考虑主体之间的关系以及一个主体对另一个主体的观察。环境信息以树形结构呈现。