为什么你的 AI Agent 总是失败——而且这不是模型的错
关于为什么聪明的 AI 系统在生产环境中仍会崩溃的令人不安的真相——以及最终修复它的工程学科。
凌晨 2 点,我终于承认失败。我花了三周时间微调 prompts、切换到最新的旗舰模型,并近乎执念地调整 RAG chunking 方法。我的 AI agent 在 sandbox 中可以表现得非常好。但到了生产环境?简直是一场灾难。它忘记了两步之前自己做过的决定。它会在交付一个坏掉的结果之前,自信地宣称成功。任务成功率顽固地徘徊在 68%。无论我对模型做什么,都无法把它推过 70%。
听起来熟悉吗?
这是我后来终于发现的:我面对的不是模型问题,而是系统问题。在我理解这个区别之前,一切都不会改变。
AI Engineering 的三个阶段——以及为什么大多数团队都卡在第 2 阶段
LLM 应用的成熟,悄然推动我们经历了三个截然不同的思考阶段。我聊过的大多数团队都处在第一或第二阶段的某个位置,却困惑于为什么第三阶段的问题总是反复咬住他们。
阶段 1:Prompt Engineering(模型理解我了吗?)
这是每个人开始的地方。你会发现 LLM 是极其敏感的概率塑形机器——一个精心设计的角色、一个 few-shot 示例、正确的格式约束,输出就会突然发生转变。它感觉像魔法。而且它确实很强大。对于受控的单轮任务,好的 prompting 是不可或缺的。
但我很快撞上了天花板。无论我的指令措辞多么优美,我都无法给模型它本身没有的知识。我无法让它记住三次 tool call 之前发生了什么。我也无法阻止它在现实令它失望时,自信地编造数据。
⚠️ 陷阱:
相信一个更复杂或更清晰的 prompt 可以弥补事实 grounding 或实时上下文的根本缺失。它做不到。
阶段 2:Context Engineering(模型掌握事实了吗?)
一旦我理解了这个限制,我就投入到了 context 之中。RAG pipelines。Dynamic retrieval。Tool outputs 回灌。仔细注入的 conversational history。我开始痴迷于模型做决策时能看到什么。
这感觉像是一次突破——公平地说,它确实是。我的 agent 在正确的时间访问到正确的信息后,明显变得聪明得多。
但 context engineering 仍然无法解决这个问题:execution drift。
我的 agent 会制定一个漂亮的计划,完美执行第一步,在第二步误解工具的返回值,然后在接下来的十二步中悄悄偏离路线。最可怕的是?系统从未察觉。它只是继续前进,自信地执行一个早已在很远之前悄然变错的计划。
**⚠️ 常见错误:**把 context engineering 等同于 vector database RAG。真正的 context management 要多得多——dynamic state injection、tool response summarization、strategic historical truncation。RAG 只是开始。
阶段 3:Harness Engineering(模型能持续采取正确行动吗?)
这就是事情开始变得有趣的地方。而且说实话,对于任何认为更好的模型就是答案的人来说,这多少有点令人谦卑。
Harness Engineering是围绕模型构建脚手架的学科——这些确定性系统负责监督模型的行为、捕捉它的失败、强制执行它的约束,并在它偏离路线时把它拉回正轨。
这个名字来自物理世界中的 harness:缰绳、安全系绳、控制基础设施。这正是它的含义。
改变我一切的心智模型:Agent = Model + Harness
下面这个来自 LangChain 的重新框定,解锁了我的思路:
Agent = Model + Harness
在你的代码库中,几乎所有让 agent真正能在生产环境中工作的东西——除了 foundation model API call 本身之外——都是 Harness。
我总是回到这个类比:想象一下派一名初级员工去主持一场关键客户会议。
- Prompting是告诉他议程:“打招呼,介绍产品,询问需求。”
- Context是把资料包交给他:“这是客户背景、价格表和会议目标。”
- Harness是其他所有东西:他随身携带的 checklist、会议中途必须与你进行的 check-in、录制的 transcript、如果他偏离脚本时的纠偏机制,以及会议报告的严格验收标准。
再好的 briefing 也无法弥补缺失的问责基础设施。
这个认识——前两个阶段帮助模型更好地思考,而 Harness Engineering 确保它可靠地行动——最终让我突破了 70%。通过重构 task decomposition、state management、critical step validation 和 failure recovery,我用同一个底层模型和同样的 prompts,把任务成功率推到了 95% 以上。
成熟 Harness 的六个架构层
Harness 不是单个文件,也不是一个巧妙的 wrapper。它是一种分层架构,每一层都处理不同类型的失败。我是这样理解它的:
第 1 层:Information Boundaries(认知范围)
模型在其即时上下文中“看到”的内容,几乎比任何其他因素都更能决定它的表现。
多余的数据不会让模型更聪明——只会让它失去焦点。更糟的是,当你把不同类型的信息(system rules、current task state、external evidence)混进一个无结构的 blob 中时,模型会丢掉约束。关键规则会变成噪声,模型不再关注它们。
Harness 必须明确地定义并分类模型看到的内容:它的角色、当前目标、成功标准,以及不同信息类型之间的结构化分离。
第 2 层:Tool System(执行能力)
没有 tools,LLM 只是一个文本预测器。有了正确的 tool system,它就变成了一个可以与真实世界交互的 agent。
但我早期犯过一个关键错误:给模型太多 tools。十五个带有完整文档的 tools 听起来很强大。实际中,它会分散注意力,导致模型 hallucinate 不存在的参数,或误用它几乎不理解的 APIs。
Harness 必须控制何时使用 tools,而不仅仅是哪些 tools 可用。它必须阻止模型在应该搜索时盲目猜测,也要阻止它在已经有答案时继续搜索。
而且这一点不可协商:永远不要把原始 tool outputs 直接回传给 LLM。一次 API call 返回的 50 项 JSON response 会污染你的 context。Harness 必须在工具返回结果触达模型之前,对其进行过滤、解析和总结。
第 3 层:Execution Orchestration(规划与路由)
LLM 经常失败,并不是因为它们缺少单项技能,而是因为它们无法把这些技能线性串联起来。它们会遭遇我称之为“意识流式”执行的问题——在步骤之间跳来跳去、跳过验证、在收集到所需全部信息之前过早生成输出。
Harness 会铺设严格的轨道:
Understand Goal → Assess Information → Fetch Missing Info → Analyze → Generate → Verify → Output
这不仅仅是脚手架。这是把项目管理责任从概率模型转移到确定性系统。模型不应该被迫决定以什么顺序做事。这个结构属于 Harness。
第 4 层:Memory and State(连续性)
一个无状态的 agent 每一轮都会失忆。没有显式的 state management,你本质上是在多步骤任务的每一步都从头开始一段新对话。
我学会了维护三种严格隔离的 memory 类型:
Current Task State——我们现在在哪一步?还有什么待处理?什么已经确认?
Conversational Intermediate Results——在本次 session 中我们已经得出了哪些结论?
Long-Term Memory / User Profiles——跨 sessions 持续存在的全局偏好和上下文。
第 5 层:Evaluation and Observability(自我感知)
⚠️ 曾经让我栽跟头的陷阱:把 task state 和 conversational history 混为一谈。结果就是一个无限增长、无结构的 context window,随着任务推进不断劣化模型表现。必须严格分离它们。
这一层是原始 agents 轰然崩塌的地方。它们生成输出,宣称成功,却没有机制知道输出是否真的正确。
一个评估自己工作的 agent,是一个带有深刻乐观偏差的 agent。它会把坏掉的代码宣称为可工作。它会在并没有回答实际问题时,把自己的回答评为令人满意。
Harness 需要独立的、自动化的验证机制。不是事后的人类 review——那太慢,而且无法扩展。自动化输出验证、集成测试环境、细致的 logging、metrics tracking 和 error attribution 都属于这一层。
系统必须持续向自己证明它的行动是正确的,而不是仅仅假设它们正确。
第 6 层:Constraints, Validation, and Recovery(韧性)
在生产环境中,失败是默认状态。APIs 会 timeout。JSON formats 会破裂。Search results 会不准确。一个没有 recovery mechanism 的 agent,就是一个每次出错都需要人类完整重启的 agent。
Harness 在这里需要三件事:
- Constraints:定义 agent 严格禁止做什么的硬编码规则。
- Validation:输出前和输出后的 gating checks(schema validation、format checks、constraint verification)。
- Recovery:Retry logic、fallback paths,以及回滚到最后一个已知稳定状态的能力。
隐藏的敌人:Context Anxiety
随着任务延伸到数十个步骤,会发生一些奇怪的事情。Anthropic 的研究人员将其命名为Context Anxiety。
当 context window 接近其限制时,模型开始丢失细粒度细节、忘记核心目标,并表现得仿佛急于完成任务。它们开始 hallucinate 尚未得出的结论。它们跳过验证步骤。它们给人的感觉——如果这个词合适的话——带着一种紧迫感,而这种紧迫感会让它们变得粗心。
天真的解决方案是 context compression:总结历史,注入 summary,然后继续。我试过。这确实减少了 token 数量,但实际上并没有重置模型的认知状态或注意力稀释。真正有效的解决方案是激进的:完全重启 agent。
Anthropic 将其称为Context Reflect。当 context 变得太大时,你取出压缩后的 summary,并把它交给一个完全新的 agent instance——干净的 context,没有累积的混乱。这与处理 memory leak 的原则相同:重启进程,而不是疯狂地 garbage-collecting。
类似地,我不再一开始就把整个 tool library 交给 agents。相反,Harness 实现了 progressive disclosure:最初,模型只看到最少的 tool stubs。当它表达出使用某个特定能力的意图时,Harness 会动态注入详细文档和参数 schemas。Context optimization 不是给模型更多信息——而是在它需要的时候,按需、准确地给它正确的信息。
将生成与评估分离:使自主性成为可能的架构
我遇到过的最重要的架构洞察之一,来自 Anthropic 构建真正自主 agents 的方式——这些 agents 能够在连续数小时没有人类 review 的情况下,生成完整、可工作的产品。
诀窍是严格的三方拆分:
- The Planner将模糊的人类请求转化为严谨的工程规格。
- The Generator接收这些规格,并逐步执行它们。
- The Evaluator作为一个完全独立的 QA 实体——在功能上与 Generator 解耦。
Evaluator 不只是阅读 Generator 的代码。它会与渲染后的输出交互。在 UI 工作中,它会点击界面、检查视觉布局、验证交互状态。它验证的是真实世界,而不是 Generator 对真实世界的表征。
OpenAI 甚至更进一步。当 agents 编写代码的速度超过人类工程师 review pull requests 的速度时,他们为 agent 构建了一个完全自动化的 CI/CD pipeline。agent 在隔离的 sandboxes 中运行自己的代码,用 headless browsers 捕获 screenshots,读取自己的 execution logs,并不断迭代,直到它能够验证 deployment 是正确的——整个过程中没有人类参与。
“Done” 不再意味着“我完成了文本生成”。它意味着“我运行了代码,review 了 logs,发现了一个 bug,修复了它,并在 sandbox 中验证了 deployment。”
总结
以下是我从构建生产级 AI 系统中学到的一切所提炼出的真相:
Foundation model 的智能定义了它在 benchmark leaderboard 上的理论上限。Harness Engineering 的鲁棒性决定了这种智能是否真的能在混乱的真实世界中生存、恢复并交付价值。
模型不是你的瓶颈。超过某个点之后,模型从来都不是你的瓶颈。
70% 成功率与 95% 成功率之间的差距——demo 与 product 之间的差距——完全存在于 Harness 之中。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~