360 Secure SkillHub
360 安全技能中心

Agent Architecture Audit

按 12 层架构与 5 类失败模式审计 Agent 系统,从源码、日志、配置和记忆文件中收集证据,输出严重度排序的发现、架构诊断与代码优先的修复计划,并以结构化 JSON 报告呈现。

paudyyin
paudyyin
热度 10.41
最近更新 2026-07-17 15:22:47
分类:开发依赖:代码执行 / 读写文件应用场景:调试排错 / 代码审查 / 报告撰写

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add agent-architecture-audit
Metadata
name
agent-architecture-audit
description
Audit agent system architecture across 12 layers for wrapper regression, memory pollution, tool discipline failures, and hidden fix loops. Use when diagnosing agent structural issues, detecting regressions, or producing severity-ranked discovery reports.
metadata
{"origin":"ECC agent-architecture-audit"}

Agent Architecture Audit â€?12 层架构审è®?

诊断 Agent 系统中隐藏故障的审计工作流ã€?

触发条件

**必须使用**ï¼?- Agent 行为退化("Agent 变差äº?ã€?工具不稳å®?ï¼?- 模型åœ?playground 正常,但åœ?wrapper 中失è´?- 添加æ–?prompt å±?工具定义/记忆系统后,现有行为退åŒ?- 调试 Agent 行为超过 15 分钟未找到根å›?- 发布 Agent 应用å‰? **不适用**ï¼?- 通用代码调试 â†?ç”?agent-introspection-debugging

  • 代码审查 â†?ç”?code-review
  • 安全扫描 â†?ç”?security-and-hardening
  • 性能基准测试 â†?ç”?performance-optimization

12 层架构栈

每个 Agent 系统都有这些层。任何一层都可能损坏答案ï¼?

# å±? 可能的问é¢?
1 System prompt 指令冲突、指令膨胀
2 Session history 旧上下文注入到新轮次
3 Long-term memory 跨会话污染、旧话题出现在新对话
4 Distillation 压缩产物作为伪事实重新进å…?
5 Active recall 冗余重摘要层浪费上下æ–?
6 Tool selection 错误工具路由、模型跳过必需工具
7 Tool execution 幻觉执行——声称调用但未实际执è¡?
8 Tool interpretation 误读或忽略工具输å‡?
9 Answer shaping 最终响应格式损å?
10 Platform rendering 传输层变异(UI/API/CLI 变异有效答案ï¼?
11 Hidden repair loops 静默 fallback/retry agent 运行第二æ¬?LLM 调用
12 Persistence 过期状态或缓存产物作为实时证据重用

5 种常见失败模�

1. Wrapper 回归

基础模型产生正确答案,但 wrapper 层使其变差ã€? **症状**ï¼?- 模型åœ?playground 或直æŽ?API 调用中正常,åœ?Agent 中失è´?- 添加æ–?prompt 层后,现有行为退åŒ?- Agent 听起来自信但自信地错è¯?- "之前还能用,更新后就不行äº?

2. 记忆污染

旧话题通过 history、memory retrieval æˆ?distillation 泄漏到新对话ã€? **症状**ï¼?- Agent 提起不相关的过去话题

  • 用户纠正不持久(旧记忆覆盖新的)
  • 同会话产物作为伪事实重新进入
  • 记忆无限增长,降低响应质é‡?

3. 工具纪律失败

工具åœ?prompt 中声明但未在代码中强制执行。模型跳过或幻觉执行ã€? **症状**ï¼?- Prompt è¯?必须用工å…?X",但模型不调用就回答

  • 工具结果看起来正确但从未实际执行
  • 不同工具争夺同一职责
  • 模型不该用工具时用了,该用时跳过äº?

4. 渲染/传输损坏

Agent 内部答案正确,但平台层在传递时变异ã€? **症状**ï¼?- 日志显示正确答案,用户看到损坏输å‡?- Markdown 渲染、JSON 解析或流式传输片段损坏有效响åº?- 隐藏 fallback agent 在传递前静默替换答案

  • 终端å’?UI 输出不同

5. 隐藏 Agent å±?

静默修复、重试、摘要或召回 agent 在没有明确契约的情况下运行ã€? **症状**ï¼?- 输出在内部生成和用户传递之间变åŒ?- "自动修复"循环运行用户不知道的第二æ¬?LLM 调用

  • 多个 agent 在没有协调的情况下修改同一输出
  • 答案被不可见å±?平滑"æˆ?纠正"

审计工作æµ?

Phase 1: Scope(范围)

定义审计目标ï¼?

  • 目标系统 â€?哪个 Agent 应用ï¼?- *入口ç‚? â€?用户如何交互ï¼?- *模型æ ? â€?哪些 LLM 和提供商ï¼?- 症状 â€?用户报告什么?
  • 时间窗口 â€?何时开始?
  • *要审计的å±? â€?12 层中哪些适用ï¼?

Phase 2: Evidence Collection(证据收集)

从代码库收集证据ï¼?

  • *源代ç ? â€?Agent 循环、工具路由、记忆准入、prompt 组装
  • 日志 â€?历史会话追踪、工具调用记å½?- 配置 â€?prompt 模板、工å…?schema、提供商设置
  • 记忆文件 â€?SOP、知识库、会话归æ¡? 搜索反模式:
# 工具要求仅在 prompt 文本中表达(未在代码中强制)
rg "must.*tool|必须.*工具|required.*call" --type md

# 工具执行无验è¯?rg "tool_call|toolCall|tool_use" --type py --type ts

# ä¸?Agent 循环外的隐藏 LLM 调用
rg "completion|chat\.create|messages\.create|llm\.invoke"

# 记忆准入无用户纠正优å…?rg "memory.*admit|long.*term.*update|persist.*memory" --type py --type ts

# 运行额外 LLM 调用çš?fallback 循环
rg "fallback|retry.*llm|repair.*prompt|re-?prompt" --type py --type ts

# 静默输出变异
rg "mutate|rewrite.*response|transform.*output|shap" --type py --type ts

Phase 3: Failure Mapping(失败映射)

对每个发现,记录ï¼?

  • 症状 â€?用户看到什ä¹?- 机制 â€?wrapper 如何导致
  • 源层 â€?12 层中的哪一å±?- **根因** â€?最深层原因
  • 证据 â€?file:line æˆ?log:row 引用
  • *置信åº? â€?0.0 åˆ?1.0

Phase 4: Fix Strategy(修复策略)

默认修复顺序(代码优先,é?prompt 优先):

  1. 代码门控工具要求 â€?在代码中强制,不仅在 prompt 文本
  2. 移除或收窄隐藏修å¤?agent â€?ä½?fallback 明确带契çº?3. *减少上下文重å¤? â€?同一信息通过 prompt + history + memory + distillation
  3. 收紧记忆准入 â€?用户纠正 > Agent 断言
  4. 收紧 distillation 触发 â€?不压缩不应压缩的内容
  5. 减少渲染变异 â€?直通,不转æ?7. 转换为类型化 JSON 信封 â€?结构化内部流,非自由文本

严重度模åž?

级别 含义 行动
critical Agent 可以自信地产生错误的操作行为 下次发布前修å¤?
high Agent 经常降低正确性或稳定æ€? æœ?sprint 修复
medium 正确性通常存活但输出脆弱或浪费 计划下一周期
low 主要是外观或可维护性问é¢? Backlog

输出格式

按此顺序呈现发现ï¼?

  1. **严重度排序的发现**(最严重优先ï¼?2. 架构诊断(哪层损坏了什么,为什么)
  2. 排序修复计划(代码优先,é?prompt 优先ï¼? 不要以赞美或摘要开头。如果系统坏了,直接说ã€?

7 个快速诊断问é¢?

# 问题 如果æ˜?â†?
1 模型能跳过必需工具仍然回答吗? 工具未代码门æŽ?
2 旧对话内容出现在新轮次吗ï¼? 记忆污染
3 同一信息åœ?system prompt AND memory AND history 中? 上下文重å¤?
4 平台在传递前运行第二æ¬?LLM 调用吗? 隐藏修复循环
5 输出在内部生成和用户传递之间不同吗ï¼? 渲染损坏
6 "必须用工å…?X" 规则仅在 prompt 文本中? 工具纪律失败
7 Agent 自己的独白能成为持久记忆吗? 记忆中毒

报告 Schema

审计应产出结构化报告ï¼?

{
  "schema_version": "agent-architecture-audit.report.v1",
  "executive_verdict": {
    "overall_health": "high_risk | moderate | healthy",
    "primary_failure_mode": "string",
    "most_urgent_fix": "string"
  },
  "scope": {
    "target_name": "string",
    "model_stack": ["string"],
    "layers_to_audit": ["string"]
  },
  "findings": [
    {
      "severity": "critical | high | medium | low",
      "title": "string",
      "mechanism": "string",
      "source_layer": "string (1-12)",
      "root_cause": "string",
      "evidence_refs": ["file:line"],
      "confidence": 0.0,
      "recommended_fix": "string"
    }
  ],
  "ordered_fix_plan": [
    {
      "order": 1,
      "goal": "string",
      "why_now": "string",
      "expected_effect": "string"
    }
  ]
}

与现有技能的关系

技èƒ? 用é€? 关系
agent-introspection-debugging 运行时调试(工具循环、上下文漂移ï¼? 互补:本技能管架构级审è®?
error-classifier 错误分类 + 重试策略 互补:本技能管架构视角
code-review 代码级审æŸ? 本技能更高层(架构级ï¼?

反模�

  • 在证ä¼?wrapper 层回归前,不要责怪模åž?- 不要在没有显示污染路径的情况下责怪记å¿?- 不要让干净的当前状态抹去脏的历史事ä»?- 不要å°?Markdown 文本视为可信的内部协è®?- 不要接受"必须用工å…?仅在 prompt 文本中而代码从未强åˆ?- 保持发现直接、证据支持、严重度排序

*12 层架构审计:系统化诊æ–?Agent 系统的隐藏故障ã€?