谷歌驾驭工程:破解AI智能体量产难题

近期引发行业广泛讨论的驾驭工程实践,究竟在解决哪些核心痛点?当前人工智能领域正面临一个显著的困境:大模型的能力持续迭代,参数与算力投入不断提升,但绝大多数企业的AI智能体始终停留在演示与试用阶段,难以真正落地到生产环境。
多项行业数据印证了这一现状:市面上超过95%的AI智能体永远无法正式投产,问题并非模型本身的智能不足,而是行业长期过度关注模型性能,忽略了智能体运行所需的整套管控、约束、反馈与迭代工程体系。
2026年2月,一系列标志性行业实践集中出现,彻底扭转了这一认知,正式确立了驾驭工程这一年度核心AI工程范式。当月,多家头部科技企业的创始人与工程师先后提出关键工程思想:智能体纠错不应依赖临时提示词修补,而要通过系统化设计,让每一次错误都被机制化根治,实现永不复现;同时有团队仅用五个月,零手写代码完成百万行规模生产级项目,人类仅负责设计与构建AI运行环境,由智能体自主完成全流程开发。
一连串实践共同证明:AI智能体的上限,早已不由模型单一决定,而是取决于外围工程体系。由此行业形成全新核心公式:智能体 = 模型 + 挽具。LangChain与相关基准测试数据直观印证了这一点:同一模型在不同挽具体系下,排名实现跨越式跃升,性能分差最高可达43.64分。
所谓驾驭工程,就是一套包含前馈指南、传感反馈、智能体循环、持久化记忆、权限安全管控、全链路可观测的六层底层基建,并依靠棘轮原则持续迭代,将每次故障固化为系统能力,让智能体越用越稳。
AI工程的三个发展阶段
行业在2023至2024年将精力投入到提示词优化:措辞、示例、思维链。2025年,重心转向上下文系统的设计:RAG、MCP、记忆、检索。到2026年2月,从业者们汇聚共识,形成了包容前两者的第三门学科:驾驭工程。
后一个时代对前者实现了向下兼容与范式跃升:挽具不仅涵盖了上下文管道与提示词,还纳入了验证机制、权限控制、可观测性与状态持久化。提示工程塑造模型说什么,上下文工程塑造模型看到什么,而驾驭工程塑造模型能做什么、什么能在失败中存活、什么被允许发生,以及什么构成成功的完成。
| 时代 | 关注点 | 优化对象 | 局限性 |
|---|---|---|---|
| 提示工程(2023-24) | 单轮对话 | 措辞、示例 | 仅限一次交互 |
| 上下文工程(2025) | 系统上下文 | RAG、记忆、检索 | 模型能看到什么 |
| 驾驭工程(2026) | 完整环境 | 执行、安全 | 整个运行时 |
本文写给已经在使用AI智能体、并希望它们能够可靠运作而无需持续监督的工程师、运营者、创始人与小团队。这套架构适用于编程智能体、研究智能体、运营智能体,以及任何需要大语言模型自主行动的工作流。
核心公式:智能体=模型+挽具
前沿AI实验室构建的是内层挽具:内置于基础模型中的基础安全层、原生工具调用能力与上下文窗口。而产品团队真正的工程护城河在于外层挽具:由团队围绕模型构建的定制化配置、环境路由、测试框架与场景化准则。本手册聚焦于外层挽具。
固定模型不变,只更换挽具。同样的模型在相关基准测试上的得分从30.91%跳升至74.55%,43.64分的差距完全归因于挽具,这比大多数模型升级所能带来的增益还要大。
| 来源 | 模型 | 基准 | 改动前 | 改动后 | 差值 |
|---|---|---|---|---|---|
| Masood | Claude Sonnet 4.5 | GAIA | 30.91% | 74.55% | +43.64分 |
| LangChain | 同一模型 | Terminal Bench | 第30名 | 第5名 | +25名 |
| Hashline | 16个大模型 | 编程基准 | 基线 | 有提升 | 仅靠挽具 |
| 头部AI团队 | 智能体 | 生产环境 | 0行 | 100万行 | 零手写 |
第一层:指南——前馈式行为规范
指南是智能体在开始工作前阅读的指示,属于前馈控制:在执行发生之前塑造行为。主要的指南文件是AGENTS.md、CLAUDE.md和.cursorrules,每一行都代表一次被转化为永久预防机制的过往故障。
指南应包含可执行的动作和可观测的判断标准,而非励志性的语言。将“做充分的研究”替换为具名信息源、停止规则与引文要求;将“写出好代码”替换为具体的检查器命令、测试命令与具体模式。
棘轮原则
相关工程方法论创造了一种棘轮效应:每一次故障都会永久性地改进系统。六步循环如下:(1)智能体犯错。(2)识别故障类别,而非表面症状。(3)确定最强有力的修复层:指南、传感器、工具或权限。(4)将修复方案编码入系统。(5)验证其能防止复发。(6)监测是否出现回退。
一次提示词补丁只能修复一次对话;一条指南规则能修复未来的每一次运行;一个传感器能自动捕捉整个错误类别;一个环境约束能让该错误在结构上变得不可能发生。
指南卫生与组织记忆
指南会不断累积,若无维护,它们会变得相互矛盾、冗余或过时。对指南文件进行版本管理,每月审查一次,移除已由传感器自动执行的规则,按类别分组规则,并为每条条目标注日期,以便追溯何时添加、为何添加。一份有200行未标注日期的指南文件不是挽具,而是技术债务。
指南文件不仅是为智能体准备的,它是关于系统如何运作、过去出现过什么故障、以及什么绝不能再发生的编码化知识。新团队成员阅读AGENTS.md,便能立即理解各项约束。当一名工程师离职时,他们的修正意见仍会保留在指南文件中。内部实践将指南文件视为记录系统,是关于智能体在该项目中应如何行事的主要真相来源,当指南与对话内容发生冲突时,指南优先。
没有指南的代价
若没有指南文件,每一次新会话都从零开始。智能体必须仅凭代码库本身来推断构建系统、编码模式、被禁止的操作和项目结构。它会重犯上周才被纠正的错误,会使用上月才被禁止的模式,会修改本应只读的文件。在对话中做出的每一次纠正,都会随着会话结束而消失。而指南文件正是使这些纠正变得永久的关键。
项目:[名称] 语言:[主要语言] 构建:[准确的构建命令] 测试:[准确的测试命令] 检查:[准确的检查命令] 规则: - 未经询问不得修改 /config - 每次代码变更后运行测试 - 针对[某种情形]使用[某种模式] 反模式: - [具体的既往故障,注明日期] - [其他已观察到的故障模式]
第二层:传感器——反馈式质量校验
传感器在执行之后验证输出,属于反馈控制:检测指南无法预防的问题。前馈式指南与反馈式传感器的结合,构成了使持续改进成为可能的「驾驭回路」。
计算型传感器在每一次变更时都会运行,比如代码检查器、类型检查器、单元测试套件,它们速度快、成本低且结果确定。推理型传感器增加了语义判断能力,但成本更高,且返回结果具有非确定性,比如大模型评判器、AI代码审查。设计原则是优先使用计算型传感器,只在无法用确定性规则表达的检查项上添加推理型传感器。
| 类型 | 示例 | 速度 | 成本 | 确定性 |
|---|---|---|---|---|
| 计算型 | 代码检查器、类型检查器 | 快 | 免费 | 确定性 |
| 计算型 | 单元测试套件 | 快 | 免费 | 确定性 |
| 计算型 | 架构验证器 | 快 | 免费 | 确定性 |
| 推理型 | 大模型评判器 | 慢 | 昂贵 | 非确定性 |
| 推理型 | AI代码审查 | 慢 | 昂贵 | 非确定性 |
自我验证模式
最强大的挽具模式是让智能体能够访问自身的传感器。每一步之后,智能体运行预定义的测试套件,将失败信息连同错误文本回传至循环中。这不是模型在评判自己的质量,而是模型执行外部的确定性检查,并根据结果采取行动。
def verified_step(agent, task, sensors):
result = agent.execute(task)
for sensor in sensors:
verdict = sensor.check(result)
if not verdict.passed:
result = agent.fix(result, verdict)
if not sensor.check(result).passed:
return escalate(task, verdict)
return result
传感器的经济学与覆盖测试
一条代码检查规则的运行成本几乎为零,却能永久性地防止一整类审查意见。一项验证API响应结构的测试只需数毫秒的成本,就能防止集成崩坏。而一个评估“代码质量”的大模型评判器则要消耗token,且返回非确定性判定,应优先投资于计算型传感器。
只有当检查需要某种确定性规则无法捕捉的语义理解时,例如客户邮件的语气、法律摘要的准确性、设计决策的质量,才添加大模型评判器。当你这样做时,应将其视为一种昂贵的咨询性信号,而非一道关卡。记录其判定,衡量其与人工审查的一致性,一旦某种模式清晰到足以编码为规则,就用确定性检查将其取代。
在让任何智能体工作流无人值守运行之前,请核实:智能体能否在无人工检查的情况下检验自身的输出?每个关键输出是否至少有一个计算型传感器?传感器结果是否被记录以供趋势分析?在智能体行为改变的同时,传感器本身是否保持稳定?是否存在某种静默的回归可能绕过所有传感器直达用户?若任何一个问题的答案为“否”,就应在启用无人值守运行之前补上缺失的传感器。
第三层:智能体循环——闭环执行引擎
智能体循环是位于挽具中心的执行引擎。它不是单次模型调用,而是一个有边界的循环:规划行动、用工具执行、依据传感器验证结果、修复失败之处,然后决定推进或升级处理。每一步都是可观测的,每一次重试都被计数。
def agentic_loop(task, agent, sensors, budget):
plan = agent.plan(task)
for step in plan.steps:
for attempt in range(budget.max_retries):
result = agent.execute(step)
verdict = verify(result, sensors)
if verdict.passed:
break
if not verdict.retryable:
return escalate(step, verdict)
else:
return escalate(step, "预算耗尽")
return synthesize(plan.results)
| 边界 | 目的 | 默认值 |
|---|---|---|
| 每步最大重试次数 | 防止无限循环 | 3次尝试 |
| 最大实际运行时间 | 防止执行失控 | 30分钟 |
| 最大token预算 | 控制模型成本 | 10万token |
| 最大财务成本 | 防止账单意外 | 每任务5美元 |
| 最大工具调用次数 | 防止工具滥用 | 50次调用 |
| 停止条件 | 返回最可行的产出物 | 始终明确定义 |
当任何预算耗尽时,循环应返回当前最可行的产出物:已完成的工作、未解决的问题,以及停止的原因。它绝不能用一个流畅的最终答案来掩盖部分失败。
升级处理与后台智能体原则
一个能正确升级处理的智能体,比一个自信给出错误答案的智能体更有价值。升级处理的信息包应包含:需要人类做出的决策、推荐的方案、已经测试过的替代方案、等待所付出的成本,以及若无人响应时最安全的默认行动。
相关行业实践中提到:“我努力让智能体时时都在做点什么。如果我在写代码,我希望有智能体在做规划;如果智能体在写代码,我希望我自己在做审查”。循环在正常执行期间不应需要人类关注,人类提供意图、审查结果并处理升级事项,二者之间的一切,都是挽具的工作。
第四层:记忆与状态——持久化任务上下文
每一次模型调用都以空白的上下文窗口开始,挽具负责重建相关的状态。这就是根本的不对称性:模型没有持久记忆,挽具通过明确的状态管理来提供连续性。
| 层级 | 持久化内容 | 存活场景 | 实现方式 |
|---|---|---|---|
| 上下文窗口 | 当前对话轮 | 无 | 对话缓冲区 |
| 记事本 | 当前任务 | 工具调用 | plan.md、todo.md |
| 产出物存储 | 跨会话 | 重启 | Git、文件系统、对象存储 |
| 决策日志 | 跨会话 | 重启 | decisions.jsonl |
| 知识图谱 | 永久 | 一切 | 实体关系存储 |
文件系统即记忆
最简单的持久化记忆是文件系统。一份plan.md文件、一份decisions.md日志、一份progress.json检查点。智能体在会话开始时读取它们,并在每个有意义的步骤之后更新它们。对于大多数智能体工作流而言,这比向量数据库更廉价、更简单、更可靠。文件即记忆,产出物即状态。
def checkpoint(task, state, artifacts):
with open(f"state/{task.id}.json", "w") as f:
json.dump({
"task_id": task.id,
"status": state.status,
"completed_steps": state.completed,
"artifacts": [a.path for a in artifacts],
"last_updated": datetime.now().isoformat()
}, f)
长时运行智能体的压缩合并与记忆区别
当一个智能体运行数小时后,上下文窗口就会被填满。相关工程指南将服务端压缩合并描述为一种关键的挽具基础机制:概括旧的上下文,保留近期的行动与决策,并将工作集保持在上下文预算之内。压缩合并本身是一次模型调用,但何时压缩、压缩什么的决策属于挽具,而非智能体本身。
记忆记录发生了什么,指南定义应该发生什么。当某条规则对未来每一次运行都至关重要时,不要指望智能体能记住一次旧对话中的一次纠正。要将稳定的偏好、政策与流程升格为明确的指南文件条目,而将临时性事实、任务相关的讨论以及探索性推理留在记忆或任务记事本中。
恢复测试
在一个多步骤任务的中途关闭智能体会话,然后重新打开它。智能体应该读取其检查点,识别最后完成的步骤,并从下一步继续,而无需重复已完成的工作,也无需要求人类重新解释任务。如果它做不到这一点,说明记忆层不够充分,需要添加检查点文件。
第五层:权限与预算——安全边界与资源管控
模型无法约束自己,它会使用任何它有权访问的工具,写入任何它能够触及的文件,发送任何它能够组织出的消息。权限不是模型的属性,而是挽具的属性,挽具是主要的安全边界。
允许读取:src/**, tests/**, docs/** 允许写入:src/**, tests/** 允许执行:npm test, npm run lint 须人工授权:git push, npm publish, deploy 禁止:rm -rf, DROP TABLE, send_email 速率:每任务最多20次写入 成本:每任务最多5美元 超时:每任务30分钟
| 行动 | 默认 | 原因 |
|---|---|---|
| 读取源文件 | 允许 | 可逆的观察行为 |
| 写入项目文件 | 允许并记录 | 可借助git恢复 |
| 运行测试/检查器 | 允许 | 无副作用 |
| 推送到远程仓库 | 须人工授权 | 外部可见性 |
| 部署到生产环境 | 仅限人工接管 | 难以逆转 |
| 发送外部消息 | 须人工授权 | 影响声誉 |
| 删除数据或文件 | 仅限人工接管 | 可能不可逆 |
提示注入改变了风险模型
一个自主运行的智能体会阅读不受信任的内容:邮件、网页、文档、代码仓库中的问题条目、用户提交的文本。嵌入在内容中的恶意指令绝不能扩展智能体的权限、改变其系统策略、重定向机密信息,或触发外部行动。挽具必须在每一个任务中,将可信的指令与不可信的数据区分开来。
四个预算维度与最小权限原则
四个维度支配着每一个智能体的行动:范围,即哪些账户、工具、文件与操作是可用的;速率,即每个时间间隔内允许的最大写入、提交或外部调用次数;可逆性,即该行动能否被安全回滚,不可逆的行动需要人类批准;可见性,即谁会被通知,以及为审计而保留哪些证据。在第一次无人值守运行之前,就要将这四者全部编码进系统。
def policy_gate(action, target, task):
decision = policy.evaluate(action, target)
if decision == DENY:
log_denial(action, target, task)
return BLOCKED
if decision == ASK:
return request_human_approval(action, target)
if rate_limit.exceeded(action):
return trip_wire(action, task)
execute(action, target)
append_audit_record(action, target, result)
return COMPLETED
只给智能体完成任务所需的最小环境。如果智能体只需要读取源文件并运行测试,那就只授予恰好这些权限。除非任务明确要求,否则不要授予对配置文件的写入权限、对外部服务的网络访问权限,或安装软件包的权限。每一项不必要的权限,都是提示注入的攻击面,也是智能体错误的爆炸半径。
第六层:可观测性——全链路调试与监控
生产级挽具需要遥测数据。没有它,一个“更快”的智能体可能表面上看起来成功,实际却悄然遗漏了重要的工作。必需的遥测数据包括:开始/结束时间戳、工具动作与结果、所用的指南版本与传感器、尝试次数与成本、产出的产出物,以及审批与升级处理记录。
| 熔断警报 | 触发条件 | 意味着 | 应对方式 |
|---|---|---|---|
| 外部写入激增 | 权限漂移 | 冻结写入 | 冻结写入 |
| 同一错误重复3次 | 指南或传感器存在缺口 | 升级处理 | 升级处理 |
| 成本超过平均值2倍 | 循环失控 | 暂停并检查 | 暂停并检查 |
| 传感器通过率下降 | 质量回退 | 回滚 | 回滚 |
| 联系了新的域名 | 范围蔓延 | 阻断并告警 | 阻断并告警 |
| 耗时超过3倍 | 智能体卡死 | 超时 | 超时 |
| 指标 | 定义 | 方向 |
|---|---|---|
| 完成率 | 已验证运行数 / 已启动运行数 | 上升 |
| 返工率 | 需人工修正的运行数 | 下降 |
| 升级率 | 每任务人工提醒次数 | 下降 |
| 恢复时间 | 从故障到安全状态所需分钟数 | 下降 |
| 单任务成本 | 每个已验证结果所需的token+工具成本 | 下降 |
| 指南增长量 | 每周新增规则数 | 递减 |
真正重要的指标
不要计算模型调用次数、token数或消息数。要计算那些未经人工干预且仍产出可接受证据的已完成任务数。当完成率上升,而返工率、不必要的审批、单个已完成任务的成本以及恢复时间均下降时,说明系统在改善。这一指标能防止一个视觉上令人惊艳的智能体掩盖巨大的人力协调成本。
可观测性作为调试基础设施与成本归因
当智能体产出错误结果时,第一个问题是:错在哪里?没有结构化日志,答案就需要重放整个对话。有了可观测性,你就能追溯到那个返回了异常数据的具体工具调用、那个本该失败却通过了的具体传感器,或那个智能体忽略了某条指南规则的具体步骤。可观测性不是负担,它是调试基础设施。
按每任务而非每日统计成本。每日花费50美元这个数字,若不知道究竟完成了100个任务还是2个任务,就毫无意义。每个已验证结果的成本才是揭示挽具是否在改善的指标。当一条新的指南规则将重试次数从3次减少到1次时,单任务成本就下降了60%。当一个新的传感器捕捉到了以前需要人工审查的错误时,每个已验证结果的成本会进一步下降。当成本削减超过维护挽具的成本时,挽具就实现了自我偿还。
- 你能识别出本周成本最高的任务类型吗?
- 你能识别出哪个传感器捕捉到的错误最多吗?
- 你能识别出哪条指南规则被违反的次数最多吗?
- 你能从头到尾追溯任何一个已完成的任务吗?
- 如果智能体开始出错,你能在一小时内知道吗?
改进循环:棘轮机制下的持续优化
每一个在强层级上被修复的故障,都会减少后续运行中的故障总数。这就是棘轮机制创造的良性循环。
| 故障类别 | 弱修复方式(应避免) | 强修复方式(应优先) |
|---|---|---|
| 已知的坏模式 | 提示词提醒 | 代码检查规则(传感器) |
| 缺失上下文 | 延长对话 | 指南文件条目 |
| 错误的工具使用 | 对话中纠正 | 权限边界 |
| 质量漂移 | 每次运行人工审查 | 自动化测试套件 |
| 状态丢失 | 重新解释一切 | 基于文件的检查点 |
| 不安全的行动 | 期望不再发生 | 能力预算+拒绝规则 |
| 成本超支 | 人工监控 | Token预算+熔断警报 |
「提示词引导行为。环境预防的是整整一类故障。」
在挽具生命周期的早期,由于大量常见错误正在被发现,指南增长速度很快。随着最频繁出现的故障类别被覆盖,增长速度会下降。一个成熟的挽具,每周或许只增加一条新规则,而不是每天增加五条。这种增长率的下降,正是挽具正在发挥作用的最清晰信号。
六步工程循环与审查约束转化
当智能体出错时,遵循以下循环:(1)用完全相同的输入重现故障。(2)对根本原因进行分类:缺失的指南、缺失的传感器、权限缺口、状态丢失,还是可观测性盲点。(3)确定修复该问题应归属的最强层级。(4)在该层级实施修复。(5)针对最初的失败案例验证修复效果。(6)运行回归测试套件,确保没有破坏任何既有能力。不要跳过任何一步。跳过第1步意味着你可能修复的是一个幻影问题;跳过第6步意味着你可能在修复一个问题的同时破坏了另外三个。
相关团队的经验提到:当人工审查员对同一件事写下超过三次相同的审查意见时,该意见就应该转化为一种结构性约束。演进路径是:第一次出现,添加一条指南规则;第二次出现,验证该指南规则是否确实被读取;第三次出现,将其转化为一个能阻止智能体产出违规输出的传感器。第四次出现的情况,永远都不应该发生。
| 层级 | 示例 | 可靠性 | 添加成本 |
|---|---|---|---|
| 记忆 | 对话中的既往纠正 | 低 | 零 |
| 提示词 | 任务指令 | 低-中 | 数分钟 |
| 指南 | AGENTS.md规则 | 中 | 数分钟 |
| 传感器 | 自动化测试 | 高 | 数小时 |
| 环境 | 权限、架构、CI | 最高 | 数小时至数天 |
七天快速落地路径
只有在每一层证明可靠之后,才增加下一层。这是构建挽具的基本节奏。
| 天 | 构建内容 | 通过测试 |
|---|---|---|
| 1 | 编写含构建/测试/检查命令的AGENTS.md | 智能体能正确运行三者 |
| 2 | 从故障中添加3条指南规则 | 智能体避免全部3种反模式 |
| 3 | 添加首个计算型传感器 | 智能体在每次变更后运行测试 |
| 4 | 接入智能体循环+重试预算 | 智能体先重试,再升级处理 |
| 5 | 添加基于文件的状态检查点 | 智能体在重启后能恢复 |
| 6 | 设置权限+成本预算 | 智能体无法超出范围 |
| 7 | 结构化日志+熔断警报 | 在模拟激增时触发熔断警报 |
第1-2天:先做指南
创建一份具备最小可行内容的指南文件:项目名称、语言、准确的构建/测试/检查命令,以及从已知故障中提炼的三条规则。运行智能体三次,每一次故障都变成一条新的指南规则。此时还不要添加传感器。

