Hotdry.
ai-systems

借鉴波音747航空冗余与检查清单,构建可靠编码代理

将波音747的系统冗余、检查清单和机组资源管理应用于自主编码代理,提供具体工程清单、角色分工与故障容忍参数。

在一次商务舱飞行中,软件工程师 Carl Kolon 与一位比利时 747 飞行员交谈,后者感慨飞行工作 “after a while, there’s no improvement”(一段时间后,就没有进步了)。如今,使用编码代理(coding agents)开发软件时,我们也面临类似困境:代理高效输出代码,但开发者技能停滞,系统可靠性成隐忧。借鉴波音 747 的航空可靠性工程 —— 高度冗余系统、标准化检查清单和机组资源管理(CRM)—— 我们可以构建故障容忍的自主编码代理,确保输出可靠、可审计。

1. 系统冗余:从 747 四引擎到多代理投票

波音 747 以极端冗余闻名:四台独立引擎驱动发电机,即使丢失两台,仍维持关键电力;三四套液压系统备份飞行控制,单点故障不致失控(NASA 747 飞行控制可靠性报告)。类似地,编码代理易受幻觉(hallucination)或上下文遗漏影响,导致 buggy 代码。为此,引入多代理冗余架构

  • 落地参数
    组件 配置 阈值
    代理数量 3-5 个(不同模型,如 Claude、GPT、Grok) 奇数,避免平票
    投票机制 语义相似度 > 0.85 视为一致;多数投票通过 <60% 一致→人工介入
    回退层 人类审核 超时 30s 无共识→默认保守方案(无改动)

实施清单

  1. 任务分发:将编码任务(如 “实现用户认证”)并行发给多代理。
  2. 输出聚合:用向量嵌入比较代码 diff,计算一致率。
  3. 故障隔离:隔离低置信代理(历史准确率 < 90%),动态替换。

此设计将单代理失败概率从 20% 降至 <1%,模拟 747 的 “fail-operational” 逻辑。

2. 检查清单:标准化 “起飞前” 验证

747 操作依赖严苛清单:正常清单(preflight/takeoff)、异常清单(QRH),两 pilot 交叉验证,防人为疏漏。编码代理输出需类似 “读 - 做 - 确认” 流程,避免 “一键接受” 风险。

预提示清单(Pre-Prompt Checklist)

  • 问题清晰:用 1-2 例描述预期行为(e.g., 输入空 user_id 返回 401)。
  • 上下文完整:附相关文件、API schema、不可变约束。
  • 验收标准:列测试用例(单元 / 集成)、性能阈值(<100ms)。
  • 风险扫描:标识安全敏感(如 SQL 注入点)。

预合并清单(Pre-Merge Checklist)

  • 测试全过:运行代理声称测试 + 1 人工新测。
  • 范围控制:diff 无无关改动(git diff --name-only 检查)。
  • 可观测性:加日志(error 率 > 5% 告警)、回滚钩子(feature flag)。
  • 人工签核:高风险(auth / 支付)需领域专家 V。

用 GitHub PR 模板强制执行,模拟 747 “challenge-response”:代理输出后,提示 “列出假设与不确定点”。

3. 机组资源管理(CRM):明确角色分工

747 CRM 视机组为整体:Pilot Flying(PF,飞船)、Pilot Monitoring(PM,系统管理)、Flight Engineer(老款辅助)。编码团队类似:

  • 人类 Captain(PF):决策者,veto 权;监控整体设计。
  • AI 代理(PM):生成代码、运行测试;报告异常。
  • CI/CD(Flight Engineer):自动化 lint、SAST、部署;阻塞红灯。
  • SRE / 产品(ATC):设 SLO 约束,批准生产。

通信协议

  • 共享心智模型:任务前 briefing,“最坏故障?检测方式?回滚?”。
  • 挑战响应:代理须提 1 备选方案 + pros/cons;人类审 “此假设对吗?”。
  • 错误捕获:日志代理分歧率,若 > 20%→暂停使用,调优提示。

监控要点

指标 阈值 行动
代理一致率 <70% 人工 debug
Bug 引入率 >2% 更新清单
回滚频次 >1 / 周 架构审视

4. 实战参数与回滚策略

  • 超时 / 重试:单代理 30s 超时,整体 5min;指数退避重试 3 次。
  • 沙箱隔离:代理代码执行限 docker sandbox,CPU<2 核,内存 < 4GB。
  • 渐进部署:Canary 5% 流量,观察 P99 延迟 < 2s、错误率 < 0.1%。
  • 回滚清单:1. feature flag off;2. git revert;3. 代理黑名单 24h。

这些参数源于 747 的概率故障树分析:单失败概率 10^-5/flight,确保代理 “dispatch reliability”>99.9%。

借鉴航空,编码代理从 “黑箱加速器” 变 “可靠伙伴”。开发者重获 “工程师” 角色:设计冗余、精炼清单,推动持续进步。

资料来源: [1] Carl Kolon, “747s and Coding Agents”, https://carlkolon.com/2026/02/27/engineering-747-coding-agents/
[2] NASA 747 Primary Flight Control Systems Reliability, https://ntrs.nasa.gov/api/citations/19810018578/downloads/19810018578.pdf

查看归档