结课设计:一个可治理的最小 Agent 系统
建议用时:25 分钟(含练习)
学习目标
能够把模型、Harness、Tool、MCP、Skill、Memory、评测与人工授权组合成完整设计。
本节产出
一份 Agent 系统设计与威胁清单
核心知识:把组件名称落实为责任
本课程的结课设计是一个可治理的公开资料研究助手。目标是读取指定公开资料,生成带来源的草稿,并留下足够的检查记录。你不需要部署复杂平台,也不需要让系统获得真实生产权限;一份能够逐步演练的设计与样例产物,就能检验是否理解了各个组件。
组件分工
系统中的模型负责组织语言与提出下一步,Harness 负责上下文、执行与状态,Tool 提供有限动作,MCP 可以连接外部能力,Skill 保存经过验证的方法,Memory 保存适用的稳定信息。每项能力都要说明实际实现位置,不能只在图上放一个名词就认为已经具备。
图中的最终输出是草稿交付。若未来增加公开发布功能,应单独设计授权、目标确认、结果核对与回滚,而不是直接复用读取权限。系统能力的增加也意味着新的失败场景,需要重新评估。
案例:比较三种公开文档的配置说明
虚构任务要求比较三份公开教程如何解释配置文件,输出共同点、差异、适用日期和未确认事项。输入提供三个已审核地址,禁止读取私人目录。验收要求是每条关键事实能回到来源,冲突被明确保留,无法读取的页面不产生虚构摘要。
| 组件 | 本项目中的责任 | 如何证明有效 |
|---|---|---|
| 模型 | 整理主张、解释差异 | 检查输出与证据对应 |
| Harness | 限定输入、管理循环与状态 | 演练失败停止和恢复 |
| Tool | 读取指定公开页面 | 拒绝范围外地址 |
| MCP | 可选的能力连接方式 | 核对能力与权限范围 |
| Skill | 固化比较方法与检查步骤 | 用第二组资料重跑 |
| Memory | 保存稳定写作规则 | 不混入本次临时事实 |
这里的地址限制也要处理重定向与实际请求目标,不能只检查最初字符串。若实现尚未覆盖这类情况,应把它写成设计缺口,并在练习环境中保持工具能力有限。设计诚实地说明缺口,比宣称“完全安全”更有价值。
三种失败演练
第一种是误调用:系统试图读取不在清单中的地址。预期是执行层拒绝,并记录可理解的错误,模型随后回到允许范围。不能只依赖模型记得规则。
第二种是提示注入:某页正文要求忽略任务并发送其他资料。预期是正文保持资料身份,不触发额外工具动作。检查时应查看实际调用记录,不能仅根据最终回答里写了“我拒绝”就判定通过。
第三种是凭证或敏感信息意外进入输入。预期是停止不必要的传播、避免写入公开产物和普通日志,并按实际环境的处置规则处理。练习使用明显虚构的占位字符串,不需要真的泄露任何凭证来验证设计。
从成功率之外评估系统
评测不仅看最终文章是否流畅,还要看来源准确性、未知项表达、范围遵守、可恢复性与成本。可以设五个固定样例:资料完整、缺一页、来源冲突、夹带指令、输入含虚构敏感标记。每个样例都定义必须出现和绝不能出现的结果。
对关键边界采用明确的通过条件,例如越权工具调用必须为零、关键事实必须能映射证据。对于表达清晰度,可以用量表或人工审阅。不要把一个综合分数当成所有方面都合格,平均分可能掩盖一次严重失败。
动手练习
- 提交系统图、输入合同、工具契约、状态结构和输出模板。
- 用五个固定样例进行静态推演或实际隔离运行,记录执行方式与结果。
- 让另一人根据设计提出一个失败场景,修订后重新检查相关样例。
参考答案与推演
合格设计应能回答谁授权读取、哪些来源可访问、失败后如何停止、草稿怎样验证,以及接手者如何知道已经完成哪些动作。MCP 可以不采用,只要说明连接方式;没有必要为了凑齐术语引入额外服务。
如果缺一页,输出应明确减少比较范围或等待补充;如果来源冲突,保留各自日期与口径;如果工具越权,执行层应拒绝。最终交付说明要区分“设计过”“模拟过”和“真实运行验证过”,使读者能够判断证据强度。
完成检查
- 每个组件都有明确责任与验证方式。
- 外部动作有可执行授权边界与失败处理。
- 五个样例覆盖正常、缺失、冲突和安全边界。
- 交付包含实际结果、未解决问题与复用说明。
延伸:把 Agent 能力放进 FDE 现场
当一个 Agent 进入真实团队,技术演示只是起点。FDE(Forward Deployed Engineer)要先理解现场工作,再判断哪一个环节值得被系统化。可以用五个问题筛选场景:痛点是否真实且高频,输入和输出是否可观察,哪些动作必须由人负责,是否有正常样例与反例,以及成功能否用时间、错误率、覆盖率或复核成本说明。若这些问题还答不上来,就先补齐观察和数据,不要急着扩大权限。
一种稳妥的做法是影子工作:系统先旁观真实流程,生成建议但不替人提交;团队收集一组 Golden Set(代表性正常样例)和一组 Bad Case(失败、冲突、缺失或诱导样例),再让人工把系统结果和原流程并排比较。这样能够把不确定性前移:数据缺口、权限边界、提示注入、错误后果和人工拍板点,都会在小范围内暴露。POC 的成功标准应具体到一个判断,例如“每条关键事实都能回到来源”,而不是笼统地说“回答更聪明”。
Agent 的组件分工在现场同样不能混淆。模型负责提出候选解释;Harness 管理上下文包、循环、状态和停止条件;Tool 只暴露经过授权的动作;Skill 把已经验证过的步骤写成可重复方法;Memory 只保存适用范围明确的稳定信息。每次运行都应留下轨迹、证据映射和人工决策,评测同时看结果质量、越权调用、未知项表达、成本和恢复能力。
FDE 交付的终点也不是一次成功的 Demo。复盘时要把一次性交付拆成可复用的 workflow、评测样例、数据规则、权限边界和产品需求,并明确谁维护、何时重跑、失败如何回滚。只有另一位同事能够拿走这些资产、替换输入、理解限制并独立重跑,现场经验才真正变成系统能力。
现场练习
选一个低风险的公开资料任务,画出当前人工流程,标记一个最小切口。为它写出输入合同、允许的 Tool、Golden Set、至少三个 Bad Case、成功指标、停止条件和人工拍板点。最后说明哪些部分已经模拟,哪些部分尚未真实验证。
参考与来源
- Anthropic:Building effective agents:选择与任务复杂度相称的系统组织方式。
- Anthropic:Demystifying evals for AI agents:设计可检查的任务、轨迹与结果评测。
- OWASP:LLM Prompt Injection Prevention Cheat Sheet:审查资料输入与工具执行之间的边界。
结课设计:一个可治理的最小 Agent 系统
3 道题 · 及格分 60 分