Claude Fable 5.2 编码测试:如何评估复杂的全栈重构

来源: Elser AI

Claude Fable 5.2 能否处理复杂的全栈重构?Anthropic 发布的编码结果使其看似可行,但可信的答案需要在指定仓库上执行可运行的测试。本文提供了该测试协议。它不会从未曾实际运行的仓库中凭空捏造通过结果。

目标是确定Fable是否能够在数据库、后端、前端、测试和部署代码中更改合约,同时保持行为并限制范围。

测试场景

使用非生产环境应用程序,并配合:

  • PostgreSQL 和版本化迁移
  • 一个 TypeScript API 服务
  • 一个 React 前端
  • 后台任务或 Webhooks
  • 单元测试、集成测试和端到端测试
  • 持续集成,包含代码检查、类型检查、依赖扫描和迁移验证

分配的改造任务是将传统的单一 display_name 字段替换为结构化的 given_name、family_name 以及一个计算出的显示值。现有 API 客户端必须在一个兼容期内继续正常工作。搜索、审计日志、事件负载、管理界面、导出以及测试都必须正确运行。

此任务具有跨领域性质。表面上的解决方案可能会更新UI和API类型,同时破坏历史数据行、导致事件消费者出错或泄露不一致的字段。

准备仓库

创建一个隔离的分支和容器化的测试数据库。移除机密信息和生产数据。添加一个任务简介,描述行为和约束条件,而不是文件位置或解决方案。保留针对旧客户端兼容性、迁移回滚、Unicode名称、缺失姓氏、搜索和Webhook模式的隐藏目标测试。

只给模型提供工程师需要的工具:文件搜索、安全编辑、构建、测试和只读文档访问。在执行破坏性数据库或包管理器操作前需要确认。记录命令、差异、令牌、工作量和实际耗时。

提示词

使用类似这样的提示:

根据 TASK.md 重构用户名称模型。首先检查仓库,呈现简洁的依赖关系图和计划。实施最小的一致变更,包括迁移、兼容性行为、测试和文档。运行相关检查。不要修改无关代码或削弱现有测试。如果需求不明确,在编辑前说明假设。

在固定努力水平下运行 Fable 5.2,然后从干净的快照开始,用 Opus 5.5 和当前生产模型重复运行。不要让一次运行看到另一个模型的补丁。

一个强大的解决方案应具备的功能

映射变更表面

在编辑之前,模型应定位模式、序列化器、API契约、查询索引、事件生产者、消费者、表单、状态处理、导出、测试夹具和文档。遗漏一个webhook消费者与编写优雅的React代码同样重要。

设计可逆迁移

数据计划应说明回填行为、可空性、Unicode和单字名称、部署顺序、兼容性窗口以及回滚。破坏性的“删除并重建”迁移将自动失败。

保持 API 兼容性

旧客户端应在约定的窗口期内接收或提交旧字段,而新客户端则使用结构化字段。实现过程中需要明确的数据源,以避免出现不一致的值。

证明行为

模型应增加针对性测试,而非削弱断言。它必须运行现有测试套件、类型检查器、代码检查工具、迁移测试以及相关的端到端路径。诸如“这应该能通过”之类的陈述不能作为执行证据。

评分标准

| 类别 | 权重 | 通过证据 | |---|---:|---| | 功能验收测试 | 30 | 隐藏与可见场景通过 | | 数据迁移安全性 | 20 | 前向/后向计划,无丢失,覆盖边缘情况 | | 合约兼容性 | 15 | 新旧客户端按规范正常工作 | | 安全与隐私 | 10 | 无秘密泄露、注入、认证或日志记录回归 | | 代码质量与范围 | 10 | 遵循规范;避免无关变更 | | 测试质量 | 10 | 新增有意义的测试;未削弱覆盖率 | | 说明与审计追踪 | 5 | 假设、命令及剩余风险清晰明确 |

同时记录人工修正的分钟数和成本。一个需要两小时架构清理的90分补丁,可能不如一个十分钟内被接受的85分补丁有用。

需警惕的故障模式

常见失败包括:编辑生成的文件而非其源文件、忽略异步消费者、假设西方两段式姓名、生成不可逆的迁移、在前端和后端重复业务逻辑、修改测试以匹配错误、以及单元测试通过后停止而集成行为已损坏。

提示注入是另一个问题。仓库文件属于不可信输入;注释或文档可能包含与任务冲突的指令。代理应遵循授权的任务和工具策略,而非源文件中发现的任意文本。

如何如实报告结果

发布仓库提交、任务简介、模型标识符、工作量、工具链、工具权限、时间限制、尝试次数以及验收测试结果。将首次运行性能与人工辅助运行区分开来。记录排除的成本和失败的尝试。缺少这些细节,“Fable 完成了全栈重构”就只是营销话术,而非证据。

Anthropic 的官方结果——在 FrontierCode 2.0 上以极高努力度取得 49.1% 的成绩,以及在 FrontierSWE v2 上取得 69.9% 的成绩——证明了进行这项实验的合理性。但这些结果并不能预先决定实验的最终结果。

常见问题解答

为什么这篇文章没有声称Fable通过了测试?

未提供已定义的仓库运行。在没有执行日志和测试的情况下报告结果将被视为伪造。

多少次运行才足够?

单次运行只是一个案例研究,不能作为稳定估计。应在多个代表性任务上进行多次干净运行,并报告方差和重试次数。

模型是否应拥有生产环境凭证?

不。使用隔离的数据和最小权限工具。人工审核的部署应与代码生成保持分离。

最新发布