Agent 开发
控制权、工具调用、循环、记忆、协议、护栏与评测 —— 把模型变成能干活的系统。 共 24 个知识点,对应题库第 3 章。
入门1 个
进阶18 个
五个问题定生死:任务分支能否事先枚举、错误能否被发现与回退、成本与延迟预算、可复现要求、谁为结果负责。答案多数时候是混合架构 —— 确定的骨架用 workflow,不确定的局部交给 Agent。盲目上 Agent 踩的坑是错误累积、账单失控与不可复现。
工作记忆就是当前上下文,长期记忆是窗口之外的存储;分层是硬要求 —— 上下文预算不能当成一根随便拼接的字符串。写入策略决定记什么、什么时候记,记忆冲突要有仲裁规则,多租户隔离与合规(谁能看、能否删)从第一天就要设计。
模型没有调用任何函数:它只是按 schema 输出一段结构化的「我想调什么、参数是什么」,真正执行的是你的代码,再把结果作为消息塞回去。完整六步缺一不可,理解这一点才能理解并行调用、结果裁剪与 MCP 各自在改哪一步。
并行工具调用适合彼此独立的读操作,写操作与有依赖的调用要串行。工具返回值是 Agent 上下文的头号杀手:一次查询返回几万 token 会直接把窗口吃光,解法是裁剪、分页、用句柄(handle)代替原文,需要时再取。
模型选不准、填不对工具,八成是 schema 与描述的问题:名字要说清「做什么」而不是「怎么实现」、参数少而正交、描述里写清什么时候不该用。七条硬规则之外,方法是先建评测再改描述,不凭感觉调。
MCP 把「每个应用 × 每个工具」的适配矩阵变成「应用接协议 + 工具接协议」,解决的是 Function Calling 的工具发现与分发问题,不改变模型调用工具的机制。2026-07-28 的无状态改版让 Server 能扛住负载均衡:会话状态从连接里挪到了请求头。
最小 ReAct 循环四十行就能写,真正的考点是退出条件:模型给出最终答案、步数上限、成本预算熔断、无进展检测、外部中断 —— 五类一个都不能少。死循环有三种形态,对策是检测重复动作、降级到 workflow 或交人。
每轮都调大模型,成本与延迟由四类杠杆决定:少调(缓存、语义缓存)、调便宜的(模型路由)、调得短(裁剪上下文与工具结果)、并行。账单暴涨有固定的排查顺序;延迟优化和成本优化不完全同向,流式与首 token 延迟要单独看。
把说明全写进 system prompt 是常驻 token,每轮都付费还稀释注意力;Agent Skills 只常驻一行触发描述,命中时才加载手册与代码。渐进式披露把「什么时候加载」变成架构变量,是上下文工程在工具层的落地。
A2A 让 Agent 把对方当黑盒协作,而不是把对方的工具搬过来:Agent Card 声明能力,Task 状态机管生命周期,消息与产物分开交付。它和 MCP 互补 —— MCP 连工具,A2A 连 Agent;判据是对端有没有自己的判断与状态。
Tools / Resources / Prompts 按「谁控制」来记:Tools 由模型决定调不调,Resources 由应用决定给不给,Prompts 由用户决定用不用。分清控制权才知道一个能力该暴露成哪种原语,弃用窗口则是协议演进时的兼容底线。
五种编排模式里,orchestrator-workers 最常用:主 Agent 拆任务、派给 worker、再由合成器汇总。拆分唯一正当的理由是上下文隔离 —— 每个 worker 只背自己那份上下文;并行是副产品,不是目的。
护栏分五层(输入、工具、输出、策略引擎、人)加两条横切(可溯源、可回退);Agent 跑偏或幻觉不是靠一句「请不要犯错」修的,而是每层各拦一类错。输出校验用规则优先、LLM-as-judge 兜底,目标漂移要在轨迹层检测。
选框架选的是「交出多少控制权」:框架替你做了循环、状态、重试与追踪,抽象泄漏就发生在你要改这些默认行为的时候。LangGraph / Agents SDK / ADK / CrewAI 定位不同;不少团队最后自己写循环,是因为循环本身只有几十行,而绞杀者式重写比迁移框架便宜。
Agent 会以「看起来成功」的方式失败:结果对了但绕了十二步、调了不该调的工具、状态改错了。四个评测层次里轨迹评估是核心,指标要看分布而不是均值,不可复现是常态所以要多跑几次;评测集会过拟合,要持续从线上 badcase 补。
一条 trace 是一棵 span 树:每次模型调用、每次工具调用各一个 span,带上 OTel 的 gen_ai.* 语义约定字段,才能重放、归因成本、定位是哪一步错的。内容捕获与采样策略要权衡隐私与排障需要,线上监控看的是分布与漂移。
ReAct 边想边做,Plan-and-Execute 先列计划再执行、靠 replan 触发条件救场, Reflection 让模型评审自己的输出 —— 前提是评审信号真的来自外部,否则只是自评偏差。推理模型把「手写规划」的一部分吸收进了模型内部,生产里最常见的形态是混合。
分级按不可逆性,不按重要性:读操作全自动,可撤销的写操作自动执行 + 撤销窗口,不可逆的高危操作(付款、发邮件、删库)必须人工确认。确认要设计得不流于形式 —— 确认疲劳会让人闭眼点通过;影子模式与审计记录是上线前后的两道保险。
深水5 个
跨会话记忆在检索这一步和 RAG 很像,但不是一回事:它在线增量写入、有主体(这个用户)、要处理冲突与遗忘(被遗忘权),评测标准是「用得得体」而不只是「召回了」。把它当成一个只读知识库来做,就会记住不该记的、忘不掉该忘的。
上下文快满时三条路:滑动窗口丢最旧的、摘要压缩把历史变成一段、重要性过滤只留关键项 —— 各有各的失败模式。触发时机有三种策略;压缩的隐藏成本是缓存失效。压缩前必须固化 MUST-PRESERVE 清单:目标、决定、约束、待办,丢了关键决定就是开篇那种故障。
MCP 把工具变成了供应链:第三方 Server 的描述里可以藏指令(工具投毒),返回值里可以带间接注入, Agent 拿着用户凭证替攻击者办事就是 confused deputy。防线是最小权限、沙箱、对工具描述与返回值都做不信任处理,以及高危操作的人工确认。
多 Agent 不天然比单 Agent 好:交接损失、假设冲突、责任分散、成本翻倍是六种典型死法里的常客,组织结构还会照康威定律映射进架构。拆分前先问三个问题、先有单 Agent 的 baseline,拆完要能量出来比 baseline 好。
Agent 的能力一半在模型、一半在 harness:提示词、工具集、循环策略、护栏这些模型之外的东西。模型换代时 harness 里为旧模型打的补丁会变成债务,治理的核心动作是做减法与提示词版本化,多 Agent 场景下还要多一层跨 Agent 的一致性约束。