Agent 的改动怎么进生产?
PR、review、canary 各管什么?
先弄清楚:每个概念是什么
- Pull request(PR)
- 把改动打包交出来等人 review,像实习生的代码要先过 code review。
- Shadow traffic
- 把真实请求复制一份发给新版本,结果不返回给用户。
- Canary
- 新版本先小范围试跑,指标稳住了才采纳。FlashVector 的 canary 喂的是 shadow traffic。
看图:从触发到写回
30 秒回答
The agent never pushes to production itself. In FlashVector it opens a pull request for a person to review. Then the change goes through a shadow-traffic canary: real requests are copied to the new version, and its responses never reach users. If the canary holds, the change is adopted; if not, it's discarded. Both outcomes are written back to the knowledge base, so the next run doesn't retry a rejected idea. Runs start automatically when a new release enters the fleet. The paper doesn't say how long the canary runs, what threshold decides it, or who reviews, so I'd ask.
FlashVector 的路径
| 环节 | 论文写了 | 论文没写 |
|---|---|---|
| 触发 | 新 release 进 fleet,或在线模型太久没被分析(§4.2 Triggering) | 多久算太久 |
| 开 PR | config 改动由 agent 开成 PR(§5.4.2);几个 repo 合成了 mono repo,方便 agent 改(§4.2) | GPU kernel 和 graph 的改动是否也走 PR;PR 里附什么证据 |
| 人 review | 交付的是 "a reviewed pull request"(§5.4.3);Case 1 是 verify 确认提速之后交给人 review(§5.1) | 谁 review,拒绝率多少,review 在 canary 之前还是之后 |
| Canary | config 改动走 shadow-traffic canary,固定 latency SLO;稳住就采纳,否则丢弃(§4.2、§5.4.2) | 跑多久、流量比例、判定阈值、怎么 rollback |
| 写回 | 两种结果都记进 knowledge base(§5.4.2) | 谁 review 写回的内容 |
shadow-traffic canary 是论文 verify 四档中 config 改动的那一档,前三档见 kernel 正确性。图里把 review 画在 canary 前面是题库的排法。
别家写了什么
| 系统 | 进生产的环节 |
|---|---|
| AlphaEvolve | 调度 heuristic 先在 simulator 上用没见过的数据验证,再全量上线;上线后的测量确认了 simulator 的结果 |
| KDA-Pilot | 以带证据包的 PR 进 SGLang 上游,人 review;到 2026-06-27 已合入三个 |
| KernelEvolve、Baseten | 只说 kernel 进了生产,没写 review 和 canary |
对照过的 11 个同类系统里,写了进生产环节的只有 FlashVector 和前两家。
必答点
- agent 不直接改生产,它开 PR,由人 review
- shadow traffic 是复制真实请求给新版本,结果不返回给用户
- canary 稳住就采纳,否则丢弃,两种结果都写回 knowledge base
- 自动触发:新 release 进 fleet,或模型太久没分析
- 说得出论文没写的:canary 跑多久、流量比例、阈值、谁 review
追问
为什么不让 agent 直接合并?
论文自己写了 LLM 会把瓶颈归因错,本层通过的改动合到一起也可能回退(见 local 和 end-to-end)。人 review 和 canary 是最后两道检查。
做灰度时,agent 怎么知道什么是异常?(快手原题)
判定不交给 agent。阈值事先写在规则里,由确定性代码判断 canary 稳没稳住。
为什么 config 改动用 shadow traffic 就够了?
config 改动按设计不改变预测结果,只影响 latency 和 throughput,用复制的请求就能量出来。新版本出错也不会伤到用户。
来源FlashVector(arXiv 2609.17391,§4.2、§5.1、§5.4)· AlphaEvolve · LMSYS blog:KDA-Pilot · 牛客:快手全栈二面 · 牛客:蚂蚁 agent开发二面 · 同类系统对照表 · ml-八股 08 第 30 题