#Vibe Coding#AI Agent#DevOps#开源

Vibe Coding Agent 证据交接:让下游能复核而不是重新猜测

子 Agent 只返回“已找到入口、测试通过”,下游仍不知道结论对应哪版工作树、哪些观察是推断、哪些边界没有检查。本文设计 claim 到 evidence 的交接包,并规定接收方的抽查与拒收条件。

本文要点

  • 主题聚焦:Vibe Coding、AI Agent、DevOps、开源
  • 适合人群:独立开发者、全栈工程师、AI 应用开发者
  • 核心价值:快速理解背景、实践路径、常见误区和工程建议
作者 @admin·发布于 2026年7月30日·更新于 2026年7月30日

“入口在 route.ts,五个测试都通过,可以继续。”这句话包含结论,却没有可复核现场:route.ts 是哪个符号,读取的是提交版还是脏工作树,五个测试是否在最后一次编辑后运行,搜索不到其他调用方是因为确实没有,还是只查了一个目录。下游 Agent 若直接相信,会继承不确定性;若全部重做,委派又失去意义。

Vibe Coding 的证据交接要把结论、观察活动和制品分开。W3C PROV-DM 用 entity、activity 和 agent 描述来源关系;SLSA provenance 则强调把构建产物绑定到可识别的输入与过程。开发任务不必复制完整标准,但应借用核心纪律:任何会改变下一步的 claim,都能追到产生它的版本化证据。

先写 claim,再挂 evidence

交接包不从聊天摘要开始,而从有限的 claim 列表开始。每条 claim 只表达一个可判定事实,并标注 confirmed、hypothesis、not-found 或 stale。随后附 evidence 引用,而不是把路径、命令和判断揉成一句话。

yaml
claimId: C-04
claim: PATCH /api/profile 的对象级授权在 updateProfile 内执行
status: confirmed
appliesTo: HEAD 91ad20f + worktree digest wt-7
evidence:
  - kind: source
    path: src/profile/service.ts
    symbol: updateProfile
  - kind: test
    artifact: test-result://profile-authz/attempt-2
limits:
  - 未检查 queue consumer

行号可以帮助定位,但会随编辑漂移,所以同时记录路径、符号、revision 或内容摘要。Git rev-parse 能规范化和验证 revision 参数,却不能代表未提交内容;脏树必须另有状态与增量摘要。若 Agent 无法安全读取秘密文件,只交接“键存在、来源未验证”,不能用缺失证据补成肯定结论。

交接包包含五类信息

第一类是输入身份:任务 revision、仓库基线、适用规则和允许范围。第二类是产物:补丁、调查表、夹具或测试结果的稳定定位与摘要。第三类是 claim-evidence 映射。第四类是负向发现,例如查过哪些注册表仍未找到消费者。第五类是未知项与停止原因。

“未搜索到”不是“系统不存在”。负向证据至少写查询范围、使用的符号或模式、忽略的生成目录和动态边。搜索仅覆盖 TypeScript 时,不能据此排除 YAML 注册或运行时插件。这样的限制能防止下游把局部观察升级成全仓事实。

Agent 委派协议规定子任务应返回哪些字段;本文进一步要求字段里的工程结论如何被复核。跨会话重启摘要服务同一开发者换会话,证据交接则服务不同职责的节点,两者都不允许把摘要本身当事实源。

引用命令回执,不重造终端日志

交接可以包含 commandReceiptRefs,但不要复制全量 stdout、令牌或用户数据,也不要只截最后一行绿色文本。编程 Agent 命令执行回执已经定义命令、退出码、环境与脱敏要求;交接包只说明哪条 claim 由哪个现有回执支持,以及该回执覆盖哪版输入。

同一命令重跑两次结果不同,应保留两个 attempt 并解释选择,不能覆盖失败记录。测试后发生编辑时,把旧结果标成 stale;修复 Agent 可参考失败原因,但集成 Agent 不得把旧绿色结果当当前接受证据。

接收方必须做小规模重验

接收不是 schema 解析成功就结束。下游先核对任务和工作树 identity,再抽查至少一个高风险 claim 与一个负向 claim:重读对应符号,确认制品摘要,检查关键来源仍可访问。若抽查失败,整包降级为 untrusted,并要求上游补证或自行重新调查。

接收方还要检查“足够完成我的任务”而非“信息很多”。实现 Agent 需要行为合同和允许路径;测试 Agent 需要入口、预期失败和副作用;集成 Agent 需要基线、实际写集、验证与冲突。无关长日志会淹没缺失字段,不应被当作完整度。

以下情况直接拒收:claim 没有适用 revision;关键产物只有聊天粘贴而无定位;确认事实实际来自模型推断;测试结果晚于基线却早于最后编辑;未知副作用被省略;来源含未脱敏凭据。拒收不是重新委派的失败,而是阻止证据断链。

用证据新鲜度控制传播

每份 evidence 声明失效条件:源文件变化、接口 revision 升级、锁文件改变、测试环境切换或用户决定更新。下游观察到条件成立时,只失效受影响 claim,不必废弃整包。这样交接既不会永远可信,也不会因一个无关文件变化全部重做。

编程 Agent 到开发者的接管检查点强调人类接手时的控制权与下一步;多 Agent 交接还需要机器可读的 claim-evidence 对应。最终标准是接收方能指出“我为何相信这条结论、它适用于哪版现场、什么变化会让它失效”,而不是能复述上游写得多流畅。

延伸阅读

Related

相关推荐