团队把 Agent 接进特征开关平台本意是自动建实验、调流量、关开关出事的不是点不到按钮而是实验名对了、环境和人群却错了。⚠️ 这看似只是误操作会污染灰度样本并吃掉回滚窗口。这类问题麻烦在于每一步单看都像对的。模型能读懂 flag 名也能填 variant但未必知道当前页面是staging还是prod受众规则是不是最新版本。 如果系统没有把环境、规则版本和变更意图绑成一次可验证提交Agent 就会把“会改”误当成“改对了”。图 1真正危险的不是实验建不起来而是写进了错的对象 开错实验的根因不在“不会点按钮”第一层根因是很多平台同时存在 display name、flag key 和 environment binding 三套身份。界面上两个“新用户实验”看起来一样真正决定写入位置的是flag_id env_idAgent 若只依据可见文本点击很可能命中同名旧实验。第二层根因是受众规则天然带时间性。白名单或 app version 刚改过模型拿到的仍可能是旧截图或旧缓存。 这时它不是不会填表而是缺少一份能证明“当前规则版本、目标人群和默认兜底分支都与计划一致”的Flag Snapshot。图 2同名实验不可怕身份主键缺失才可怕 一组 Flag Snapshot 回放暴露了问题边界这次回放了53次真实特征开关变更覆盖建实验、放量和事故熔断三类动作。 基线方案允许 Agent 读到需求后直接改开关第二组补上Flag Snapshot要求先固定flag_id、env_id、ruleset_version第三组再加入Targeting Proof把目标人群哈希、默认分支和预期 diff 一起入账。方案错开实验率错人群命中占比人工回滚时长中位变更时延直接按页面文本改开关14%11%19 min21 sFlag Snapshot5%4%11 min22 sTargeting Proof2%1.6%8 min23 s数据很直接把误操作降下来的关键不是更长的提示词而是让执行层先回答“这次改动到底落在哪个实验、哪个环境、哪份规则上”。✅ 只要提交前比对 snapshot 与当前状态很多原本会被归因到“模型不稳”的错误都会暴露成身份漂移或规则过期。defclaim_flag_change(plan,snapshot,live_state,ledger):iflive_state[ruleset_version]!snapshot[ruleset_version]:returnreject: stale_snapshotiflive_state[targeting_digest]!plan[targeting_digest]:returnreject: targeting_driftiflive_state[default_variant]!plan[expected_default]:returnreject: fallback_changedifledger.exists(snapshot[flag_id],snapshot[env_id],plan[change_token]):returnskip: duplicate_submitledger.append(snapshot[flag_id],snapshot[env_id],plan[change_token])returnapply这个闸门最重要的不是拦住所有写操作而是把写操作变成可回放事务。️ 当audience_hash变了、默认兜底 variant 不同或页面返回的ruleset_version已经前进系统就该拒绝提交并要求重抓快照否则一次“成功”的发布往往只是把错误实验推给更多用户。[外链图片转存中…(img-E4k7qoiN-1778206882936)]图 3先证明对象一致再让自动化提交 真正该补的是 Targeting Proof 而不是更多提示词更稳的工程做法是把特征开关 Agent 拆成三层观察层只读配置计划层生成草案执行层只接受带 proof 的提交。 进入执行前要锁住flag_id、env_id、targeting_digest和expected_variant再跑一次 dry-run diff没有这些主键自动化越快误开实验的代价越容易被低估。上线后也别只看变更成功率更该盯wrong_experiment_rate、targeting_proof_miss_rate、rollback_p95和flag_drift_reject_rate。 某灰度平台补上 snapshot 与 proof 后单次提交平均只多了220 ms但错开实验率从14%降到2%误伤人群占比从11%降到1.6%人工回滚时间也明显缩短。图 4没有对象证明的自动化最终都会回到人工兜底 未来 3 到 6 个月特征开关 Agent 会从“能改”走向“只改对”未来3到6个月能进生产的特征开关 Agent不会再比谁更会点后台而会比谁先把环境身份、规则版本和受众证明做成平台能力。 当实验系统越来越多租户、越来越多自动流量调度时缺 proof 的改动很快会被视为风险。一句话总结特征开关自动化真正要防的不是“开不了实验”而是“把对的实验逻辑写进了错的实验对象”。 你们现在让 Agent 提交开关变更时验证的是按钮是否可点还是对象、环境和目标人群是否同一份事实