3364 字
约 11 分钟
10
AI Agent 入门全指南:从 LLM 到会干活的助手,原理、工具、记忆与工程一次讲透

开场:Agent 不是更聪明的 LLM

很多人以为 Agent 就是"更聪明的大模型"。错。

LLM 是会说话的模型,Agent 是会干活的助手。同一句话,LLM 回答完就结束;Agent 会拆任务、调工具、看结果、错了再来,直到把事办成。

本文把 Agent 从"是什么"讲到"怎么造",一条主线贯穿:模型负责聪明,工程负责稳定。全文覆盖六大模块——工具调用机制、上下文与记忆、ReAct 循环、Skill、生产脚手架、多 Agent 协作与可观测性。

一、Agent 到底比 LLM 多了什么?

一条 LLM 的工作链路是:输入 → 输出。一条 Agent 的工作链路是:

任务 → 规划 → 调工具 → 观察 → 纠错 → 完成

相比裸 LLM,Agent 多了四样东西:

能力 英文 干什么用
规划 plan 把大任务拆成可执行的小步骤
工具 tool use 调用外部 API / 代码 / 数据库,真正"动手"
记忆 memory 记住本对话、记住历史偏好
反思 act / reflect 观察执行结果,发现不对就自我纠错

这四样,就是 LLM 与 Agent 之间那道"从说到做"的鸿沟。

二、模型调动工具的秘密

先破除一个误解:模型不会真的执行代码。

模型做的只有一件事——输出一段结构化文字(tool_calls)。真正解析并执行这段文字的,是你的框架代码。所谓"Agent 调了天气 API",实际流程是这样的:

  1. messages[0] · system(220 Token):role: "system",content: "你是一个智能助手,可以使用以下工具帮助用户…",tools: [get_weather, send_email, web_search]
  2. messages[1] · user(30 Token):"北京明天天气怎么样?"
  3. ← 第 1 次模型调用完成(耗时 1.8s)
  4. messages[2] · assistant(60 Token):content: null,tool_calls: [{name: "get_weather", id: "call_abc123", arguments: {city: "北京", date: "2026-04-23"}}]
  5. ⚙️ 你的代码登场:解析 tool_calls → 校验参数(city 合法 ✓、date 格式正确 ✓)→ 调用天气 API(耗时 0.8s)
  6. messages[3] · tool(50 Token):role: "tool",tool_call_id: "call_abc123",content: {weather: "小雨转多云", temp: "12°C ~ 20°C", wind: "北风 3 级"} —— 注意:这条消息由你的代码注入,不是模型生成的
  7. → 你的代码发第 2 次请求(携带完整 4 条消息 + 工具结果)
  8. ← 模型返回最终回答(耗时 1.5s)
  9. messages[4] · assistant(120 Token):"明天北京小雨转多云,气温 12-20°C,北风 3 级,出门建议带把伞。"

整个过程:2 次模型调用 + 1 次天气 API。工具调用不是魔法,是"模型出试卷、框架改卷子"的协议循环——assistant.tool_calls 是模型的"意图",tool 消息是框架的"回执",二者一闭环,Agent 就"动"起来了。

三、工具描述的学问

工具描述 = 给模型的使用说明书。说明书写得越清楚,模型用得越准确。

同样是天气工具,差评描述是"查询天气",好评描述是"输入城市名(中文,如'北京')和日期(YYYY-MM-DD),返回当天天气、温度与风力"。

这不只是工程问题——产品经理应该像写 PRD 一样写工具描述。参数边界、返回格式、失败行为写清楚,模型才不会把参数传错、把结果读歪。

四、多工具编排:串行、并发、智能分批

同一轮模型可能返回多个工具调用,框架必须决定执行顺序:

策略 特点 适用
全部串行 最安全,一个失败就停 有依赖关系的步骤
全部并发 最快,但互相干扰就出事 相互独立的查询
智能分批 按安全性分组,低危并发、高危串行 混合场景(Alice 的做法)

这个决定直接影响用户等待时间——选错了,体验就从"秒回"变成"转圈"。

五、MCP:AI 工具的 USB 标准

没有 MCP 之前,每个 Agent 都要为每个工具写专属对接代码——就像每台设备都要专属数据线。

MCP(Model Context Protocol)就是 AI 工具的 USB 标准:工具开发者只写一次适配,就能接入所有 Agent。一端是工具服务器暴露能力,一端是 Agent 客户端统一消费,协议替你解决了握手、鉴权与数据格式。

六、上下文窗口:模型的唯一工作记忆

上下文窗口是模型唯一的工作记忆。128K Token 看似很大,但有个残酷事实:每轮对话都要重发全部历史消息。10 轮深度对话 + 一份长文档,就可能把窗口撑满。管理上下文,就是管理产品的记忆寿命。

四层压缩策略(超限前逐级触发)

层 名称 触发水位 压缩动作 信息损失
L1 裁剪 Snip 120K(60%) 删掉早期工具返回的超长原始数据,只留摘要(如 1200 Token 的 7 天逐小时预报 → 80 Token 摘要) 用户完全无感
L2 微压缩 MicroCompact 150K(75%) 把早期长对话生成简短摘要替换(如 3 轮改稿对话 → "用户要求 Word 格式、改标题、调配色") 轻微,关键信息保留
L3 折叠 Collapse 170K(85%) 多轮早期对话折叠成一条摘要消息(第 1-8 轮 12 条 4200 Token → 350 Token 会话摘要) 细节丢失,主线保留
L4 紧急压缩 AutoCompact 190K(95%) 只保留 system + 全局摘要 + 最近 3 轮(18000 Token → 2500 Token) 明显损失,避免崩溃

四层全用尽还继续涨,超过模型上限(如 256K)时,API 直接返回 context_length_exceeded 错误。这就是为什么还需要"上下文急救"作为最终兜底——在崩溃前主动切换策略,而不是让请求失败。

七、记忆体系:短期 + 长期

  • 短期记忆 = 上下文窗口:让 Agent 记住当前对话,随压缩策略滚动淘汰。
  • 长期记忆 = 向量检索:让 Agent 记住上个月的事,用 Embedding 把历史沉淀进向量库,需要时按语义召回。

两者配合,Agent 才像真正的助手:既了解你现在在做什么,也记得你过去的偏好。

落地长期记忆,常选 Milvus。把它翻译成数据库心智模型,上手极快:

Milvus 可类比为 职责
Collection 表 一组具有同一 Schema 的 Entity
Schema / Field 表结构 / 列 约束主键、向量维数与标量类型
Entity 行 一条业务对象;主键必须能稳定定位
Index 索引 加速向量近邻搜索

一条知识库 Entity 长这样:

{
  "id": 42,               # 主键:用于更新、删除、追踪
  "vector": [0.12, ...],  # 向量字段:用于 Search
  "text": "退款通常 3 天到账",
  "category": "refund",   # 标量字段:用于 Filter / Query
  "active": true
}

八、RAG 检索质量工具箱

方法 解决什么 注意
标量 Filter 租户、权限、时间、语言约束 权限必须在检索阶段执行,不能只靠 Prompt
向量 + 关键词混合检索 兼顾语义、产品型号、错误码等精确词 两种分数尺度不同,不宜直接相加
RRF 融合 按排名融合多路结果 简单稳健;再用 reranker 精排候选
Partition / TTL 隔离热点或清理过期数据 扩展能力;先用清晰的 collection 与 filter 设计

九、ReAct:Agent 的灵魂循环

Agent 的工作方式是一个 「思考 → 行动 → 观察 → 再思考」的循环。一个复杂任务可能循环十几轮。

这正是 Agent 和普通聊天机器人的本质区别:它会根据执行结果调整策略。方案 A 不work,它看观察结果换方案 B,而不是一条路走到黑。

十、Agent 会卡死:5 种典型模式

Agent 不是万能的,它有 5 种典型的卡死模式。好的产品设计正视这些问题,为每种故障预设应对方案:

卡死模式 现象 应对
参数错误 工具参数格式不对、字段缺失 参数校验 + 自动修正重试
工具失效 API 挂了、权限不足 工具验证 + 降级提示
死循环 同一个动作反复执行 循环检测 + 最大步数限制
目标模糊 用户意图不清,瞎猜乱做 主动提问机制,先问清再动手
任务超时 拖太久,占资源 超时兜底,中断并给部分结果

十一、Agent 权限设计:安全与效率的平衡

Agent 权限有三种模式:

模式 行为 取舍
确认模式 每个动作都要用户点头 最安全但最慢
自动模式 全部放行 最快但最危险
智能模式 AI 判断风险等级,低危自动、高危拦截确认 平衡(Alice 的做法)

本质是在安全和效率之间找平衡:全部确认最稳但最慢,全部放行最快但最险。生产系统几乎都在往智能模式走——把风险分级交给模型判断,把"签字权"留给用户。

十二、Skill:把「摸索」变成「执行」

同一个发版任务,没有 Skill 时 Agent 试错 12 轮花 1.5 万 Token 还出 3 个错;有 Skill 时 5 轮搞定、只花 4000 Token、零错误。

Skill 是 Agent 的经验传承机制:一个 Skill 就是一份给 Agent 的 SOP——什么时候触发、按什么步骤执行、能用哪些工具、有什么安全约束。写 Skill 的本质,是把人类专家的经验编码成 Agent 能执行的流程。

十三、生产级脚手架:Agent 工程 = 80% 脚手架 + 20% 模型

大多数 Agent 项目失败,败在错误处理不够健壮,模型够不够聪明反倒是次要的。核心能力来自 LLM,但稳定性来自工程护栏。

5 大能力缺一不可

# 能力 说明
1 超时与重试 工具调用设 timeout + 指数退避重试
2 最大步数限制 max_iterations 防止死循环
3 输入输出校验 JSON Schema 拦截非法参数
4 状态机 + 回滚 检查点恢复,失败不从头来
5 观测与日志 全链路记录,生产问题靠日志

这 5 道防线决定了你的 Agent 是「能用」还是「好用」:迭代上限防死循环、输出截断防撑爆、超时控制防卡死、中断恢复防损坏、上下文急救防崩溃。

十四、多 Agent 协作:Agent 世界的团队

复杂任务不靠一个 Agent 硬撑,而是拆成多个专职子 Agent:

  • 调研员负责读代码、开发者负责改代码、测试员负责验证。
  • 只读任务并行加速(同时读互不干扰),写入任务串行保安全(同一份文件不能两个人同时改)。

这就是 Agent 世界的团队协作——把"一个人干所有事"变成"一个团队各司其职"。

十五、可观测性:让 Agent 不是黑箱

Agent 不是黑箱:通过事件流,你可以实时看到它在想什么、做什么、花了多少钱。

每次工具调用(输入/输出)、每次模型返回都记录完整日志,包含时间戳、Token 消耗、延迟。生产环境 90% 的问题靠日志排查——没有日志的 Agent 是黑盒,问题无从定位。推荐集成 LangSmith 或 Arize AI。

可观测性是产品运营的基础设施:没有它,你无法优化成本、排查故障、改善体验。

结语:Agent 入门路线图

把全文串成一张图:

LLM 是大脑,工具调用是手脚,上下文与记忆是工作台,ReAct 是工作方式,Skill 是经验,脚手架是安全带,多 Agent 是团队,可观测性是仪表盘。

入门 Agent,就按这条线走:先搞懂 tool_calls 协议循环(模型出题、框架执行),再学会管好上下文窗口(四层压缩 + 急救),接着把长期记忆接进向量库(Milvus + RAG 工具箱),然后用 ReAct 循环把任务串起来,最后套上生产脚手架、用 Skill 沉淀经验、靠事件流让它可见。

记住那句话:Agent 的核心能力来自 LLM,但稳定性来自工程护栏。 别只追模型,把脚手架打好,你的 Agent 才真正"能用"。

AI Agent 入门全指南:从 LLM 到会干活的助手,原理、工具、记忆与工程一次讲透
https://clxhxhhr.top/posts/4615/
作者
clxstart
发布于
2026-10-11
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。