Skip to content

Agent 核心架构

Agent 和普通 LLM 应用的本质区别:Agent 有循环,有工具,有状态。

这个模块是整条主线最重要的部分。框架可以换,但这里的概念是所有 Agent 系统的底层逻辑。

子课展开学习:


课次

课次 01 · Tool Use / Function Calling

核心问题: 模型怎么"调用"代码?

LLM 本身不能执行代码,只能生成文本。Tool Use 是一种约定:模型生成结构化的"我想调用什么工具、传什么参数",你的代码负责真正执行,再把结果塞回给模型。

你会学到:

  • 工具定义格式(JSON Schema):name、description、parameters
  • 工具调用的完整流程:请求 → 模型响应 → 执行 → 结果返回
  • 参数校验:为什么模型给的参数不一定符合格式
  • 错误处理:工具调用失败时怎么让模型重试或降级

实验: 用 Claude API 定义一个查天气的工具,跑通完整调用循环。


课次 02 · ReAct 循环

核心问题: 多步任务怎么让模型自主推进?

ReAct = Reasoning + Acting。模型在每一步先推理(该做什么),再行动(调用工具),看到结果后继续推理,直到任务完成。

你会学到:

  • ReAct 的执行循环:Thought → Action → Observation → Thought...
  • Scratchpad:让模型把推理过程写出来,提升准确率
  • 停止条件:什么时候该停,避免无限循环
  • 最大步数限制:生产环境必须加的安全阀

vs Plan-then-Execute: ReAct 是边想边做,Plan-then-Execute 是先规划再执行——各自的适用场景。


课次 03 · Memory 架构

核心问题: Agent 怎么"记住"东西?

LLM 本身无状态,每次调用独立。Agent 要有记忆,必须由开发者显式管理。

记忆类型存在哪适用场景
In-context Memory当前对话的 messages 数组短期、当次对话的上下文
External Memory数据库 / 向量存储跨会话的长期知识、历史记录
Episodic Memory对话摘要 + 检索超长任务的工作记忆管理
Procedural Memory系统 prompt / 工具定义Agent 的角色、能力、行为约束

你会学到:

  • 对话历史管理:滚动窗口、摘要压缩、重要信息提取
  • 何时用 RAG 替代 in-context:检索比全量加载更经济
  • 记忆写入时机:什么值得存,什么应该丢弃

课次 04 · Planning 模式

核心问题: 复杂任务怎么拆解?

不是所有任务都适合 ReAct 的动态规划。任务足够复杂时,需要先有全局计划,再逐步执行。

你会学到:

  • Plan-then-Execute:先生成总体计划,再按步骤执行,适合确定性强的任务
  • 动态重规划:执行中遇到意外时如何调整计划
  • Sub-agent 分解:主 Agent 规划,子 Agent 执行——复杂任务的横向扩展
  • DAG 任务图:有依赖关系的并行任务怎么建模

课次 05 · Agent 失败模式

核心问题: Agent 在哪里会出错,怎么防?

Agent 的失败不像普通程序那样会报错——它可能默默做错事,或者卡在循环里。

失败模式表现防御手段
幻觉工具调用调用了不存在的工具工具列表枚举、调用前校验
参数幻觉参数字段名/格式不对JSON Schema 严格校验
无限循环每步都重复相同动作最大步数 + 循环检测
状态污染上轮错误结果影响下轮明确的错误状态处理
过度自信不确定时不请求帮助系统 prompt 明确「不确定时停下」

Human-in-the-loop: 什么情况下 Agent 应该暂停等待人工确认。


你做完这个模块能交付什么

一个可以自主执行多步任务的 Agent:

  • 有至少 3 个工具(文件读写、搜索、代码执行)
  • 有 ReAct 循环,能处理工具调用失败
  • 有基本的记忆管理(历史压缩 + 关键信息持久化)
  • 有安全阀(最大步数、循环检测、人工介入点)

大齐 AI 课堂 · 程序员的 Agent 开发课