4. Agent

AI 智能体技术与框架

4. Agent - AI 智能体

深入学习 AI 智能体的核心技术和应用方向:

1. LLM Agent Survey

大语言模型智能体的全面调查,涵盖智能体的核心构成、分类、评估框架和实际应用。

2. Agentic Reasoning

智能体推理框架,从基础推理到自进化推理再到集体推理的三层架构。

3. Memory in AI Agents

AI 智能体的记忆机制,涵盖短期、长期和工作记忆的三维框架。

4. Self-Evolving Agents

自我进化智能体的调查,探讨智能体如何通过自我反思和学习不断改进。

5. Multi-Agent Systems

多智能体系统的设计与优化,包括强化学习、博弈论和协调机制。

6. Agentic RL

智能体强化学习综合指南,涵盖规划、工具使用、记忆和推理能力。

7. Knowledge Graph

知识图谱在智能体中的应用,支持结构化知识表示和推理。

8. RAG

检索增强生成完全指南,解决 LLM 知识过时和幻觉问题。

9. Tree of Thoughts

思维树推理框架,支持探索多个推理路径和动态评估。

10. Tools

Function Calling、MCP 和 Skills 详解,深入理解 AI Agent 工具调用的三层架构。

一、定义

1.1 AI Agent 框架基础理论

AI 智能体是使用 AI 来实现目标并代表用户完成任务的软件系统。其表现出了推理、规划和记忆能力,并且具有一定的自主性,能够自主学习、适应和做出决定。- Google Cloud

Agent = Reasoning + Acting

二、技术

1. ReAct

论文: 《ReAct: Synergizing Reasoning and Acting in Language Models

机构: 普林斯顿大学和Google Research

WHY

论文指出现有大语言模型(LLMs)的两个核心能力通常被分开研究:

  • 推理能力(Reasoning):如思维链提示,模型通过内部推理解决问题
  • 行动能力(Acting):模型根据观察直接输出动作,常见于 RL 或 WebGPT 等通过 API 交互的场景

核心问题

  • CoT产生幻觉和错误传播。是"静态黑盒",依赖内部知识,容易产生事实幻觉(hallucination)和错误传播
  • Act-only 缺乏高层的语义规划。如果任务很复杂,模型很容易迷失在局部的状态中,不知道下一步该干什么
WHAT

ReAct 是一种的Prompting范式,让LLM以交错方式生成语言推理轨迹动作。使模型能够进行动态推理以创建、维护和调整高级行动计划(为行动而推理),同时与外部环境(如维基百科)交互以将额外信息纳入推理过程(为推理而行动)。与传统AI技术相比,ReAct具备三个核心特征:

  1. 显式推理轨迹:模型在执行行动前会生成可追溯的"推理过程"(Thought),清晰说明行动的决策依据,解决了传统模型"黑箱决策"的可解释性问题
  2. 外部环境锚定:通过调用搜索、计算、数据库查询等外部工具(Act)获取客观反馈(Observe),将推理过程锚定到真实数据,从根源上抑制"事实幻觉"
  3. 少量样本泛化:依托LLM的上下文学习能力,仅需1-5个包含"推理-行动-观察"的完整示例,即可快速适配多场景任务,无需大规模微调
HOW

ReAct 主要通过 In-context Learning (Few-shot Prompting) 来实现,利用冻结参数的 LLM(论文中使用了 PaLM-540B,对比实验用了 GPT-3)。

Prompt 的构建非常直观:包含若干个人类编写的 (Thought, Action, Observation) 轨迹示例。

  • 对于推理密集型任务(如 QA): 采用交替结构 Thought -> Action -> Observation -> Thought ...
  • 对于决策密集型任务(如玩游戏): Thought 不需要每一步都出现,可以让模型自主决定何时进行 Thought,实现稀疏推理
实现示例
// TAO循环调度:核心流程控制 class ContextManager: def __init__(self, max_length: int = 4000): self.max_length = max_length self.tao_trajectory = [] def add_tao(self, thought: str, action: str, observation: str): self.tao_trajectory.append({ "thought": thought, "action": action, "observation": observation }) self._prune_trajectory() def get_context_str(self) -> str: if not self.tao_trajectory: return "无历史执行轨迹" return "\n".join([ f"步骤{idx+1}:思维:{item['thought']} | 行动:{item['action']} | 观察:{item['observation']}" for idx, item in enumerate(self.tao_trajectory) ])

2. Plan-and-Solve

论文: Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models

机构: Singapore Management University; Southwest Jiaotong University; Singapore University of Technology and Design; East China Normal University

WHY

近年来,大语言模型在自然语言处理任务中表现出色。为了提升模型在多步推理任务中的表现,研究者提出了链式思维提示方法。Few-shot CoT 通过提供少量手动构造的逐步推理示例,引导模型生成推理步骤,从而提升推理准确率。然而,Few-shot CoT 需要人工构造示例,成本较高。为此,Kojima 等人提出了 Zero-shot-CoT,即在输入问题后加上"Let's think step by step",引导模型自动生成推理过程,无需示例。虽然 Zero-shot-CoT 取得了不错的效果,但仍存在以下三个主要问题:

  • 计算错误:模型在计算过程中出错
  • 步骤缺失:推理过程中遗漏了某些中间步骤
  • 语义理解错误:模型对问题理解不准确或推理过程不连贯
WHAT

PS提示方法是一种新的Zero-shot-CoT Prompt,它使大语言模型能够为给定问题明确制定计划,并在预测输入问题的最终答案之前生成中间推理过程。与以往在提示中包含逐步少样本示范示例的少样本CoT方法不同,零样本PS提示方法不需要示例,其提示仅包含问题本身和一个简单的触发句。

HOW

PS Prompting(基础版)

将 Zero-shot-CoT 的触发句"Let's think step by step"替换为:"Let's first understand the problem and devise a plan to solve the problem. Then, let's carry out the plan and solve the problem step by step." 这一提示引导模型先制定计划,再按计划执行,从而减少步骤缺失错误。

PS+ Prompting(增强版)

在 PS 的基础上,增加了更详细的指令,例如: "extract relevant variables and their corresponding numerals""calculate intermediate results (pay attention to calculation and commonsense)"。这些指令帮助模型更准确地提取信息、进行计算,从而减少计算错误和语义误解。

3. Reflection

论文: Reflexion: Language Agents with Verbal Reinforcement Learning

机构: 美国东北大学, 美国麻省理工学院 和 美国普林斯顿大学

Why
  1. 现有语言智能体的学习方式有限
    • 目前基于大语言模型的智能体(如 ReAct、Toolformer)主要依赖上下文学习(in-context learning),即通过提示中的少量示例来指导行为
    • 它们缺乏一种高效的从试错中学习的机制,无法像人类一样通过几次失败就快速调整策略
  2. 传统强化学习不适用于 LLM 智能体
    • 传统的强化学习方法(如策略梯度、Q学习)需要大量训练样本和模型微调
    • 对于大语言模型来说,微调成本极高,且不适用于"模型即服务"的黑箱场景
  3. 现有方法缺乏对错误的深层反思
    • 一些方法(如 Self-Refine)虽然能进行单步的自我优化,但缺乏跨 trial 的长期记忆和学习能力
    • 智能体无法记住过去的失败教训,并在未来的尝试中主动规避类似错误

✅ Reflexion 的动机:让语言智能体通过语言反馈(而非梯度)来学习,像人类一样反思错误、总结经验、指导未来行为

What

核心思想:用自然语言作为强化信号,替代传统 RL 中的梯度更新。

Reflexion 是一个让语言智能体通过语言反馈进行自我优化的框架。它不更新模型权重,而是通过以下四个核心组件协同工作:

组件 作用
Actor(执行者) 生成动作或文本,与环境交互(如 ReAct、CoT)
Evaluator(评估者) 评估 Actor 的表现,输出标量奖励或成功/失败信号
Self-Reflection(自我反思) 根据评估结果生成语言形式的反思文本(如"我错在哪里?下次该怎么改?")
Memory(记忆) 将反思文本存入长期记忆,供后续 trial 使用
How

实现:核心架构:三步循环

Reflexion 的运行流程是一个典型的循环:尝试 -> 评估 -> 反思 -> 再次尝试

def run_reflexion(question): memory = [] for trial in range(MAX_TRIALS): trajectory = actor.generate(question, memory) reward = evaluator.evaluate(trajectory) if reward == SUCCESS: return trajectory reflection = reflection_model.generate_reflection(trajectory, reward) memory.append(reflection)
← 返回 AI