Cloudflare 如何用 AI 执行工程标准

Cloudflare AI Bl16 天前

背景:工程规范分散带来的问题

过去四个月,Cloudflare 的 AI 代码评审器标记了近 25 万个偏离工程标准的情况,并阻止了 16,000 次合并。其技术方案评审 Agent 也在实现开始前,依据同一套标准评审了接近 600 份技术设计。

这些系统背后依赖的是 Cloudflare Codex:一套面向人类工程师和 AI Agent 的共享工程规范体系。

在 Codex 之前,Cloudflare 的开发指导分散在正式文档、仓库文件、聊天记录以及个人经验中。工程师常常需要花时间寻找规范,即便找到了,也不一定能判断这些内容是否仍然有效、权威,或适用于当前场景。

随着组织规模扩大,这种模式越来越难以维持:

  • 没有工程师能读完所有标准;
  • 评审者也无法可靠检查每一项要求;
  • 人员流动会导致机构知识难以传承;
  • 规范如果不能被持续暴露和执行,不同项目之间就会逐渐出现偏差。

Cloudflare 因此将这套知识重建为 Codex:一组受治理的工程标准,Agent 可以在工作发生的具体环节检索并应用它们。

Codex 的组织方式

Codex 被划分为多个领域,覆盖 Cloudflare 关注的工程主题,包括:

  • 架构相关领域,例如前端、控制平面;
  • 跨领域关注点,例如安全性、可靠性;
  • 具体编程语言,例如 TypeScript、Rust;
  • 其他工程实践领域。

每个领域由一名负责人维护,负责相关文档的内容、统一性和整体质量。

Codex 的标准采用 RFC 格式。要求使用 RFC 2119 中定义的 SHOULDMUST 关键词。每份 RFC 还需要包含前置信息,用来记录领域、RFC 状态等元数据。

具备相关兴趣和领域能力的员工可以通过合并请求提交 RFC 提案。提案会经过多轮反馈,并由越来越广泛的评审者参与审阅。领域负责人最终批准后,RFC 会成为 Codex 的一部分,并发布到内部站点。

从“批准”到“强制执行”

Codex 中的 RFC 获批后,相关客户端和 Agent 就可以立即消费这些标准,并在代码、配置或文档中标记违反规范的情况。

但系统不会马上基于这些标准进行阻断。只有当 RFC 从 approved 状态进一步提升到 enforced 状态后,Agent 才会依据其中的要求执行阻断。

这种分阶段机制给团队留下了吸收新要求的时间,也适应了某些标准在强制执行前还需要额外工程支持的情况。

为什么不直接把全部规范塞给大模型

一种简单做法是把整个 Codex 原样提供给大语言模型。但 Cloudflare 已经积累了 60 多份 RFC,且数量还在增长。直接把所有内容放进上下文窗口,会对模型上下文容量造成压力,并影响结果质量。

为此,Cloudflare 使用专门的 Agent 自动提取并压缩 RFC 中的 SHOULDMUST 语句,将其整理成专门的 JSON 结构,并补充元数据,以支持懒加载发现和渐进式披露。

每条规范语句都会获得一个稳定的 slug 标识符。即便对应 RFC 更新,标识符也会保持不变。这让同一条规范可以跨系统长期追踪,有助于监控、分析和例外处理。

Cloudflare 最初曾把这些语句提取为更简洁的 Markdown 文件,后来迁移到更丰富的结构化格式,使 Agent 能更准确地筛选所需内容。后续计划还包括加入更多元数据,例如某条规范适用于软件开发生命周期中的哪个阶段:设计、实现或运行时。

Codex 的三个主要使用场景

Cloudflare 已经在日常工程流程中使用 Codex。文中重点介绍了三个 Agent:AI 代码评审器、技术方案评审器和事故报告评审器。

1. AI 代码评审器

AI 代码评审器会从多个维度评估合并请求,其中包括是否符合 Codex。

每次评审时,Agent 会检索相关 RFC,并解析 Codex 中的规范语句。只有当模型或协调器需要更多上下文时,才会加载完整 RFC 正文。多数情况下,提取出的规范语句已经足以解释发现的问题。

SHOULDMUST 的区别,以及 RFC 当前状态,会决定评审器如何响应:

  • 来自已批准 RFC 的发现是非阻断建议;
  • 当 RFC 已进入强制执行状态时,未满足的 MUST 要求会导致评审器拒绝批准,或根据严重程度阻止合并。

自 Codex 启用以来,AI 代码评审器已经标记接近 230,000 个违规情况。其中近 16,000 个导致审批被保留,这些问题对应的是已强制执行 RFC 中的 MUST 语句。

2. 代码评审的补充方式

一次 AI 代码评审通常需要几分钟,因为它涉及协调器框架和多个子 Agent 执行。虽然这种等待通常有价值,但工程师也反馈了延迟和修复反馈周期变长的问题。

Cloudflare 因此增加了两种补充方式:

  1. 自定义 linter 配置包
    对于可以机械化验证的语言级 Codex 要求,Cloudflare 提供与 Codex 规范对齐的自定义 linter 配置包,让问题可以在毫秒级暴露。TypeScript 是首个获得 Codex linter 支持的语言,并标准化使用 oxlint。Rust 项目的 linter 正在开发中,Go 也计划随后支持,以覆盖 Cloudflare 最常用的语言。

  2. 本地 CLI 运行 AI 代码评审器
    为减少 CI 环节带来的等待,Cloudflare 支持通过命令行在本地运行 AI 代码评审器。该工具匹配 CI 中的协调器功能,基于自动确定的 diff 集合运行同样的 Agent,并在终端中展示结果。

Cloudflare 认为 linter 对几乎所有开发者和代码库都有帮助,而 CLI 更适合偏好本地工作流的工程师。

3. 技术方案评审器

Cloudflare 工程师在实现前通常会撰写设计文档和技术规格。Codex 中有相当一部分内容与设计、架构和技术评审相关。为了在实现开始前发现架构问题,Cloudflare 构建了技术方案评审器。

该 Agent 会发现技术规格文档,并根据相关 Codex 要求进行评估。

其运行在 Cloudflare Developer Platform 上:

  • 使用 Cloudflare Worker 执行;
  • 使用 D1 存储结果和状态;
  • 通过 AI Gateway 路由模型请求;
  • 通过 Cron Trigger 扫描新的技术规格。

评审器会先按与技术规格相关的领域和章节过滤 Codex,例如排除语言特性和偏实现层面的 RFC。随后,多个提示词会指导模型如何评估并组织结果。

评审发现会按严重程度评级,评级受到 SHOULDMUST 关键词影响,同时也包括通用质量建议和架构建议。评审完成后,系统会在规格文档中留下备注,并链接到自定义仪表盘以查看详情。

自 2026 年 5 月初以来,接近 600 份唯一的开放技术规格被评审。包括按需触发或因文档变更触发的重复评审在内,Cloudflare 跟踪到超过 3,200 次评审调用。绝大多数发现为“major”(65%)或“minor”(29%),而“critical”占少数(6%)。

Cloudflare 计划进一步集成技术方案评审器,例如直接在规格文档上发表评论、嵌入人与 Agent 的对话以影响评估,以及将高影响提案标记给人工进行额外评审。

4. 事故报告评审器

事故报告评审器将同样的方法应用于事故报告,也就是 postmortem。

除了检查报告是否完整,它还会评估报告是否清楚解释了发生了什么、识别了促成因素、记录了解决方案,并提出有意义的后续行动。这些期望由一份专门的 Codex RFC 定义。

事故报告评审器使用与技术方案评审器相同的 Developer Platform 构建模块。这种共享架构正在成为 Cloudflare Codex Agent 的常见模式。

自 2026 年 5 月以来,该评审器已经评估了 200 多份事故报告,并发现了一些缺口,例如:

  • 缺少后续行动项;
  • 时间线不完整;
  • 遗漏检测信号。

在这些报告中,93% 涉及低影响、仅内部影响或预防性声明的事故。对于高严重级别事故,Cloudflare 已将该评审器作为集中审查流程中的强制环节;所有发现被处理前,报告不会被视为完成。

后续方向

Codex 已经支持代码、技术设计和事故报告的 Agent 评审。Cloudflare 计划将这种模式扩展到整个软件开发生命周期,让 Agent 在设计、实现和运营阶段持续、一致地暴露问题。

更长期的目标是让 Agent 不仅识别问题,也能以越来越高的自主性提出修复方案。不过,工程师仍然负责审查和批准这些变更。

Cloudflare 还在将 Codex 扩展到工程以外的领域。产品、安全、合规、信任与安全等团队开始加入自己的标准,使 Agent 能够根据超出设计和实现范围的要求来评估工作。

评论

请登录后发表观点

暂无数据