AI Agent 技术


0. 定位声明

适用版本:不依赖特定软件版本;示例代码基于 Python 3.11+、LangChain 0.2+、OpenAI API (2024 版)
前置知识:
  - 了解大语言模型(LLM)基本原理(Transformer、Prompt/Response 范式)
  - 理解 REST API 基础调用
  - 具备 Python 基础编程能力
不适用范围:
  - 本文不覆盖模型训练与微调(LoRA、RLHF)
  - 不适用于无 LLM 的传统规则 Agent(专家系统)
  - 不涵盖多模态 Agent 的视觉感知子系统细节

1. 一句话本质

不含术语版:

普通 AI 只能回答你的问题;AI Agent 更像一个能自己"做事"的助手——你告诉它一个目标,它会自己想步骤、自己调工具、自己检查结果,直到把任务完成。

稍正式版:

AI Agent 是以大语言模型为"大脑",通过感知环境、规划行动、调用外部工具、反馈结果来迭代完成复杂任务的自主系统。它把 LLM 从"问答机器"升级为"任务执行者"。


2. 背景与根本矛盾

2.1 历史背景

时期 技术状态 核心痛点
2020 前 GPT-2 时代,LLM 只能生成文本 无法与外部系统交互,知识有截止日期
2022–2023 ChatGPT 爆发,Prompt Engineering 兴起 单轮问答无法完成多步复杂任务
2023–2024 Function Calling、ReAct 论文、AutoGPT 出现 探索让 LLM "主动行动"的可能性
2024–今 Agentic Framework 成熟(LangGraph、CrewAI、AutoGen) 多 Agent 协作、长任务可靠性成为核心挑战

诞生的根本驱动:LLM 拥有强大的推理能力,但被困在"输入→输出"的单次调用范式中。现实任务往往需要多步、动态决策和与外部世界交互——Agent 架构正是为了打破这一封闭性而生。

2.2 根本矛盾(核心 Trade-off)

自主性(Autonomy)  vs  可靠性(Reliability)
  • 自主性越高:Agent 可以自己决策、自己规划,减少人工干预,但错误会级联放大,难以 debug,行为不可预测
  • 可靠性越高:需要更多人工检查点(Human-in-the-loop),更保守的执行策略,但会牺牲自动化程度

其他关键 Trade-off:

决策 左侧选择 右侧选择
工具数量 工具越多,能力越强 工具越多,LLM 选错工具概率越高
记忆方式 全上下文(精确但昂贵) 摘要压缩(便宜但可能丢失关键信息)
单 Agent vs 多 Agent 简单可控 强大但协调复杂度指数增长
规划策略 预先规划(Plan-then-Execute) 边做边规划(ReAct:动态调整)

3. 核心概念与领域模型

3.1 关键术语表

术语 费曼式解释 正式定义
Agent 一个"有目标、会行动、能反省"的 AI 程序 以 LLM 为核心推理引擎,能感知状态、选择动作、执行工具并迭代完成任务的自主系统
Tool(工具) Agent 能调用的"手",比如能搜索网页、写代码、查数据库 Agent 可调用的外部函数或 API,用于获取信息或执行操作
Memory(记忆) Agent 的"笔记本",记住之前说过什么、做过什么 存储 Agent 历史交互信息的机制,分为短期(上下文窗口)和长期(向量数据库)
Planning(规划) Agent 把大目标拆成小步骤的能力 LLM 将复杂任务分解为可执行子任务序列的推理过程
ReAct "想一步、做一步、看结果、再想"的循环 Reasoning + Acting 的交替模式:Thought→Action→Observation 循环
Orchestrator 多 Agent 场景中的"项目经理" 负责分配任务给其他 Agent 并汇总结果的协调 Agent
Human-in-the-loop 让人在关键步骤插手确认 在 Agent 执行过程中设置人工审批节点以保证安全性

3.2 领域模型

┌──────────────────────────────────────────────────────────┐
│                       AI Agent                           │
│                                                          │
│  ┌────────────┐    ┌──────────────┐    ┌─────────────┐  │
│  │  Perceive  │───▶│   Planning   │───▶│    Act      │  │
│  │  (感知)    │    │  (规划推理)   │    │  (执行工具) │  │
│  └────────────┘    └──────────────┘    └─────────────┘  │
│         ▲                                      │         │
│         │           Observe (观察)             │         │
│         └──────────────────────────────────────┘         │
│                                                          │
│  ┌─────────────────────┐  ┌────────────────────────────┐ │
│  │   Memory(记忆)    │  │      Tools(工具库)        │ │
│  │  - Short-term:上下文│  │  - 搜索引擎  - 代码执行     │ │
│  │  - Long-term:向量DB │  │  - 数据库    - 文件系统     │ │
│  └─────────────────────┘  │  - 外部 API  - 浏览器       │ │
│                           └────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘

核心流程(ReAct 模式):

用户输入目标
    │
    ▼
[Thought] LLM 推理:当前状态是什么?下一步应该做什么?
    │
    ▼
[Action] 选择工具 + 生成参数
    │
    ▼
[Observation] 执行工具,获取结果
    │
    ▼
判断:任务完成? ──是──▶ 返回最终答案
    │否
    └──────────────▶ 继续下一轮 Thought

4. 对比与选型决策

4.1 主流 Agent 框架横向对比

维度 LangChain/LangGraph AutoGen (Microsoft) CrewAI OpenAI Assistants
定位 通用 Agent 编排框架 多 Agent 对话框架 角色扮演多 Agent 平台托管 Agent
上手难度 中(概念多) 中高(需理解对话协议) 低(角色定义直观) 低(托管,API 简单)
灵活性 高(图结构可定制) 低(受平台限制)
生产成熟度 高(社区最大) 中高 高(但绑定 OpenAI)
多 Agent 支持 ✅ LangGraph ✅ 原生支持 ✅ 核心特性 ⚠️ 有限
长任务可靠性 中(需自行处理错误重试)
向量记忆集成 ✅ 原生 需手动配置 需手动配置 ✅ 内置
开源 ❌ 商业托管

4.2 选型决策树

你的需求是什么?
│
├── 只需要简单的工具调用(搜索+回答)
│   └──▶ OpenAI Assistants API 或 LangChain Agent(最快上手)
│
├── 需要多个 AI 角色协作(如:研究员+写手+审核员)
│   ├── 任务流程固定 ──▶ CrewAI(角色定义直观)
│   └── 任务流程动态 ──▶ AutoGen 或 LangGraph
│
├── 需要高度定制的状态机/工作流
│   └──▶ LangGraph(图结构,精确控制节点跳转)
│
├── 不想管基础设施,快速 POC
│   └──▶ OpenAI Assistants API(但要接受厂商锁定)
│
└── 企业级生产,需要最大灵活性和可观测性
    └──▶ LangGraph + LangSmith(可观测)

什么时候不用 Agent 架构:

  • 任务是固定的单步问答 → 直接用 LLM API,Agent 架构增加无谓复杂度
  • 对响应延迟要求 < 1s → Agent 多步推理通常需要 3-30s
  • 成本敏感场景 → Agent 每次任务可能消耗 5-50 次 LLM 调用

4.3 技术栈位置

用户界面层
    ↕
Agent Orchestration Layer(LangGraph / CrewAI)  ◀── 本文主题
    ↕                    ↕
LLM Provider         Tool Ecosystem
(OpenAI/Claude      (搜索/代码执行/
/本地模型)           数据库/外部API)
    ↕
Memory Layer(向量数据库:Pinecone/Chroma/pgvector)

5. 工作原理与实现机制

5.1 静态结构:核心组件

AI Agent 系统
├── LLM Core(推理核心)
│   ├── System Prompt(角色定义 + 工具说明)
│   └── Context Window(工作记忆,有限容量:4K-128K tokens)
│
├── Tool Registry(工具注册表)
│   ├── Tool 定义(名称、描述、参数 Schema)
│   └── Tool 执行器(实际调用逻辑)
│
├── Memory System(记忆系统)
│   ├── Short-term:对话历史(存于上下文窗口)
│   ├── Long-term:向量数据库(语义检索历史信息)
│   └── Episodic:任务执行记录(用于反思)
│
├── Planning Module(规划模块)
│   ├── Task Decomposition(任务分解)
│   └── Step Sequencing(步骤排序)
│
└── Execution Loop(执行循环)
    ├── Action Parser(解析 LLM 输出的工具调用)
    ├── Tool Executor(执行工具并捕获异常)
    └── Observation Formatter(格式化结果回传 LLM)

为什么用 JSON Schema 定义工具?
LLM 需要"看懂"工具的作用和参数格式,JSON Schema 提供了结构化、机器可读的描述,让 LLM 能生成正确的函数调用参数。相比自然语言描述,Schema 约束显著降低 LLM 参数格式错误率。

5.2 动态行为:关键流程

ReAct 单步执行时序:

时间轴 →

User          Agent Core         LLM              Tool
 │                │               │                │
 │──[Task]───────▶│               │                │
 │                │──[Prompt]────▶│                │
 │                │               │──[推理]         │
 │                │               │  Thought:...    │
 │                │               │  Action: search │
 │                │               │  Input: "..."   │
 │                │◀──[Response]──│                │
 │                │──[Parse Tool Call]              │
 │                │────────────────────[call]──────▶│
 │                │◀───────────────────[result]─────│
 │                │──[Observation=result]──▶│       │
 │                │               │──[继续推理]      │
 │                │               │  判断是否完成    │
 │                │◀──[Final Answer]──│             │
 │◀──[Answer]─────│               │                │

多 Agent 协作流程(Orchestrator 模式):

用户目标
   │
   ▼
Orchestrator Agent
   ├──▶ Research Agent(负责信息收集)
   │       └── 使用:搜索工具、爬虫工具
   ├──▶ Analysis Agent(负责数据分析)
   │       └── 使用:代码执行工具、计算工具
   └──▶ Writer Agent(负责生成报告)
           └── 使用:文件工具
   │
   ▼
汇总结果 → 返回用户

5.3 关键设计决策

决策 1:为什么用 ReAct 而不是纯 Chain-of-Thought?

  • CoT(思维链):LLM 一次性生成完整推理链,无法在过程中获取外部信息
  • ReAct:每步推理后可以执行工具,将真实世界反馈注入后续推理
  • 代价:多次 LLM 调用,延迟增加;收益:任务准确率对于需要外部信息的任务提升 20-40%(⚠️ 存疑:数值来自 ReAct 原论文,实际场景差异较大)

决策 2:工具描述的重要性超过工具数量

  • 错误认知:工具越多 Agent 越强大
  • 实际:工具描述模糊时,LLM 选错工具概率随工具数量线性增长
  • 生产经验:单个 Agent 工具数量建议控制在 5-10 个以内,超过后需要工具路由层

决策 3:记忆的层级设计

  • 全量历史放上下文:精确但 token 消耗随对话线性增长,成本不可控
  • 只用摘要:便宜但关键细节丢失导致任务失败
  • 最优实践:近期 N 轮保留完整(Short-term)+ 重要事实存向量库(Long-term)+ 摘要压缩中间历史

6. 高可靠性保障

6.1 高可用机制

Agent 执行的主要失败模式及应对:

失败类型 发生原因 应对机制
LLM 幻觉 模型生成错误的工具参数或虚假结论 工具参数 Schema 强校验 + 结果验证 Agent
工具调用失败 外部 API 超时或错误 指数退避重试(最多 3 次,间隔 1s/2s/4s)
无限循环 Agent 陷入循环无法完成任务 设置最大步骤数(通常 15-30 步)硬截断
上下文溢出 长任务超出 context window 动态摘要压缩 + 滑动窗口
工具选择错误 LLM 选了错误工具 工具描述优化 + 错误结果触发重规划

6.2 容灾策略

# 生产级 Agent 重试配置示例(Python 3.11+,LangChain 0.2+)
from tenacity import retry, stop_after_attempt, wait_exponential

@retry(
    stop=stop_after_attempt(3),
    wait=wait_exponential(multiplier=1, min=1, max=10),
    reraise=True
)
async def execute_tool_with_retry(tool, input_data):
    """带指数退避重试的工具执行"""
    return await tool.arun(input_data)

降级策略:

  • 主 LLM 不可用时降级到备用模型(如 GPT-4o → GPT-4o-mini)
  • 工具调用失败时,允许 Agent 仅凭已有知识给出"最佳努力"答案,并标注不确定性

6.3 可观测性:关键监控指标

指标 说明 正常阈值 告警阈值
agent_steps_per_task 每任务平均步骤数 3-8 步 > 20 步(可能陷入循环)
task_success_rate 任务成功完成率 > 85% < 70%
tool_call_error_rate 工具调用失败率 < 5% > 15%
avg_latency_per_task 任务平均延迟 5-15s > 60s
llm_token_per_task 每任务消耗 token 依任务类型 超出预算 2x
context_window_usage 上下文使用率 < 70% > 90%(临近溢出)

**推荐观测工具:**LangSmith(LangChain 生态)、Langfuse(开源)、Arize Phoenix

6.4 SLA 保障手段

  • Human-in-the-loop 检查点:对于不可逆操作(删除数据、发邮件、调用付费 API)必须设置人工确认
  • Sandbox 执行:代码执行类工具在隔离容器中运行,防止系统破坏
  • 输出验证层:关键任务输出由另一个验证 Agent 或规则引擎进行二次检查

7. 使用实践与故障手册

7.1 典型生产级实现

基础 ReAct Agent(Python 3.11+,LangChain 0.2+,OpenAI API):

from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_react_agent
from langchain_community.tools import DuckDuckGoSearchRun
from langchain_core.prompts import PromptTemplate
from langchain_core.tools import tool

# 1. 定义工具
@tool
def search_web(query: str) -> str:
    """搜索互联网获取最新信息。输入搜索关键词。"""
    return DuckDuckGoSearchRun().run(query)

@tool
def calculate(expression: str) -> str:
    """计算数学表达式。输入合法的 Python 数学表达式,如 '2 + 3 * 4'"""
    try:
        result = eval(expression, {"__builtins__": {}})  # 生产中应用沙箱
        return str(result)
    except Exception as e:
        return f"计算错误: {e}"

# 2. 配置 LLM
llm = ChatOpenAI(
    model="gpt-4o",          # 推荐:推理能力强
    temperature=0,           # 关键:设为 0 保证确定性输出
    timeout=30,              # 超时保护
    max_retries=2,
)

# 3. 构建 Agent
tools = [search_web, calculate]
prompt = PromptTemplate.from_template("""
你是一个有用的助手。你可以使用以下工具:

{tools}

工具名称列表:{tool_names}

使用以下格式:

Thought: 我需要思考该怎么做
Action: 工具名称
Action Input: 工具输入
Observation: 工具返回结果
...(重复以上步骤)
Thought: 我现在知道最终答案了
Final Answer: 最终答案

开始!

问题:{input}
{agent_scratchpad}
""")

agent = create_react_agent(llm, tools, prompt)

# 4. 生产级执行器配置
executor = AgentExecutor(
    agent=agent,
    tools=tools,
    max_iterations=15,        # 防止无限循环
    max_execution_time=120,   # 秒,任务超时保护
    handle_parsing_errors=True,  # 容错:LLM 输出格式错误时继续
    verbose=True,             # 生产中可改为 False,接 LangSmith
)

# 5. 执行
result = executor.invoke({"input": "今天北京的天气怎么样?用摄氏度告诉我温度。"})
print(result["output"])

关键配置项说明:

参数 默认值 推荐生产值 风险说明
temperature 1.0 0 过高导致工具参数不确定,Agent 行为随机
max_iterations 15 10-20 过低任务无法完成;过高成本和延迟增加
max_execution_time None 60-300s 不设置可能导致任务挂起消耗大量资源
handle_parsing_errors False True 不处理则 LLM 格式错误直接抛异常

7.2 故障模式手册

【故障 1:Agent 无限循环】
- 现象:Agent 步骤数持续增加,任务无法结束,token 消耗异常
- 根本原因:工具始终返回不符合预期的结果,或任务目标表达模糊
- 预防措施:设置 max_iterations(建议 15-20);任务描述要具体明确
- 应急处理:增加强制终止逻辑;在 System Prompt 中加入"若 5 步内无法推进,请主动声明无法完成"

【故障 2:LLM 幻觉导致错误工具参数】
- 现象:工具调用返回参数校验错误,或工具接收到无意义输入
- 根本原因:LLM 未能正确理解工具的参数要求
- 预防措施:工具 docstring 用明确格式要求描述参数;使用 Pydantic 做参数 Schema 强校验
- 应急处理:开启 handle_parsing_errors=True;在 Observation 中包含报错信息让 Agent 自我修正

【故障 3:上下文窗口溢出】
- 现象:长任务报 context length exceeded 错误,任务中断
- 根本原因:对话历史 + 工具输出 + Prompt 总 token 超过模型限制
- 预防措施:工具输出截断(如搜索结果限制 500 字符);启用记忆摘要压缩
- 应急处理:清理中间 Observation 记录,只保留最终结论

【故障 4:工具调用成本失控】
- 现象:单次任务消耗 token 超预算 5x 以上
- 根本原因:Agent 反复调用高 token 消耗工具,或任务拆解粒度过细
- 预防措施:设置 token budget 硬限制;监控 llm_token_per_task 指标
- 应急处理:降级到小模型处理;限制每类工具单任务调用次数上限

【故障 5:多 Agent 死锁/循环依赖】
- 现象:Orchestrator 等待 Sub-agent,Sub-agent 等待 Orchestrator
- 根本原因:Agent 间任务依赖设计有环路;缺乏超时机制
- 预防措施:任务依赖 DAG 化,确保无环;所有 Agent 调用设置超时
- 应急处理:引入任务 ID 追踪,超时强制中断并上报失败

7.3 边界条件与局限性

  • 任务步骤 > 20 步时:成功率显著下降(每步误差累积),建议拆分为子任务
  • 工具返回非结构化大文本(> 2000 字符)时:LLM 关键信息提取能力下降,建议在工具层做摘要预处理
  • 并发任务共享状态时:需要外部状态管理(如 Redis),Agent 框架本身通常不提供分布式状态支持
  • 低质量工具描述是最常见的生产问题:工具描述不清导致的选择错误占 Agent 失败案例的约 40%(⚠️ 存疑:来自社区经验,无严谨统计数据)
  • Agent 不适合强一致性要求的场景:如银行转账,Agent 的非确定性不可接受

8. 性能调优指南

8.1 性能瓶颈定位

延迟分解:
总延迟 = LLM 推理时间 × 步骤数 + 工具执行时间 × 步骤数 + 网络 RTT × 调用次数

通常瓶颈层:
├── LLM 推理慢 → 换小模型/减少 prompt 长度
├── 工具执行慢 → 工具异步并行化
├── 步骤数多  → 优化 prompt 提升单步决策质量,或预规划减少探索步
└── 上下文过长 → 压缩历史,减少 token 数

8.2 调优步骤(按优先级)

P0:减少 LLM 调用次数(最高收益)

  • 目标:从平均 10 步 → 6 步完成相同任务
  • 方法:在 System Prompt 中给出任务分解示例(few-shot),引导 Agent 更高效规划
  • 验证:统计 agent_steps_per_task 均值变化

P1:工具并行执行

  • 目标:将串行工具调用改为并行,延迟从 15s → 8s
  • 方法:识别无依赖的工具调用,使用 asyncio.gather 并发执行
  • 验证:对比并行前后的 P90 延迟

P2:模型分级

  • 目标:降低成本 50% 同时保持 85%+ 成功率
  • 方法:简单步骤(格式化、摘要)用小模型(GPT-4o-mini),复杂推理步骤用大模型(GPT-4o)
  • 验证:按任务类型统计成功率和成本的 Pareto 曲线

P3:Prompt 长度优化

  • 目标:System Prompt < 500 tokens,工具描述精简至核心信息
  • 方法:删除冗余说明,用 Schema 替代自然语言描述工具参数
  • 验证:token 消耗对比(使用 tiktoken 计数)

8.3 调优参数速查

参数/策略 默认/常见值 推荐优化值 调整风险
LLM temperature 1.0 0(确定性任务) 设太低影响创造性任务
max_iterations 15 10-15 过低导致复杂任务截断
工具返回截断长度 无限制 500-1000 chars 过短丢失关键信息
并发工具调用 串行 asyncio 并行 需确认工具是否线程安全
上下文保留轮数 全量 最近 5-10 轮 过少丢失任务上下文

9. 演进方向与未来趋势

9.1 长任务可靠性(Long-Horizon Reliability)

当前 Agent 在超过 20 步的任务中成功率急剧下降。社区正在探索的方向:

  • Memory OS:将 Agent 记忆系统类比操作系统内存管理(Working Memory / Episodic Memory / Semantic Memory 分层)
  • 任务检查点(Checkpointing):LangGraph 已支持持久化 Agent 状态到数据库,允许中断后恢复
  • Tree-of-Thought + MCTS:在规划层引入树搜索,避免错误路径的代价

9.2 多 Agent 系统(Multi-Agent Systems)

为什么重要: 单 Agent 的上下文窗口和能力有限,复杂任务需要多专业 Agent 协作。

近期进展:

  • Google 的 Agent2Agent(A2A)协议(2025 年发布):定义 Agent 间通信标准,类似 Agent 的"HTTP"
  • Anthropic 的 Model Context Protocol(MCP):标准化工具调用接口,降低工具集成成本
  • 对使用者的影响:未来 Agent 将像微服务一样,可以跨框架、跨厂商互相调用,减少厂商锁定

9.3 Agent 安全(Agentic Security)

随着 Agent 权限增大(可以写文件、发邮件、调用生产 API),提示注入攻击(Prompt Injection) 成为核心安全威胁:恶意网页内容可能诱导 Agent 执行攻击者期望的操作。

趋势:Agent 沙箱化、权限最小化原则、工具调用审计日志,预计 2025-2026 年会出现专门的 Agent 安全标准。


10. 面试高频题

【基础理解层】

Q:什么是 AI Agent?它和普通 LLM 调用有什么区别?
A:普通 LLM 调用是单次"输入→输出";Agent 是以 LLM 为核心,能多轮迭代、
   调用外部工具、感知反馈结果,并持续执行直到完成复杂目标的自主系统。
   关键区别:Agent 有"行动-观察"循环,能与外部世界交互。
考察意图:考察对 Agent 本质的理解,区分"生成式 AI"和"自主 AI"

Q:什么是 ReAct 模式?为什么它比纯 Chain-of-Thought 更适合 Agent?
A:ReAct = Reasoning + Acting。CoT 在推理过程中无法获取外部信息;
   ReAct 每步推理后可执行工具(如搜索),将真实结果注入后续推理,
   解决了知识截止和需要实时数据的问题。
考察意图:考察对 Agent 核心执行范式的掌握

【原理深挖层】

Q:Agent 的 Memory 系统如何设计?短期记忆和长期记忆分别怎么实现?
A:短期记忆 = LLM 上下文窗口,存储近期对话历史,容量有限(4K-128K tokens);
   长期记忆 = 向量数据库(如 Pinecone、Chroma),将历史信息向量化存储,
   通过语义检索在需要时取回。生产中通常组合使用:近 N 轮完整保留 + 
   历史摘要压缩 + 关键事实存向量库。
考察意图:考察记忆层次设计,以及是否理解 token 成本和信息保真度的 Trade-off

Q:如何防止 Agent 陷入无限循环?有哪些工程手段?
A:① max_iterations 硬截断(最常用,建议 15-20);
   ② max_execution_time 时间截断;
   ③ 在 Prompt 中引导 Agent:"若 N 步内无进展,主动声明失败";
   ④ 工具调用去重检测(同一工具同一参数连续调用 3 次则强制停止);
   ⑤ 观测 agent_steps_per_task 指标,超阈值告警。
考察意图:考察对 Agent 核心工程问题的实际处理经验

【生产实战层】

Q:你在生产中遇到过哪些 Agent 可靠性问题?如何解决?
A(参考角度):
   ① 幻觉工具参数问题:用 Pydantic Schema 强校验 + few-shot 示例纠正
   ② 成本失控问题:设置 token budget + 小模型降级 + 工具输出截断
   ③ 长任务成功率低:引入检查点机制 + 任务拆分 + Human-in-the-loop
   ④ 多 Agent 死锁:DAG 任务依赖 + 超时强制中断
考察意图:考察真实工程经验,是否经历过生产挑战并有系统性解决思路

Q:如何评估一个 Agent 系统的质量?用什么指标?
A:关键指标:
   ① 任务成功率(Task Success Rate):最核心,通常需要人工标注或自动评估
   ② 步骤效率(Steps per Task):衡量规划质量
   ③ 工具调用准确率(Tool Call Accuracy):工具选择和参数正确性
   ④ 成本(Token per Task):经济可行性
   ⑤ P90 延迟:用户体验
   评估方法:构建 Benchmark 任务集(建议 50-100 条覆盖不同复杂度),
   用 LLM-as-Judge 或人工评估打分。
考察意图:考察是否具备 Agent 系统工程化思维,而非只会跑 demo

11. 文档元信息

验证声明

本文档内容经过以下验证:
✅ 与官方文档一致性核查:
   - LangChain 文档:https://python.langchain.com/docs/
   - OpenAI Function Calling:https://platform.openai.com/docs/guides/function-calling
   - ReAct 原论文:https://arxiv.org/abs/2210.03629

⚠️ 以下内容未经本地环境完整验证,仅基于文档和社区经验推断:
   - 第 6.3 节"工具描述错误占 40% 失败案例"(来自社区分享,无严谨统计)
   - 第 5.3 节 ReAct vs CoT 准确率提升"20-40%"(来自原论文特定任务,实际场景差异大)
   - 第 8 节具体延迟数值(依赖模型、网络、工具不同而差异显著)

知识边界声明

本文档适用范围:
  - 基于 LLM 的 AI Agent 架构(GPT-4/Claude 等大模型驱动)
  - 使用 LangChain 0.2+、LangGraph、AutoGen 等主流框架
  - Python 3.11+,部署于云端或本地服务器

不适用场景:
  - 传统强化学习 Agent(无 LLM,基于奖励函数训练)
  - 嵌入式/边缘端轻量 Agent(资源受限环境)
  - 实时性要求 < 1s 的场景
  - Confluent、Azure AI 等商业托管平台的特有功能细节

参考资料

【官方文档】
- LangChain Agent 文档:https://python.langchain.com/docs/modules/agents/
- OpenAI Assistants API:https://platform.openai.com/docs/assistants/overview
- Anthropic MCP 协议:https://modelcontextprotocol.io/

【核心论文】
- ReAct:Synergizing Reasoning and Acting in Language Models (Yao et al., 2022)
  https://arxiv.org/abs/2210.03629
- Toolformer: Language Models Can Teach Themselves to Use Tools (Schick et al., 2023)
  https://arxiv.org/abs/2302.04761
- HuggingGPT / TaskMatrix:工具调用与多模型协作经典论文

【延伸阅读】
- LangGraph 官方教程(最佳状态机 Agent 实现):https://langchain-ai.github.io/langgraph/
- Lilian Weng 的 Agent 综述博客(强烈推荐):
  https://lilianweng.github.io/posts/2023-06-23-agent/
- AutoGen 论文:https://arxiv.org/abs/2308.08155
- LangSmith 可观测性文档:https://docs.smith.langchain.com/

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐