[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-cloudflare-ai-code-review-ci-orchestration-en":3,"article-related-cloudflare-ai-code-review-ci-orchestration-en":35,"series-industry-96546546-c8c3-4687-863a-91af4f974e94":84},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":27,"views":31,"created_at":32,"published_at":33,"topic_cluster_id":34},"96546546-c8c3-4687-863a-91af4f974e94","cloudflare-ai-code-review-ci-orchestration-en","Cloudflare把AI代码审查做成了CI编排系统","\u003Cp data-speakable=\"summary\">\u003Ca href=\"\u002Ftag\u002Fcloudflare\">Cloudflare\u003C\u002Fa>用7个专项智能体把AI代码审查接进了CI流程。\u003C\u002Fp>\u003Cp>Cloudflare 这篇实践复盘给出的答案很具体：当代码审查进入大规模 CI 链路后，单模型提示词不够用，真正可落地的是一套可编排、可降级、可观测的审查系统。首月 5,169 个仓库、48,095 次合并请求、131,246 次审查的数据，也说明它不是实验室原型。\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Item\u003C\u002Fth>\u003Cth>并发审查器\u003C\u002Fth>\u003Cth>中位审查耗时\u003C\u002Fth>\u003Cth>平均单次成本\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>Cloudflare AI 审查编排\u003C\u002Ftd>\u003Ctd>最多 7 个\u003C\u002Ftd>\u003Ctd>3 分 39 秒\u003C\u002Ftd>\u003Ctd>1.19 美元\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>低风险审查\u003C\u002Ftd>\u003Ctd>2 个左右\u003C\u002Ftd>\u003Ctd>更短\u003C\u002Ftd>\u003Ctd>0.20 美元\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>完整高风险审查\u003C\u002Ftd>\u003Ctd>7 个\u003C\u002Ftd>\u003Ctd>更长\u003C\u002Ftd>\u003Ctd>1.68 美元\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>1. 不做单体智能体，改做调度编排\u003C\u002Fh2>\u003Cp>Cloudflare 最先放弃的是“一个大模型包打天下”的思路。原因很直接：在复杂仓库里，模型会给出空泛建议、误报和重复意见，既浪费时间，也让工程师很快失去耐心。于是他们把审查拆成多个专项智能体，再由协调器统一汇总。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782795770938-ts94.png\" alt=\"Cloudflare把AI代码审查做成了CI编排系统\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>这套设计的重点不是“让模型更聪明”，而是“让系统更像工程系统”。每个智能体只负责一个维度，最后由协调器去重、重分类、过滤噪声，输出一条结构化评论。\u003C\u002Fp>\u003Cul>\u003Cli>安全审查：找可利用风险和明确漏洞\u003C\u002Fli>\u003Cli>性能审查：找可量化退化\u003C\u002Fli>\u003Cli>代码质量审查：找逻辑问题与可维护性问题\u003C\u002Fli>\u003Cli>文档、版本、AGENTS.md：处理非代码类信号\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>2. 插件化架构把 GitLab、模型和规范拆开\u003C\u002Fh2>\u003Cp>他们没有把版本控制、模型服务和内部规范硬编码进主流程，而是做成插件架构。入口模块只负责组装配置，具体怎么跑审查、接哪个平台、接哪家模型服务商，都交给插件完成。这样一来，GitLab 插件不会看到 Cloudflare AI Gateway 配置，Cloudflare 插件也不会碰 GitLab 令牌。\u003C\u002Fp>\u003Cp>这种隔离很适合多仓库、多平台环境。文章里提到的 ReviewPlugin 有三个生命周期阶段：引导、配置、后置配置。引导阶段可并行且非致命，配置阶段串行且致命，后置阶段则处理远程覆盖规则之类的异步任务。\u003C\u002Fp>\u003Cul>\u003Cli>配置入口：ci-config.ts 统一收口\u003C\u002Fli>\u003Cli>核心产物：opencode.json\u003C\u002Fli>\u003Cli>上下文对象：只给插件可控操作，不直接暴露最终配置\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>3. OpenCode 负责会话，JSONL 负责流式输出\u003C\u002Fh2>\u003Cp>Cloudflare 选 \u003Ca href=\"https:\u002F\u002Fopencode.ai\u002F\">OpenCode\u003C\u002Fa> 作为核心编码智能体，不只是因为它开源，还因为它是服务端优先架构，适合从编程方式创建会话、发送提示词、并发收集结果。协调器通过 Bun.spawn 启动 OpenCode，审查器则在内部通过 SDK 再拉起多个子会话。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782795772302-bbz3.png\" alt=\"Cloudflare把AI代码审查做成了CI编排系统\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>这里最值得借鉴的是输出格式选择。长运行任务很怕 JSON 因为进程提前退出而写不完整，所以他们用 JSONL 做结构化日志，每行都是独立 JSON 对象。配合 stdout 流式处理、每 100 行或 50 毫秒批量落盘，既能保留调试信息，也能避免频繁写盘拖慢 CI。\u003C\u002Fp>\u003Ccode>step_finish -> 记录 token 用量\nerror -> 触发重试\nreason: \"length\" -> 说明输出被截断\u003C\u002Fcode>\u003Ch2>4. 专项模型分层，比全员上顶配更省钱\u003C\u002Fh2>\u003Cp>他们没有让所有任务都调用最贵的模型，而是按任务复杂度分层。协调器用顶级模型，负责读其他审查器的输出、去重和最终裁决；代码质量、安全、性能这类高负载任务用标准模型；文档、版本和 AGENTS.md 这类文本密集任务则交给更轻量的模型。\u003C\u002Fp>\u003Cp>这种分层的价值在成本上很明显。首月总 \u003Ca href=\"\u002Ftag\u002Ftoken\">Token\u003C\u002Fa> 约 1,200 亿，但缓存命中率达到 85.7%，平均单次审查成本 1.19 美元，中位数 0.98 美元，P99 也只有 4.45 美元。对大规模 CI 场景来说，能把高成本模型只留给最需要它的环节，才有长期可持续性。\u003C\u002Fp>\u003Cul>\u003Cli>顶级模型：协调器裁决\u003C\u002Fli>\u003Cli>标准模型：主力子审查器\u003C\u002Fli>\u003Cli>轻量模型：文档和版本检查\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>5. 熔断、回退和 break glass 让系统敢上生产\u003C\u002Fh2>\u003Cp>把 AI 接进发布链路，最大的难点不是“能不能跑”，而是“出故障时会不会拖垮交付”。Cloudflare 为每个模型层级都做了熔断器和故障恢复链，遇到速率限制或服务中断时，会自动切换到同系列的健康替代模型。熔断打开后还有冷却期和探测请求，避免故障服务被请求洪峰继续压垮。\u003C\u002Fp>\u003Cp>更重要的是，他们保留了人工兜底。只要真人审查者添加 break glass 注释，系统就会强制放行。这说明 AI 审查在这里不是裁判，而是高质量过滤器和风险提示器，最终控制权仍在工程流程里。\u003C\u002Fp>\u003Ch2>6. 重新审查和 AGENTS.md 让上下文保持新鲜\u003C\u002Fh2>\u003Cp>CI 里的审查不是一次性的。开发者推新提交后，系统会做增量重新审查，识别已修复、未修复和用户已解决的发现，避免重复打扰。协调器还能读取历史评论和内联 DiffNote 线程，让后续审查接着上次的结论继续。\u003C\u002Fp>\u003Cp>另一个实用点是 AGENTS.md 审查器。它会提醒团队在测试框架、构建工具、包管理器或 CI\u002FCD 流程变化后更新指引文件，防止 AI 继续按旧规范生成错误建议。对长期维护的仓库来说，这比单纯追求模型分数更有现实价值。\u003C\u002Fp>\u003Cul>\u003Cli>已修复的发现：自动省略\u003C\u002Fli>\u003Cli>未修复的发现：继续保留\u003C\u002Fli>\u003Cli>用户已解决：按状态认可\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>How to decide\u003C\u002Fh2>\u003Cp>如果你的团队只有少量仓库、审查规则也比较固定，先从单一 AI 审查或轻量插件开始更合适。但如果你已经面对多仓库、多模型、多平台和严格 CI 门禁，Cloudflare 这套做法更值得参考：把审查拆成专项智能体，把配置做成插件，把失败处理和人工兜底提前设计好。\u003C\u002Fp>\u003Cp>更简单地说，想让 AI 真正进入代码发布流程，重点不是“接入一个更强的模型”，而是“把模型放进一个能降级、能观测、能回滚的系统”。这篇文章最有价值的地方，也正是把这件事讲得足够工程化。\u003C\u002Fp>","7个审查智能体、3分39秒中位耗时，Cloudflare展示了AI代码审查如何嵌入CI并控制成本与风险。","zhuanlan.zhihu.com","https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2053168414206718925",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782795770938-ts94.png","industry","en","6fd289d9-fa30-4013-9cb9-56ac6ceeb0db",[17,18,19,20,21,22,23,24,25,26],"Cloudflare","AI代码审查","CI\u002FCD","OpenCode","JSONL","GitLab","插件架构","熔断器","AGENTS.md","大模型编排",[28,29,30],"AI 代码审查要按安全、性能、质量等维度拆分，而不是依赖单个通用提示词。","插件化、JSONL、熔断和回退机制，是把模型接进 CI 的关键工程手段。","成本控制来自模型分层、缓存命中和共享上下文，而不是一味加大模型规模。",0,"2026-06-30T05:02:23.865963+00:00","2026-06-30T05:02:23.858+00:00","8da9339e-eb90-4ee2-bc78-5d1ec62663fc",{"tags":36,"relatedLang":43,"relatedPosts":47},[37,39,41],{"name":17,"slug":38},"cloudflare",{"name":20,"slug":40},"opencode",{"name":19,"slug":42},"cicd",{"id":15,"slug":44,"title":45,"language":46},"cloudflare-ai-code-review-ci-orchestration-zh","Cloudflare把AI代码审查做成CI编排系统","zh",[48,54,60,66,72,78],{"id":49,"slug":50,"title":51,"cover_image":52,"image_url":52,"created_at":53,"category":13},"3249ec56-0940-4cae-a21b-053e899ba56e","docker-monitoring-tools-real-budgets-en","12 Docker monitoring tools that fit real budgets","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782806590248-vm2p.png","2026-06-30T08:02:42.276141+00:00",{"id":55,"slug":56,"title":57,"cover_image":58,"image_url":58,"created_at":59,"category":13},"fef2f5ea-52e6-4c17-a94a-0dc993387fe0","base-sequencer-outage-single-sequencer-fragile-en","Base's sequencer outage proves single-sequencer design is too fragile","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782804765811-mseo.png","2026-06-30T07:32:20.844193+00:00",{"id":61,"slug":62,"title":63,"cover_image":64,"image_url":64,"created_at":65,"category":13},"a3c39608-b95a-4f2a-bb94-ffd552a45080","google-ai-talent-outflow-anthropic-week-en","Google AI 人才外流，Anthropic 赢得一周","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782803871739-wh2b.png","2026-06-30T07:17:23.793427+00:00",{"id":67,"slug":68,"title":69,"cover_image":70,"image_url":70,"created_at":71,"category":13},"047bf180-ba3f-452f-97b3-3c1b4cf14bd4","stablecoin-payments-faster-but-fees-lag-en","Stablecoin Payments Are Faster, But Fees Lag","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782792167457-mamh.png","2026-06-30T04:02:26.182566+00:00",{"id":73,"slug":74,"title":75,"cover_image":76,"image_url":76,"created_at":77,"category":13},"96ad3567-ab75-487a-b9ac-656da06056ef","deepmind-veterans-are-leaving-london-en","DeepMind老兵正在离开伦敦","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782777770669-33e7.png","2026-06-30T00:02:29.06378+00:00",{"id":79,"slug":80,"title":81,"cover_image":82,"image_url":82,"created_at":83,"category":13},"81fa50cf-ee8b-4b76-b017-7dfc45a2dea0","bitcoin-price-page-risk-asset-market-signal-en","Bitcoin’s price page proves the market still treats BTC like a risk a…","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782776869895-brr2.png","2026-06-29T23:47:27.031808+00:00",[85,90,95,100,105,110,115,120,125,130],{"id":86,"slug":87,"title":88,"created_at":89},"d35a1bd9-e709-412e-a2df-392df1dc572a","ai-impact-2026-developments-market-en","AI's Impact in 2026: Key Developments and Market Shifts","2026-03-25T16:20:33.205823+00:00",{"id":91,"slug":92,"title":93,"created_at":94},"5ed27921-5fd6-492e-8c59-78393bf37710","trumps-ai-legislative-framework-en","Trump's AI Legislative Framework: What's Inside?","2026-03-25T16:22:20.005325+00:00",{"id":96,"slug":97,"title":98,"created_at":99},"e454a642-f03c-4794-b185-5f651aebbaca","nvidia-gtc-2026-key-highlights-innovations-en","NVIDIA GTC 2026: Key Highlights and Innovations","2026-03-25T16:22:47.882615+00:00",{"id":101,"slug":102,"title":103,"created_at":104},"0ebb5b16-774a-4922-945d-5f2ce1df5a6d","claude-usage-diversifies-learning-curves-en","Claude Usage Diversifies, Learning Curves Emerge","2026-03-25T16:25:50.770376+00:00",{"id":106,"slug":107,"title":108,"created_at":109},"69934e86-2fc5-4280-8223-7b917a48ace8","openclaw-ai-commoditization-concerns-en","OpenClaw's Rise Raises Concerns of AI Model Commoditization","2026-03-25T16:26:30.582047+00:00",{"id":111,"slug":112,"title":113,"created_at":114},"b4b2575b-2ac8-46b2-b90e-ab1d7c060797","google-gemini-ai-rollout-2026-en","Google's Gemini AI Rollout Extended to 2026","2026-03-25T16:28:14.808842+00:00",{"id":116,"slug":117,"title":118,"created_at":119},"6e18bc65-42ae-4ad0-b564-67d7f66b979e","meta-llama4-fabricated-results-scandal-en","Meta's Llama 4 Scandal: Fabricated AI Test Results Unveiled","2026-03-25T16:29:15.482836+00:00",{"id":121,"slug":122,"title":123,"created_at":124},"bf888e9d-08be-4f47-996c-7b24b5ab3500","accenture-mistral-ai-deployment-en","Accenture and Mistral AI Team Up for AI Deployment","2026-03-25T16:31:01.894655+00:00",{"id":126,"slug":127,"title":128,"created_at":129},"5382b536-fad2-49c6-ac85-9eb2bae49f35","mistral-ai-high-stakes-2026-en","Mistral AI: Facing High Stakes in 2026","2026-03-25T16:31:39.941974+00:00",{"id":131,"slug":132,"title":133,"created_at":134},"9da3d2d6-b669-4971-ba1d-17fdb3548ed5","cursors-meteoric-rise-pressures-en","Cursor's Meteoric Rise Faces Industry Pressures","2026-03-25T16:32:21.899217+00:00"]