Agent是26年上最火的,openclaw是集大成者,本节目的是快速迭代相关知识并且做一个小demo,因为技术发展太快,钻细节无意义。
原项目第5到8章节内容,包括agent架构。
Agent的目的是通过额外的工程化组件,弥补LLM的局限性:
智能体的核心组件:
包括短期记忆和长期记忆,短期记忆是上下文窗口内的对话历史,长期记忆则是持久化存储的知识库,可以通过检索机制来访问。
短期:
长期: 由于长期记忆存储在模型上下文之外,智能体需要检索机制来按需获取相关信息。当用户请求到来时,系统根据请求内容从长期记忆中检索匹配信息,补充到当前对话上下文中供LLM生成答案。检索方式从简单的关键词匹配、规则查找到复杂的语义搜索、向量检索等,核心目标是在海量长期记忆中精准找出与当前对话最相关的部分,弥补短期记忆的不足。
当用户发起查询后,智能体首先会在自己的大模型内部检索近期的对话内容,也就是所谓的短时记忆。由于大模型的上下文窗口有限,智能体仅能记住最近的对话内容,这就限制了它直接利用长期历史数据的能力。
为了弥补这一局限,智能体会启用检索增强生成(Retrieval-Augmented Generation, RAG)机制。RAG系统能够根据当前的查询和上下文,从外部数据库(长期记忆)中检索出与问题高度相关的信息。智能体将检索到的关键信息注入到当前的大模型上下文中,用于丰富对查询的理解和响应。最终,大模型会结合短期记忆和检索到的长期记忆内容,生成一条更为准确和全面的答复,并返回给用户。
通过这种流程,智能体能够突破只依赖短时记忆的限制,实现更加灵活、知识丰富的对话和问答体验。
常见工具通过工具接口设计调用。工具接口的有效性很大程度上依赖于工具描述的标准化程度。OpenAI 在 GPT Function Calling 中规定了 JSON Schema 的形式,对于需要更强可控性或多参数传递的复杂工具,我们可以采用这种结构化的接口定义方式。大多数主流LLM平台(如OpenAI,阿里云通义千问等)都采用或兼容基于JSON Schema的格式来定义工具。JSON Schema 标准的一个典型示例如下:
{
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "城市名称"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["location"]
}
}
大语言模型在复杂任务中逐步增强推理能力的路径,涵盖从直接作答,到思维链构造,再到规划策略与搜索增强四个层级
其核心思想是通过精心设计的提示词模板将推理和行动能力统一在大语言模型的输出中。ReAct[9]作为该架构的代表框架,通过结构化的提示词设计实现了推理(Reasoning)和行动(Acting)的有机结合。
工作原理:
推理(Thought): 分析当前状态并生成推理路径动作(Action): 调用工具或执行动作观测(Observation): 接收工具反馈并更新记忆架构局限性
尽管ReAct架构具有良好的可解释性,但其性能很大程度上依赖于提示词的设计质量。不当的提示词设计可能导致推理链条断裂或行动选择错误。此外,严格的三元循环模式在处理某些复杂任务时可能显得过于僵化,难以适应需要并行处理或非线性推理的场景。
体现了智能体设计中的分阶段处理思想,通过将复杂任务分解为规划、执行和反馈三个相对独立的阶段来提高系统的整体性能和可靠性。HuggingGPT [5]框架将这一理念应用到AI模型的协调和集成中,创建了一个能够统一调度多种AI工具和模型的智能体系统。
工作原理:
自主循环架构代表了智能体设计的另一种重要范式,其核心理念是构建能够持续自主运行的智能体系统。与前述架构需要明确的任务分解或用户指导不同,自主循环架构旨在创建能够独立设定目标、制定计划并持续执行的智能体。
代表框架:AutoGPT [12] 工作原理:
架构局限性
自主循环架构虽然提供了强大的自主性,但也带来了显著的挑战。首先是目标漂移问题,在长期运行过程中,智能体可能逐渐偏离原始目标,特别是在面对复杂或模糊目标时。其次是资源消耗问题,持续的自主循环运行会消耗大量的计算资源和API调用,成本控制成为重要考虑因素。此外,缺乏有效的终止条件判断机制,智能体可能陷入无效的循环执行,或者在达到目标后无法及时停止。最后,由于高度自主性,系统的可解释性和可控性相对较弱,用户难以预测和控制智能体的具体行为路径。
新手入门:推荐LangChain或LlamaIndex,文档完善,社区活跃
企业应用:选择Haystack或Semantic Kernel,提供完整的生产级解决方案
研究原型:使用Transformers直接构建,灵活性最高