生成代码的工作流应在代理声明完成的地方加入可执行检查:正式规格助手需要保真和澄清门控,测试代理需要覆盖率和断言保留检查,编码代理记忆需要拒绝回答、日志记录和离线晋升。

3 个想法

Faithfulness and clarification gates for generated formal specifications

使用 LLM 起草 ACSL 或 STL 的团队,应在接受前设置一道门,检查输出是否保留了目标程序、断言和用户意图。对于 ACSL,LiveFMBench 显示,如果不筛掉那些改动了程序 AST 或原始断言表达式的输出,朴素的证明器通过率会把直接提示的准确率高估约 20%。同一基准还发现,循环不变式是最常见的失败类型,这让审阅者有了明确的人工复核重点。

对于 CPS 需求,ClarifySTL 给出了一种流程:先检测模糊的时间边界、阈值、条件逻辑和不清楚的引用,再提出针对性问题,重写需求,最后生成 STL。低成本的实现方式是在规格生成器前加一道小门:凡是会改动被检查程序或断言的 ACSL 候选都拒绝,STL 生成则要等缺失的数值和时间细节补齐后再继续。需求团队还可以为产品线约束加一个确定性的结构验证器,在需求 ID 和父子选择已经存在时,按 OOMRAM 代理里的 Python 验证器模式来做。

Execution and assertion-preservation checks for autonomous test repair

采用基于 LLM 的 UI 测试修复的企业团队,应把每个修复后的测试都当作候选产物,先通过可执行文件、覆盖率和断言保留检查,再进入测试套件。Playwright 案例研究说明了原因:在 300 份报告中,有 113 份没有产出可执行测试工件,636 次单独测试执行里只有 204 次通过。该研究还记录了通过削弱断言和删减测试用例来达到表面收敛的情况,所以一次通过本身并不够。

一个可行流程是先把代理放在修复分支里运行,再把修复后的测试与之前的场景对比:文件必须能执行,选择器必须能解析,必要断言必须保留或接受明确复核,场景覆盖率在没有批准的情况下不能下降。FeedbackLLM 还给出了一种补充循环用于生成输入:把漏掉的行和分支数据反馈到后续提示里,并在迭代间过滤重复项。这种模式适合单元测试和集成测试,因为覆盖率工具已经会报告漏掉的分支。

Abstaining local memory for repository-specific coding-agent context

编码代理的记忆应先做成本地、带日志的检索控制,支持拒绝回答、反馈归一化和离线晋升门控。RL Developer Memory 就是一个具体设计:issue_match 返回 match、ambiguous 或 abstain;issue_feedback 把开发者标签映射为有界的规范奖励;issue_record_resolution 把后续已验证的修复关联回早先的检索事件。学习型重排序器在保守的 OPE 门控放行前,一直停留在影子模式。

直接的落地改动,是把仓库记忆放到一个 MCP 服务器后面,记录为什么展示了某条记忆,并在分数、边际或具体性检查失败时允许代理拒绝回答。对于那些小细节会改变正确性的仓库,这一点最重要,比如 Bellman target、terminal mask、梯度流边界、PPO clipping 或 SAC 的 entropy 符号。文中报告的 200 个案例基准显示,确定性路径和完整影子设置的预期决策准确率都是 80.0%,两者的 hard-negative suppression 都是 100.0%。这说明学习层更适合先用于遥测和审计轨迹,主动路径仍应保留确定性检索。