← 上一篇 下一篇 →

hands on aa cp2

Agent是26年上最火的,openclaw是集大成者,本节目的是快速迭代相关知识并且做一个小demo,因为技术发展太快,钻细节无意义。
原项目第5到8章节内容,包括agent架构。

1. agent framework

Agent的目的是通过额外的工程化组件,弥补LLM的局限性:

  1. 记忆局限性:上下文窗口有限,缺乏持久化的记忆机制,训练数据存在时间边界,无法记住历史交互信息。
  2. 工具使用局限性:无法访问实时数据和外部系统,难以执行复杂数学运算和数据分析,仅能处理文本,缺乏多媒体能力。
  3. 推理规划局限性:缺乏多轮迭代和自我纠错,难以制定和执行多步骤计划,容易偏离原始任务目标。

智能体的核心组件:

1.1 记忆 (RAG见下文)

包括短期记忆和长期记忆,短期记忆是上下文窗口内的对话历史,长期记忆则是持久化存储的知识库,可以通过检索机制来访问。

短期:

长期: 由于长期记忆存储在模型上下文之外,智能体需要检索机制来按需获取相关信息。当用户请求到来时,系统根据请求内容从长期记忆中检索匹配信息,补充到当前对话上下文中供LLM生成答案。检索方式从简单的关键词匹配规则查找到复杂的语义搜索向量检索等,核心目标是在海量长期记忆中精准找出与当前对话最相关的部分,弥补短期记忆的不足。

当用户发起查询后,智能体首先会在自己的大模型内部检索近期的对话内容,也就是所谓的短时记忆。由于大模型的上下文窗口有限,智能体仅能记住最近的对话内容,这就限制了它直接利用长期历史数据的能力。

为了弥补这一局限,智能体会启用检索增强生成(Retrieval-Augmented Generation, RAG)机制。RAG系统能够根据当前的查询和上下文,从外部数据库(长期记忆)中检索出与问题高度相关的信息。智能体将检索到的关键信息注入到当前的大模型上下文中,用于丰富对查询的理解和响应。最终,大模型会结合短期记忆和检索到的长期记忆内容,生成一条更为准确和全面的答复,并返回给用户。

通过这种流程,智能体能够突破只依赖短时记忆的限制,实现更加灵活、知识丰富的对话和问答体验。

1.2 工具

常见工具通过工具接口设计调用。工具接口的有效性很大程度上依赖于工具描述的标准化程度。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"]
  }
}

1.3 规划 (搜索增强见下文)

大语言模型在复杂任务中逐步增强推理能力的路径,涵盖从直接作答,到思维链构造,再到规划策略与搜索增强四个层级

  1. 直接作答范式:模型面对问题立即给出答案,代表基础但脆弱的能力,对多步推理任务往往无效。
  2. 思维链(Chain-of-Thought, CoT)[6]范式,通过提示词工程引导模型显式输出推理路径,例如在数学题中生成”首先计算面积,然后求体积”等逻辑链。其优势在于可解释性以及通用性,但局限性包括易产生错误积累,推理链结构过于刚性等。
  3. 规划策略范式,包含计划-执行、子任务分解与动态反思等机制,强调任务解决步骤的整体规划与执行控制。该范式下的代表应用包括ReAct框架 [9],Least‑to‑Most Prompting [12],Reflexion机制 [10]等方法。
  4. 基于搜索的推理增强方法,通过思维树(Tree-of-Thoughts, ToT)[7]、自我一致性及搜索算法结合,实现多路径探索与更强的解题鲁棒性。

1.4 工作流(似乎已经落伍)

1.5 常见Agent架构

1. 基于提示的混合决策架构(Prompt-Based Hybrid Architecture)

其核心思想是通过精心设计的提示词模板将推理和行动能力统一在大语言模型的输出中。ReAct[9]作为该架构的代表框架,通过结构化的提示词设计实现了推理(Reasoning)和行动(Acting)的有机结合。

工作原理

  1. 通过结构化提示词将推理(Reason)和行动(Act)统一在模型输出中
  2. 每个决策周期包含:

架构局限性

尽管ReAct架构具有良好的可解释性,但其性能很大程度上依赖于提示词的设计质量。不当的提示词设计可能导致推理链条断裂或行动选择错误。此外,严格的三元循环模式在处理某些复杂任务时可能显得过于僵化,难以适应需要并行处理或非线性推理的场景。

2. 计划-执行-反馈架构(Plan-Execute-Feedback Architecture)

体现了智能体设计中的分阶段处理思想,通过将复杂任务分解为规划、执行和反馈三个相对独立的阶段来提高系统的整体性能和可靠性。HuggingGPT [5]框架将这一理念应用到AI模型的协调和集成中,创建了一个能够统一调度多种AI工具和模型的智能体系统。

工作原理

  1. 规划阶段:将用户请求分解为模型选择(Plan)→工具调用(Execute)→结果整合(Feedback)
  2. 执行阶段
  3. 反馈阶段

3 自主循环智能体架构(Autonomous Looping Architecture)

自主循环架构代表了智能体设计的另一种重要范式,其核心理念是构建能够持续自主运行的智能体系统。与前述架构需要明确的任务分解或用户指导不同,自主循环架构旨在创建能够独立设定目标、制定计划并持续执行的智能体。

代表框架:AutoGPT [12] 工作原理

  1. 接收需求:AutoGPT接收一个高层次的目标描述,工作流程为一个持续的自主循环。
  2. 循环执行: 比较执行结果与目标差距,动态生成新子任务;根据执行结果动态调整优先级和执行顺序;
  3. 终止机制: 根据用户设定的硬性条件或者自动检测到目标完成

架构局限性

自主循环架构虽然提供了强大的自主性,但也带来了显著的挑战。首先是目标漂移问题,在长期运行过程中,智能体可能逐渐偏离原始目标,特别是在面对复杂或模糊目标时。其次是资源消耗问题,持续的自主循环运行会消耗大量的计算资源和API调用,成本控制成为重要考虑因素。此外,缺乏有效的终止条件判断机制,智能体可能陷入无效的循环执行,或者在达到目标后无法及时停止。最后,由于高度自主性,系统的可解释性和可控性相对较弱,用户难以预测和控制智能体的具体行为路径。

4 框架工具和库:

新手入门:推荐LangChain或LlamaIndex,文档完善,社区活跃

企业应用:选择Haystack或Semantic Kernel,提供完整的生产级解决方案

研究原型:使用Transformers直接构建,灵活性最高

1.5 实现一个简单的Agent(基于api和在线模型)