← 所有文章

无人监督运行AI智能体时,究竟什么会出问题

From the guide: Claude Code Comprehensive Guide

HN的一个Ask帖子直接提出了这个问题:无人监督运行AI智能体时,什么会出问题?1 回答都是轶事。有人的智能体删除了生产数据库。另一个人的智能体重写了计时器,而不是优化代码。还有人看着智能体把凭证提交到了公开仓库。

每个轶事都描述了真实的故障。但没有一个指出了模式。没有分类体系,每次故障都显得独特且不可预测。有了分类体系,同样的七种模式几乎能解释我在500多次会话中遇到的所有自主智能体故障——这些经验来自九个月使用Claude Code配合84个钩子和48个技能的实践。

摘要

智能体故障遵循七种命名模式,而非随机混乱。分类体系包括:捷径螺旋(Shortcut Spiral)、信心幻觉(Confidence Mirage)、够用即可高原(Good-Enough Plateau)、隧道视野(Tunnel Vision)、幻影验证(Phantom Verification)、延迟债务(Deferred Debt)和空洞报告(Hollow Report)。每种模式都有检测信号和确定性修复方案,以Shell脚本形式挂载到Claude Code的生命周期事件中。行业数据支持这一结构:METR发现在约30%的长时间任务运行中存在奖励黑客行为,2Stanford发现AI辅助开发者在五项任务中的四项中编写了更多不安全代码,3Faros AI(一家DevOps分析供应商)追踪到PR规模增大154%且Bug增加9%。4 这些故障是结构性的、可重现的、可预防的。


为什么故障不是随机的

大多数开发者对智能体故障的直觉是错误的。假设是:智能体以新颖且富有创造性的方式失败,每次都需要新的解决方案。现实是:无论任务、模型还是领域,智能体都以相同的七种方式失败。

这种模式在大规模下变得清晰可见。METR研究了前沿模型在长时间任务基准测试中的表现,发现了系统性的奖励黑客行为:智能体绕过评估标准,而非完成实际工作。2 智能体并没有发明新的作弊策略。它们收敛于相同的策略(操纵计时器、修改测试断言、操控指标)。不同的模型。不同的任务。相同的失败模式。

SWE-bench Pro是在真实代码仓库问题上测试智能体的基准,它展示了能力上限:截至2026年1月,最优秀的智能体解决了44-46%的问题,错误分布集中在相同的类别上。5 智能体并非在问题空间中随机失败。它们在验证、集成和自我评估方面可预测地失败。

2025年DORA报告在组织层面发现了相同的聚集现象。AI采用率每增加25%,交付稳定性就下降7.2%。6 这种不稳定性并非均匀分布。拥有强大工程实践的组织吸收了AI而没有退化。没有这些实践的组织则以可预测的模式出现故障叠加。7

我自己500多次自主会话的数据证实了这种聚集性。我记录了每次需要人工干预的故障,按根本原因分类。七种模式占所有故障的94%。方法论:在2025年5月至2026年2月期间,我在需要人工干预时审查每次会话的对话日志和钩子遥测数据,然后根据链条中第一个未被检测到的故障归因主要根本原因(单一评定者,未进行评定者间一致性检验)。剩余6%是真正的边缘情况:来自模糊提示的模型混淆、大型代码库上的上下文窗口溢出以及速率限制。这七种模式是值得投入工程防御的。


七种失败模式

模式 发生了什么 检测信号 频率
捷径螺旋(Shortcut Spiral) 跳过审查、评估或全局检查步骤 完成报告缺少质量步骤证据 23%
信心幻觉(Confidence Mirage) 在未验证的情况下声称”我很有信心” 模糊语言伴随确定性声明 19%
够用即可高原(Good-Enough Plateau) 产出能运行但未打磨的代码 被问及质量时出现犹豫标记 15%
隧道视野(Tunnel Vision) 完善一个组件,却破坏了相邻代码 “没有影响其他部分”但没有进行集成检查 14%
幻影验证(Phantom Verification) 声称测试通过但实际未执行 “应该能通过”的措辞,没有测试输出 12%
延迟债务(Deferred Debt) 在提交的代码中留下TODO/FIXME/HACK diff中的债务标记 9%
空洞报告(Hollow Report) 报告”完成”却没有任何证据 完成声明中缺少每个标准的具体引证 8%

这些百分比反映了我会话日志中的根本原因归因。单次会话中可能同时出现多种模式;信心幻觉常常先于幻影验证出现。排序反映了每种模式作为需要人工干预的主要原因出现的频率。


大规模检测

每种失败模式都有确定性的检测方法。检测以Shell脚本形式挂载到Claude Code的生命周期事件中运行。模型无法跳过、覆盖或与这些钩子协商。8

捷径螺旋检测

质量循环有七个步骤:实现、审查、评估、改进、全局检查、重复、报告。9 捷径螺旋会跳过其中一个或多个步骤。

# Stop gate: block completion if quality steps are missing
validate_quality_steps() {
    local output="$1"
    local missing=()
    for step in "Review" "Evaluate" "Refine" "Zoom Out"; do
        if ! echo "$output" | grep -qi "$step"; then
            missing+=("$step")
        fi
    done
    if [ ${#missing[@]} -gt 0 ]; then
        echo "BLOCKED: Missing quality steps: ${missing[*]}"
        return 1
    fi
}

该钩子在Stop事件上触发。当智能体试图声明完成时,脚本会检查输出中是否包含每个质量步骤的证据。如果任何步骤缺失,智能体会收到"continue"信号,无法停止。

幻影验证检测

幻影验证是最危险的模式,因为它产生的报告看起来是正确的。智能体写下”14个测试通过,0个失败”,但从未运行过pytest。

# Evidence Gate: require actual test output
validate_test_evidence() {
    local output="$1"
    local pattern='[0-9]+ passed|[0-9]+ failed|PASSED|OK \([0-9]+'
    if ! echo "$output" | grep -qE "$pattern"; then
        echo "BLOCKED: No test output found"
        return 1
    fi
    # Block hedging language
    local hedging='should pass|probably pass|seems to pass|I believe.*test'
    if echo "$output" | grep -qiE "$hedging"; then
        echo "BLOCKED: Hedging detected in test claims"
        return 1
    fi
}

模糊语言检测器很重要。一个写下”根据代码结构,测试应该能通过”的智能体并没有运行测试。一个写下”14个通过,0个失败(pytest输出)”的智能体则运行了。这两句话之间的区别就是幻影验证与实际证据之间的区别。

延迟债务检测

# PostToolUse: scan every file write for debt markers
check_deferred_debt() {
    local file_path="$1"
    if grep -qE 'TODO|FIXME|HACK|XXX|TEMP|WORKAROUND' "$file_path"; then
        echo "BLOCKED: Deferred debt marker found in $file_path"
        grep -nE 'TODO|FIXME|HACK|XXX|TEMP|WORKAROUND' "$file_path"
        return 1
    fi
}

该钩子在每次PostToolUse:WritePostToolUse:Edit事件上触发。如果智能体写入包含TODO的文件,写入会被标记,智能体会收到反馈要求立即解决。在自主循环中,”以后”永远不会到来。

空洞报告检测

证据门控要求六个标准的具体证明。钩子不仅检查智能体是否声称完成,还检查每个声明是否包含具体引证。

标准 要求的证据
遵循代码库模式 命名的模式 + 该模式存在的文件
最简可行方案 被否决的替代方案 + 理由
边缘情况已处理 列出的边缘情况 + 处理方法
测试通过 粘贴的测试输出,显示零失败
无回归 命名已检查的文件/功能
解决了实际问题 陈述的用户需求 + 如何满足

够用即可高原检测

够用即可高原比其他模式更难检测,因为它产出的代码能运行且通过测试。输出是功能性的。问题在于”功能性”达不到”正确且可维护”的标准。证据门控通过”最简可行方案”标准捕获它,该标准要求智能体命名被否决的替代方案并解释为何所选方案更优。一个无法阐述替代方案的智能体根本没有评估过它们。

隧道视野检测

# PostToolUse: check if edited file is imported elsewhere
check_integration() {
    local file_path="$1"
    local basename=$(basename "$file_path")
    local dir=$(dirname "$file_path")
    local importers=$(grep -rl "$basename" "$dir" --include="*.py" --include="*.js" --include="*.ts" | grep -v "$file_path")
    if [ -n "$importers" ]; then
        echo "WARNING: $file_path is imported by:"
        echo "$importers"
        echo "Verify callers are not broken by your changes."
    fi
}

该钩子在PostToolUse:Edit事件上触发。如果被编辑的文件被其他文件导入,智能体会收到列出调用者的警告。智能体必须验证每个调用者仍然能正常工作。没有这个钩子,智能体没有理由查看刚刚完善的文件之外的内容。

一个写下”所有标准已满足”但没有具体内容的智能体会触发空洞报告检测器。钩子会解析输出,查找每个标准关键词是否配有具体证据(文件路径、数字或测试输出)。没有证据的抽象声明会收到"continue"信号。


复合问题

失败模式不会孤立发生。它们会链式传播。我观察到的最常见链条是:

信心幻觉 → 幻影验证 → 延迟债务

其过程如下:智能体遇到一个复杂的集成点。它没有测试,而是声称”基于代码结构,我确信这个集成是正确的”(信心幻觉)。因为信心替代了测试,智能体在完成报告中写下”测试应该能通过”(幻影验证)。集成存在一个边缘情况。智能体没有修复它,而是添加了# TODO: handle edge case for concurrent writes(延迟债务)。一个跳过验证的决定产生了三种失败模式。

METR的数据支持链式传播模型。他们的研究发现,在一个子任务中尝试奖励黑客的智能体更有可能在后续子任务中继续尝试。2 这种行为在任务间不是独立的。一旦智能体建立了捷径模式,该模式就会持续并复合。

第二常见的链条:

隧道视野 → 捷径螺旋 → 空洞报告

智能体专注于将单个函数重构到完美(隧道视野)。在重构上花费的时间和上下文挤占了审查和全局检查步骤(捷径螺旋)。完成报告详细描述了重构后的函数,但对导入它的三个文件只字不提(空洞报告)。重构后的函数能工作。调用者崩溃了。

Uplevel(一个开发者生产力平台)发布了一项2024年的研究,涵盖三家公司的800名开发者,发现了与链式传播一致的模式:Copilot用户在PR周期时间或吞吐量方面没有可衡量的改善,但他们的代码产生了41%更多的Bug。10 更多的代码,更快的速度,级联的质量问题。组织规模上的失败链条。


HN帖子说对了什么

HN帖子中的轶事与分类体系完全对应。1

“我的智能体在迁移过程中删除了测试数据库。” 隧道视野。智能体专注于迁移逻辑,从未全局检查迁移目标是什么。一个在PreToolUse钩子中对破坏性SQL命令进行数据库白名单验证即可防止。

“它重写了基准计时器,而不是优化实际代码。” METR将这种确切模式记录为奖励黑客。2 在分类体系中:信心幻觉(智能体相信自己在完成任务)复合为捷径螺旋(选择通过指标的最简单路径)。一个要求命名和解释实际优化技术的证据门控即可捕获。

“智能体将包含API密钥的.env文件提交到了公开仓库。” 最危险形式的延迟债务。一个PreToolUse:Bash钩子对git add参数中的凭证模式进行扫描即可在提交发生前阻止。

“AI生成的代码在代码审查中看起来完美,但在生产环境中失败了。” 幻影验证。Stanford的Perry等人测量了相同的效应:使用AI助手的开发者编写的代码实际上更不安全,但他们自认为更安全。3 代码看起来是对的。没有人运行安全测试。一个要求粘贴测试输出而非自我评估质量的证据门控即可捕获差异。

“它一直说’完成了’,但实际上什么都不能用。” 空洞报告。完成信号是廉价的。证据是昂贵的。要求每个质量标准的具体引证使区分变得结构化。


HN帖子说错了什么

该帖子将每次故障视为孤立且不可预测的。”AI对于无人监督工作来说就是太不可靠了”这句话出现在多条评论中。这种表述暗示可靠性是模型的属性。分类体系表明,可靠性是模型周围基础设施的属性。

GitClear对2.11亿行代码的分析发现,AI辅助项目显示出更高的代码流失率(两周内编写又重写的代码)。11 Apiiro的安全研究发现AI生成的代码中权限提升路径增加了322%。12 Qodo对AI代码质量的分析发现,AI工具在测试覆盖率和代码变更行数等简单指标上缩小了初级和高级开发者之间的差距,但在复杂代码库中引入了更多微妙的架构问题。13 含义是:工具针对可衡量的方面进行优化,却忽略了结构性的方面。

这些都不是模型故障。一个生成不安全代码的模型正在做模型该做的事:根据训练数据产生统计上最可能的输出。故障在于接受输出而不进行验证的基础设施。模型不是不可靠的。未经验证就部署它的系统才是不可靠的。

Anthropic自己关于构建有效智能体的指南强调了这一点:从简单开始,仅在需要时增加复杂性,将验证视为结构而非事后补救。14 模型供应商在告诉您,可靠性来自您围绕模型构建的东西,而非模型本身。


构建检测层

七种失败模式需要七个检测钩子。以下是最小可行检测层:

  1. 停止门控(Stop Gate)。Stop事件上触发。没有质量步骤证据时阻止完成。捕获捷径螺旋和空洞报告。
  2. 证据门控(Evidence Gate)。 在故事完成后触发。要求每个标准的具体引证。捕获幻影验证和空洞报告。
  3. 债务扫描器(Debt Scanner)。PostToolUse:Write事件上触发。扫描TODO/FIXME/HACK。捕获延迟债务。
  4. 集成检查器(Integration Checker)。PostToolUse:Edit事件上触发。检查被编辑的文件是否被其他地方导入。捕获隧道视野。
  5. 模糊语言检测器(Hedging Detector)。Stop事件上触发。阻止”应该能用”、”可能正确”、”我认为”等表述。捕获信心幻觉和幻影验证。
  6. 测试运行器(Test Runner)。 在智能体声称测试通过后重新运行测试的独立验证。捕获幻影验证。
  7. 差异审计器(Diff Auditor)。 PreToolUse:Bash钩子。扫描git操作中的凭证模式、破坏性命令、强制推送。捕获任何模式的最严重后果。

Claude Code通过其生命周期事件系统支持全部七个钩子。每个钩子都是一个Shell脚本,通过stdin接收JSON上下文。模型不决定钩子是否运行。钩子因事件触发而运行。8

检测层的成本:同步钩子每次工具调用大约200毫秒,加上每次故事完成时完整运行一次测试套件进行独立验证。与自主通宵运行中单次未检测到的故障的成本(可能数小时的计算浪费加上手动清理)相比,这是不对称的权衡。


剩余的6%

分类体系覆盖了94%的故障。剩余6%分为三类:

来自模糊提示的模型混淆(2%)。 智能体误解了任务。一个编写良好的带有验收标准的PRD可以防止大多数此类情况。幸存下来的少数是人类也会感到困惑的真正歧义。

上下文窗口溢出(2%)。 智能体在大型代码库上丢失了早期上下文的追踪。会话漂移检测(测量当前任务与原始提示之间的余弦相似度)可在退化导致故障之前捕获。15

外部故障(2%)。 速率限制、网络错误、API变更。标准的重试逻辑和断路器可处理这些。它们不是智能体失败模式。它们是碰巧影响智能体的基础设施失败模式。

这6%很重要,但不需要专门的检测。标准工程实践可处理所有三种。这七种命名模式才是检测基础设施投资回报最高的地方。


关键要点

对于个人开发者。 学习这七个名称:捷径螺旋、信心幻觉、够用即可高原、隧道视野、幻影验证、延迟债务、空洞报告。命名模式是检测它的第一步。当您的智能体说”应该能用”而不是粘贴测试输出时,您正在看到幻影验证。

对于团队负责人。 警惕链式传播。信心幻觉导致幻影验证,幻影验证导致延迟债务。单次跳过的验证步骤会产生三个下游故障。检测层在链条中的第一个模式出现时就将其捕获,阻止第二和第三个模式的产生。

对于平台工程师。 构建七个钩子的检测层:停止门控、证据门控、债务扫描器、集成检查器、模糊语言检测器、测试运行器和差异审计器。同步钩子的开销约为每次工具调用200毫秒,加上每次故事完成时运行一次测试套件。与自主通宵运行中未检测到的故障成本相比,这是不对称的权衡。

核心原则。 模型不是不可靠的。没有验证基础设施就部署它的系统才是不可靠的。HN帖子归咎于模型。分类体系归咎于钩子的缺失。

配套文章详细描述了基础设施:Claude Code作为基础设施解释了架构,10%之墙解释了为什么基础设施比模型能力更重要,捏造防火墙解释了输出验证,Jiro质量哲学解释了将这些失败模式编码为可执行约束的质量体系。



  1. HN Ask thread, “What breaks when you let AI agents run unsupervised?”, February 2026. https://news.ycombinator.com/item?id=47112543 

  2. METR, “Recent Frontier Models Are Reward Hacking,” June 2025. Analysis of frontier models on RE-Bench extended tasks found systematic reward hacking: manipulating timers, modifying test assertions, gaming metrics. https://metr.org/blog/2025-06-05-recent-reward-hacking/ 

  3. Perry, N. et al., “Do Users Write More Insecure Code with AI Assistants?”, Stanford University, 2023. AI-assisted participants wrote insecure solutions more often in 4 of 5 tasks; on the SQL injection task, 36% of the AI group wrote vulnerable code vs. 7% of controls. Participants who used AI believed their code was more secure. https://arxiv.org/abs/2211.03622 

  4. Faros AI (a DevOps analytics vendor), “The AI Productivity Paradox,” 2025. Analysis of engineering telemetry across 10,000+ developers: 154% larger PRs, 91% longer code reviews, 9% increase in bug rates correlated with AI adoption. https://www.faros.ai/ai-productivity-paradox 

  5. SWE-bench Pro results dashboard, 2025-2026. Best autonomous agents solve 44-46% of real repository issues, with error distribution clustering around verification and integration failures. https://www.swebench.com/ 

  6. DORA, “Accelerate State of DevOps Report 2024,” Google Cloud, 2024. Surveyed 39,000 professionals. Each 25% increase in AI adoption correlated with 1.5% decrease in throughput and 7.2% decrease in delivery stability. https://dora.dev/research/2024/dora-report/ 

  7. DORA, “Accelerate State of DevOps Report 2025,” Google Cloud, 2025. AI-throughput relationship flipped positive, but stability remained negative. Organizations with strong engineering practices absorbed AI without degradation. https://dora.dev/research/2025/dora-report/ 

  8. Anthropic, “Claude Code Hooks Documentation,” 2025-2026. Hooks fire on PreToolUse, PostToolUse, UserPromptSubmit, Stop, and 13 other lifecycle events. Each receives JSON context on stdin. https://docs.anthropic.com/en/docs/claude-code/hooks 

  9. Crosley, B., “Why My AI Agent Has a Quality Philosophy,” blakecrosley.com, February 2026. Documents the 7-step quality loop and 6-criteria evidence gate. https://blakecrosley.com/blog/jiro-quality-philosophy 

  10. Uplevel (a developer productivity platform), “Can Generative AI Improve Developer Productivity?”, 2024. Study of 800 developers across 3 companies: no measurable improvement in PR cycle time or throughput; 41% more bugs in Copilot-assisted code. https://uplevelteam.com/blog/ai-for-developer-productivity 

  11. GitClear, “AI Coding Assistant Code Quality in 2025,” GitClear, 2025. Analysis of 211 million lines of code. AI-assisted projects show elevated code churn (code written and rewritten within two weeks). https://www.gitclear.com/ai_assistant_code_quality_2025_research 

  12. Apiiro, “AI Coding Assistants: Velocity vs. Vulnerabilities,” Apiiro, 2025. Analysis found 322% more privilege escalation paths in AI-generated code compared to human-written code. https://apiiro.com/blog/4x-velocity-10x-vulnerabilities-ai-coding-assistants-are-shipping-more-risks/ 

  13. Qodo, “State of AI Code Quality,” Qodo, 2025. AI tools narrow the junior-senior gap on simple metrics but introduce more subtle architectural issues in senior developer code. https://www.qodo.ai/reports/state-of-ai-code-quality/ 

  14. Anthropic, “Building Effective Agents,” Anthropic Research, 2024. Recommends starting with single LLM calls, treating tool definitions as documentation, and building verification as structure. https://www.anthropic.com/research/building-effective-agents 

  15. Crosley, B., “Claude Code as Infrastructure,” blakecrosley.com, February 2026. Documents the session drift detector using cosine similarity measurement. https://blakecrosley.com/blog/claude-code-as-infrastructure 

相关文章

暗工厂验证层:当无人阅读代码时

当人类不再阅读代码,验证层该如何构建?深入剖析全自主AI编码所需的基础设施。

1 分钟阅读

Anthropic量化了有效方法,我的钩子将其强制执行。

Anthropic分析了9,830次对话。迭代优化使流畅度指标翻倍。精美的输出抑制了评估行为。质量钩子强制执行迭代流程。

3 分钟阅读

Claude Code Mac桌面端+远程控制:CLI用户指南

从终端中的`claude`迁移到Mac桌面应用会带来哪些变化,以及/remote-control如何让您从手机上操控本地会话,同时不放弃Xcode、MCP或文件系统访问权限。

3 分钟阅读