3269 字
约 10 分钟
16
学习路线与面试总纲
无标签

系列:ToyAgent 智能体知识库 27/26(总纲)

学习路线与面试总纲:从一句话对话到生产级智能体

一句话核心:智能体 = 大模型(大脑)+ 工具(手脚)+ 记忆(延续)+ 循环(节拍)+ 工程化(兜底);26 个实现场景就是这个公式逐项展开的过程,学习路线按"基础 → 能力扩展 → 运行时 → 安全治理 → 形态"五级台阶拾级而上。

总纲定位

整个系列的灵魂只有一个方法签名:

public interface Agent {
    // 智能体最小契约:输入一句话,输出一句话
    String chat(String input);
}

所有 26 个场景的复杂度都藏在这一个方法里,也只藏在这里。读任何一步的姿势都一样:先看接口注释里的"一句话定位",再看 chat() 方法。理解了这个"一个接口长出整个体系"的过程,就理解了智能体不是玄学,而是一个会调用大模型、且被工程化纪律约束的普通程序。

学习路线:五级台阶

第一阶:基础(把"能对话"变成"会做事")

步 场景 新增能力
01 对话 最小 MVP:接通大模型,chat() 立起来
02 提示词 系统提示词三层结构(角色/规则/环境)
03 ReAct 思考-行动-观察循环,模型开始"分步解题"
04 工具调用 Function Calling:模型决定调什么、传什么参
05 记忆 多轮记忆 + 上下文压缩
06 意图路由 意图识别 + 决策中枢,一条请求选对处理路径

这一阶的目标是建立肌肉记忆:循环 + 工具 + 记忆三件套是一切智能体的底座。读源码的推荐顺序也在这里:Agent 接口 → 01 → 03(ReAct)→ 04(工具)。

第二阶:能力扩展(从单工具到生态)

步 场景 新增能力
07 RAG 检索增强生成:答"训练数据里没有"的问题
08 LLM-Wiki 知识编译与持久化
09 MCP 工具标准化协议,接外部生态不再各写一套
10 技能 技能编排 L0/L1/L2,把"会做的事"打包成可复用单元
11 工具注册表 ToolDefinition 协议 + 注册/注销,工具管理有了"户口本"
12 多智能体 规划-执行-审查的角色化协作
13 子代理 spawn / fork 动态派遣,独立上下文隔离
14 A2A 协作 Agent Card 名片发现 + task_id 信封 + 异步回执

这一阶的关键词是标准化与解耦:MCP 统一工具接入、注册表统一工具管理、技能统一能力封装、子代理/A2A 统一协作协议。每一步都在回答"能力从哪来、怎么被组织"。

第三阶:运行时(从能跑到跑得稳)

步 场景 新增能力
15 运行时 守卫 + 保险丝 + 异常兜底
16 工作流 状态机编排(节点 + 条件边)
17 ReAct 运行时 turn/step 循环 + 上下文裁剪 + TurnEndReason
18 全流程 守卫 + 记忆 + ReAct + 工具一条链路串起来
19 人工介入 提问挂起 → 答复续跑,人进入循环
26 定时工具 一次性/循环调度,触发结果事件落盘,Agent 有了时间维度

这一阶回答生产环境最残酷的问题:模型会犯错、会失控、会断流,怎么办。守卫拦截、保险丝限步、TurnEndReason 显式表达"这轮为什么结束"、人工介入把不确定决策交还给人——运行时的本质是"为模型的不可靠设计可靠的边界"。

第四阶:安全与治理(从跑得稳到敢上生产)

步 场景 新增能力
20 审批门禁 风险分级 + 审批挂起 + 会话免审
21 沙箱 纵深防御四层拦截危险命令
22 事件溯源 JSONL 事件流 + 回放投影,状态可恢复、行为可审计
23 插件机制 契约 + 隔离 ClassLoader,能力即插即拔
24 Hooks 钩子 before 拦截 / after 脱敏,横切逻辑与工具解耦

这一阶的共同思想只有一句话:不信任模型的输出,把安全从模型的自觉变成宿主的制度。策略档位/黑名单/边界/规范化是制度,审批门禁是制度的"人工例外通道",钩子是横切制度的挂载点,事件溯源是制度的存证。五步合起来构成一个最小但完整的 Agent 治理框架。

第五阶:形态(骨架换壳走向不同终端)

步 场景 新增能力
25 CLI 智能体 终端 REPL + 沙箱执行器,形态即壳

形态是检验骨架的最终考场:REPL 只是 chat 的 while 循环,单命令 -p 模式只是调用一次就退出,GUI Agent 则是把执行器换成浏览器操作——换形态不动骨架。走到这里回头看:第一阶打的地基决定了第五阶能不能"白嫖"。

一条主线串起来

基础      01对话 → 02提示词 → 03ReAct → 04工具 → 05记忆 → 06路由
              │(会做事)
能力扩展  07RAG · 08Wiki · 09MCP · 10技能 · 11注册表 · 12多智能体 · 13子代理 · 14A2A
              │(能力有生态)
运行时    15运行时 → 16工作流 → 17ReAct运行时 → 18全流程 → 19人工介入 → 26定时
              │(跑得稳)
安全治理  20审批 → 21沙箱 → 22事件溯源 → 23插件 → 24钩子
              │(敢上生产)
形态      25CLI(→ GUI / IDE / 机器人:同构换壳)

工程化穿插全程,五步一回头:每完成一阶,用"守卫/兜底/审计"把已实现的场景重新过一遍,比一路冲到最后再补账便宜得多。

graph LR
    S1["第一阶 基础<br/>对话 提示词 ReAct 工具 记忆 路由"] -->|会做事| S2["第二阶 能力扩展<br/>RAG Wiki MCP 技能 注册表 多智能体 子代理 A2A"]
    S2 -->|能力有生态| S3["第三阶 运行时<br/>守卫保险丝 状态机 HITL 定时"]
    S3 -->|跑得稳| S4["第四阶 安全治理<br/>审批 沙箱 事件溯源 插件 钩子"]
    S4 -->|敢上生产| S5["第五阶 形态<br/>CLI GUI IDE 同构换壳"]

五级台阶学习路线:从"会做事"到"能力有生态"到"跑得稳"到"敢上生产",最后换形态检验骨架——每阶都是上一阶的地基。

高频面试题清单(18 条)

基础与循环

  1. ReAct 循环为什么有效,和直接让模型一次输出答案有什么区别?——把大问题拆成"思考-行动-观察"的小步迭代,每步都有真实反馈纠偏,避免模型一次幻觉到底。
  2. Function Calling 的完整链路是怎样的?——宿主把工具清单随请求下发 → 模型返回"我要调 X 工具+参数"而非自然语言 → 宿主执行工具 → 结果作为 observation 回填 → 模型继续,直至给出最终回答。
  3. 上下文窗口不够了怎么办?——记忆分层:近期消息全量保留 + 滑动窗口裁剪 + 更早内容摘要压缩,压缩本身也是一次模型调用。
  4. 系统提示词为什么要分层设计?——角色/规则/环境三层各司其职,规则可热更新、环境(如 cwd、时间)运行时注入,改一层不牵动全局。

能力扩展

  1. RAG 解决什么模型自身解决不了的问题?——知识时效性与私有性:检索把"外部事实"注入上下文,让模型做"开卷考试"而非依赖参数记忆。
  2. MCP 的价值是什么,和直接定义一堆函数有什么区别?——工具接入协议标准化,工具提供方与 Agent 宿主解耦,一次实现处处可接,避免每家宿主一套私有适配。
  3. 工具注册表要管理哪些东西?——ToolDefinition(名称/描述/参数 schema)的注册、发现、注销,以及"模型每轮看到什么工具清单"的可见性控制。
  4. 多智能体和子代理的分工差异?——多智能体是常设角色协作(规划-执行-审查各有职责),子代理是按需动态派遣、用独立上下文隔离主线的污染与风险;fork 可复制事件前缀实现分支探索。
  5. A2A 协作里"名片"起什么作用?——Agent Card 声明自己的能力/地址/鉴权方式,让别的 Agent 能发现并调用它;task_id 信封 + 异步回执解决长任务的跨 Agent 通信。

运行时与可靠性

  1. Agent 运行时需要哪些保险丝?——最大步数限制、单工具超时、上下文长度熔断、异常兜底回复;核心思想是"任何一环失控都不能拖死整个循环"。
  2. TurnEndReason 为什么值得单独设计?——把"这轮为什么结束"(完成/达步数上限/等人工输入/被拦截)变成显式枚举而非隐式约定,上层编排与前端才能正确处理每种结局。
  3. 人工介入(HITL)怎么实现挂起与续跑?——工具执行到"需要人答"的点时保存会话状态并返回挂起标记,人答复后携带同一会话 ID 续跑;关键在挂起点的状态必须可持久化。
  4. 定时/异步任务的结果为什么不能塞进本次响应?——HTTP 响应早已返回,任务在未来触发;结果必须落盘(事件日志),并在后续对话中通过查询工具读回。

安全与治理

  1. 怎么防止模型执行危险命令?——纵深防御:策略档位→内容黑名单→空间边界→路径规范化四层确定性拦截,提示词约束只是第 0 层,防线不依赖模型自觉。
  2. 路径校验为什么"前缀检查"和"规范化检查"要分两层?——sandbox/../../etc/passwd 字面以 sandbox/ 开头但规范化后逃逸;字面检查快而粗、语义检查(canonicalize)慢而准,盲区互补。
  3. 审批门禁的风险分级怎么设计?——按操作后果分级(只读/写入/外发/不可逆),高危操作挂起等人工批准,低危走会话内免审;"审批"是风控的例外通道而非默认流程。
  4. 事件溯源给 Agent 带来了哪些"白送"的能力?——持久化(重启恢复)、审计(全量不可变日志)、时间旅行与 fork(复制日志前缀)、调试复现(回放投影精确复原模型上下文)。

形态与综合

  1. 为什么说"形态即壳",CLI/GUI/机器人 Agent 架构上差在哪?——骨架完全相同(chat 循环+工具+记忆+运行时),差异只在两个可替换点:交互界面与执行器;能零重构换壳,说明第一阶的地基打对了。

备考建议

  • 答题的通用结构:先给"一句话本质",再给"机制分层",最后给"生产取舍"。这套系列里几乎每个主题都遵循"动机→机制→教学版 vs 生产版→生产化路径"的同构叙事,面试时复用这个结构会显得体系完整。
  • 优先吃透的五个主题(考频与深度双高):ReAct + Function Calling(03/04)、上下文与记忆(05/17)、运行时保险丝(15/17)、沙箱纵深防御(21)、事件溯源(22)。
  • 动手胜过背诵:所有场景都零依赖可跑(JDK 17+ 直接 javac),不配模型 Key 时内置 Mock 模型照常驱动完整骨架——能亲眼看到 ReAct 循环、四层拦截、事件回放的每一步轨迹,远比背答案牢固。
  • 横向串联:单点知识容易被追问击穿,准备两三条"跨步连线"——比如"定时工具的落盘(26)呼应事件溯源(22)""审批门禁(20)是沙箱黑名单(21)的人工例外通道""插件机制(23)的隔离加载支撑钩子(24)的热插拔",这类连线最能体现你理解的是体系而非条目。
学习路线与面试总纲
https://clxhxhhr.top/posts/4727/
作者
clxstart
发布于
2026-10-13
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。