
关于
代理和 LLM 应用的全栈诊断。审计代理 12 层架构中的包装退化、记忆污染、工具纪律失败、隐藏修复循环和渲染损坏。输出按严重程度排序的发现和代码优先修复方案。
name: agent-architecture-audit description: 代理和 LLM 应用的全栈诊断。审计 12 层代理栈中的包装层退化、记忆污染、工具纪律失败、隐藏修复循环和渲染损坏。产出按严重程度排序的发现和代码优先修复。对构建代理应用、自主循环或任何 LLM 驱动功能的开发者至关重要。 origin: oh-my-agent-check tools: Read, Write, Edit, Bash, Grep, Glob
代理架构审计
针对在包装层、过时记忆、重试循环或传输/渲染变异背后隐藏失败的代理系统的诊断工作流。
何时激活
以下情况必须执行:
- 将任何代理或 LLM 驱动的应用发布到生产环境
- 发布包含工具调用、记忆或多步骤工作流的功能
- 添加包装层后代理行为退化
- 用户报告"代理越来越差"或"工具不稳定"
- 同一模型在 playground 中正常但在你的包装器中出错
- 调试代理行为超过 15 分钟仍未找到根因
以下情况尤其关键:
- 添加了新的提示层、工具定义或记忆系统
- 系统中不同代理行为不一致
- 模型昨天还正常但今天开始幻觉
- 怀疑隐藏的修复/重试循环在静默修改响应
不要用于:
- 通用代码调试——使用
agent-introspection-debugging - 代码审查——使用语言特定的审查代理
- 安全扫描——使用
security-review或security-review/scan - 代理性能基准测试——使用
agent-eval - 编写新功能——使用适当的工作流技能
12 层栈
每个代理系统都有这些层。任何一层都可能损坏答案:
| # | 层 | 可能出错的地方 | |---|-------|----------------| | 1 | 系统提示 | 冲突指令、指令膨胀 | | 2 | 会话历史 | 前轮的过时上下文注入 | | 3 | 长期记忆 | 跨会话污染、新对话中出现旧主题 | | 4 | 蒸馏 | 压缩工件作为伪事实重新进入 | | 5 | 主动回忆 | 冗余的重新摘要层浪费上下文 | | 6 | 工具选择 | 错误的工具路由、模型跳过必需工具 | | 7 | 工具执行 | 幻觉执行——声称调用但实际没有 | | 8 | 工具解释 | 误读或忽略工具输出 | | 9 | 答案塑形 | 最终响应中的格式损坏 | | 10 | 平台渲染 | 传输层变异(UI、API、CLI 修改有效答案) | | 11 | 隐藏修复循环 | 静默回退/重试代理运行第二次 LLM 传递 | | 12 | 持久化 | 过期状态或缓存工件被作为实时证据重用 |
常见失败模式
1. 包装层退化
基础模型产生正确答案,但包装层使其变差。
症状:
- 模型在 playground 或直接 API 调用中正常,在你的代理中出错
- 添加新提示层后,现有行为退化
- 代理听起来自信但自信地错误
- "上次更新前还正常的"
2. 记忆污染
旧主题通过历史、记忆检索或蒸馏泄漏到新对话中。
症状:
- 代理提起不相关的过去主题
- 用户纠正不生效(旧记忆覆盖新的)
- 同会话工件作为伪事实重新进入
- 记忆无限增长,随时间降低响应质量
3. 工具纪律失败
工具在提示中声明但未在代码中强制执行。模型跳过它们或幻觉执行。
症状:
- 提示中"必须使用工具 X",但模型不调用就回答
- 工具结果看起来正确但实际从未执行
- 不同工具争夺同一职责
- 模型不该用工具时用了,该用时跳过
4. 渲染/传输损坏
代理的内部答案正确,但平台层在传递过程中修改了它。
症状:
- 日志显示正确答案,用户看到损坏输出
- Markdown 渲染、JSON 解析或流式片段损坏有效响应
- 隐藏的回退代理在传递前悄悄替换答案
- 终端和 UI 之间输出不同
5. 隐藏代理层
静默的修复、重试、摘要或回忆代理在没有明确契约的情况下运行。
症状:
- 内部生成和用户传递之间输出变化
- "自动修复"循环运行用户不知道的第二次 LLM 传递
- 多个代理在没有协调的情况下修改同一输出
- 答案被不可见层"平滑"或"纠正"
审计工作流
阶段 1:范围
定义你要审计的内容:
- 目标系统 — 什么代理应用?
- 入口点 — 用户如何与之交互?
- 模型栈 — 哪些 LLM 和提供商?
- 症状 — 用户报告了什么?
- 时间窗口 — 何时开始的?
- 要审计的层 — 12 层中哪些适用?
兼容工具
Claude CodeCursor
标签
AI与机器学习
