Loading... # 规范生成作废(Warranty Void If Regenerated) # 一、概述 ## 1. 故事背景 ### A. 变革后的世界 故事发生在一个"转型"(transition)之后的时代。在这个世界里,软件不再由人工编写,而是通过自然语言规范(specification)自动生成。"修复软件"的概念被"重新生成"取代。 ### B. 软件技师职业 Tom Hartmann 是一名软件技师,这个职业七年前还不存在。转型前,他是农业设备技术员,维修拖拉机、联合收割机、GPS导航系统。转型后,软件维修业务消失——机器不再需要"修复",只需要重新生成。 ## 2. 核心问题 ### A. 硬件与软件的界限消失 "硬件"和"软件"的区分已经崩溃。当软件从自然语言规范生成时,相关专业知识不再是"软件"本身,而是软件所服务的领域。农业社区的软件技师需要理解农业,医疗实践的软件技师需要理解医学。 ### B. 本地知识无法被规范捕获 AI系统擅长处理通用原则和可测量变量,但无法编码那种在特定地点数十年亲身实践中积累的知识——温室下方的黏土、鹿踩踏板压实土壤、西风让无遮挡行干得更快。这些知识在Carol的头脑里,不在任何数据库中,而自然语言规范恰恰最不善于捕捉这种知识,因为它是具身的、情境化的、难以言说的。 # 二、案例诊断 ## 1. 上游数据变化问题 ### A. Margaret Brennan的案例 Margaret生成了一个收获时机工具,整合土壤湿度、天气预报、市场价格和卫星图像来推荐最佳收获窗口。工具整个夏天运行完美,为她节省约四万美元。但上周它提前四天建议收割六十亩甘蓝,导致约二万五千美元的损失。 ### B. 诊断结果 问题根源在于天气服务商更新了历史数据集,导致生长度日计算偏移约3%。Margaret的规范说"使用天气数据",但没有说"当上游天气模型重新校准时警告我,因为我的作物成熟度推断对特定校准敏感"。 ```mermaid graph TD A[天气服务更新历史数据] -->|模型偏移3%| B[生长度日计算变化] B -->|成熟度提前2天| C[收获建议提前] C -->|甘蓝未成熟| D[收割损失$25,000] E[规范:使用天气数据] -.没有校准警告.-> F[AI系统] ```  ### C. 维护困境 Tom可以修复规范,添加监控条款:当上游数据源版本变化时,工具标记并暂停建议,直到Margaret或Tom验证新版本不影响推断。这意味更多维护,每月可能有两三次标记。但Margaret拒绝每月四百美元的"维护团队"服务,同时支付一次一千八百美元的修复费。 ## 2. 系统架构问题 ### A. Ethan Novak的案例 Ethan生成了至少四十个工具,涵盖饲料优化、牛群健康监控、牛奶定价、肥料管理和天气调整放牧轮换系统。问题是工具之间相互"对话"——或者应该对话,但连接是临时的、逐工具指定的,没有整体架构和无人管理交互。 ### B. 级联故障分析 饲料工具重新生成后输出格式变化。牛奶定价工具消费饲料工具输出作为成本输入,格式变化导致一个字段解析错误,将每头成本读为每百英担成本,使饲料费用看起来更高,利润计算更低,推荐价格下降。五个环节,每个单独无害,集体造成Ethan约一万四千美元损失。 ```mermaid sequenceDiagram participant E as Ethan participant FT as 饲料工具 participant PT as 定价工具 participant C as 奶牛合同 E->>FT: 重新生成饲料工具 Note over FT: 输出格式变化 FT->>PT: 供料数据(格式错误) PT->>PT: 解析错误,利润低估 PT->>C: 锁定低价合同 Note over C: 3个月$14,000损失 ```  ### C. 编排的必要性 Tom建议Ethan需要"编排师"(choreographer),映射整个工具生态系统,指定工具间接口,构建一致性层,确保任何工具重新生成时,接口在新版本上线前得到验证。这是四十个工具和一个系统的区别。 ## 3. 本地知识与通用原则冲突 ### A. Carol Lindgren的案例 Carol经营45亩混合蔬菜农场,使用简单的土壤湿度传感器和滴灌系统,手动设置时间表。她的孙子Tyler生成了一个优化层,读取土壤湿度传感器,检查天气预报,当土壤湿度低于目标阈值时调整灌溉计划。 ### B. 技术评估 系统客观上更好:用水减少15%,土壤湿度保持更一致。但规范说"基于传感器读数维持60%田间容量",不知道温室附近的黏土区域水分在传感器深度以下蓄水,导致过度灌溉。 ### C. 知识类型差异 - Tyler的规范编码了蔬菜灌溉的一般原则 - Carol的手动时间表编码了三十年关于这片特定土地的知识 - 两者在约四个地方冲突 ```mermaid graph LR subgraph 本地知识 A[黏土区蓄水] B[排水模式] C[作物偏好] end subgraph 通用原则 D[维持60%田间容量] E[传感器读数] end D -->|目标60%| F[AI系统] A -.矛盾.-> F E -->|读数低| G[过度灌溉] ```  ### D. 控制的重要性 Tom给Carol三个选项:完全移除系统回到手动;将她的知识编码到规范中;保持系统但添加物理覆盖开关。Carol选择第三项——一个可以翻转的真实开关,比任何软件界面更重要。 # 三、核心洞察 ## 1. 维护悖论 相对于失败成本,你越便宜,你的客户越需要你;而他们越需要你,就越抗拒暗示他们还会再次需要你的想法。 ## 2. 免费的代价 工具是免费的(或近乎免费)。生成新工具几乎不花钱。但管理工具间关系(集成层、数据契约、行为期望)是昂贵的,因为需要了解整个系统并预测一部分变化如何传播到其余部分的人类。 ## 3. 知识表达困境 自然语言从未被设计用于与机器沟通的媒介。对于没有味蕾的机器,"按口味调味"(season to taste)的指令毫无意义。规范编写者倾向于省略对他们显而易见但对他人不可见的细节。 ## 4. 技师的角色转变 软件技师的工作不是修复代码(因为代码不是客户写的,是机器生成的),而是诊断意图与执行之间的差距。工具很精确,但世界在工具下方移动——上游数据变化、模型漂移、规范模糊性。 *** ## 参考资料 1. [Warranty Void If Regenerated - Near Zero Software](https://nearzero.software/p/warranty-void-if-regenerated) 最后修改:2026 年 03 月 19 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏