![]()
去年Q3,Storytel的工程师团队做了个实验:让AI接手一个中等复杂度的微服务重构。结果代码交付速度提升40%,但3个月后维护工单暴涨217%。
负责AI落地的Staff Engineer Tobias Sandelius在复盘时发现,AI生成的代码像一份没有配料表的预制菜——你知道它能吃,但不知道里面放了什么,更不敢随意加热。
这个发现直接催生了DLD(Decision-Linked Development),一个试图把「决策痕迹」焊进代码里的开源框架。
从「氛围编程」到决策考古
Sandelius的实验路径很有代表性。2024年初,他和多数开发者一样,从「vibe coding」(氛围编程)入手——描述需求,让AI自由发挥,人类负责鼓掌。
这种模式在原型阶段确实爽快。他内部记录的一个案例:用Claude 3.5 Sonnet花4小时搭完一个推荐系统的MVP,同等工作量过去需要3天。
但快感在代码交接时戛然而止。
接手项目的后端工程师在Slack里吐槽:「这坨代码能跑,但我不知道它为什么这样跑。改一行可能崩,不改又满足不了新需求。」Sandelius把这类反馈归类为「决策真空」——AI写代码时做了无数微观选择,但这些选择的上下文在提交(commit)瞬间就被抹掉了。
他试过强制要求团队写详细注释,但很快发现这是和人类本性作对。另一个极端是spec-driven开发:先写冗长规格文档,再让AI按图施工。结果文档撰写时间吞噬了AI节省的工时,「像为了用洗碗机先手洗一遍碗」。
![]()
DLD的核心设计:把「为什么」写进语法树
DLD的解法不是让AI多说话,而是让代码结构本身携带决策信息。
框架要求每个代码变更必须绑定三类元数据:决策动机(为什么改)、约束条件(当时不能做什么)、替代方案(考虑过但放弃的路径)。这些信息以结构化格式嵌入代码仓库,而非游离在外的文档。
Sandelius打了个比方:传统注释是便利贴,可能掉、可能过时;DLD是把决策刻进代码的「分子结构」里,改代码必须先读到之前的「分子式」。
技术实现上,DLD用Git的notes机制和自定义的AST(抽象语法树)标注层。AI agent在修改代码前,框架强制它先解析关联的决策链。如果某段代码的决策依据是「当时Redis集群不稳定,所以用本地缓存兜底」,agent读到这条就不会在没有确认基础设施变化的情况下贸然回退方案。
关键约束:DLD不试图记录所有信息,只捕捉「如果缺失会导致误操作」的决策点。
Sandelius在文档里强调,过度记录会重蹈spec-driven的覆辙。框架内置了一套启发式规则,自动标记高风险变更区域——比如涉及并发控制、数据一致性、或依赖外部服务的代码块。
3个月实测:速度换可维护性的账怎么算
2024年Q4,Storytel的一个8人后端团队在真实项目中试点DLD。
![]()
数据呈现有趣的 trade-off:首次开发周期比纯AI模式慢15-20%,但代码审查时间缩短35%,后续迭代的速度在第二、第三次修改时反超对照组。更关键的是,因「误改历史决策」导致的生产事故归零。
Sandelius在内部汇报中引用了团队的原话:「现在改代码像看聊天记录,知道对面(之前的开发者或AI)当时在想什么,而不是对着一堵墙猜。」
但他也坦承局限。DLD对「探索性编码」——即连人类都还没想清楚的混沌阶段——帮助有限。框架的价值在代码进入「需要长期维护」状态时释放,这恰好是多数AI生成代码的薄弱环节。
另一个意外发现:DLD让人类开发者的角色发生了微妙位移。他们花更多时间定义决策边界和约束,而非直接编写实现代码。一位参与试点的工程师形容:「以前我是写手,现在我是编辑兼事实核查员。」
开源后的反馈与未解问题
DLD在2025年1月开源后,GitHub两周内收获1,200星。Sandelius梳理的issue和讨论里,有两类声音最集中。
一类是工具链整合诉求:希望DLD能嵌入Cursor、Windsurf等主流AI IDE的agent工作流,而非作为独立框架存在。另一类是质疑决策记录的权威性——如果最初的决策就是错的,DLD会不会让错误传承得更牢固?
Sandelius的回应很直接:「DLD不负责判断决策质量,只负责防止无意识覆盖。错误的决策至少应该被有意识地修改,而不是在无知中撞毁。」
他目前正在探索的下一步,是让AI agent在读取决策链时,能主动标记「此决策的前提条件可能已变化」的预警。这需要框架与运行时监控、基础设施状态打通,复杂度跃升一个量级。
Storytel内部还有一个未公开的实验:把DLD的决策记录喂给专门训练的模型,试图让AI不仅能读取历史决策,还能评估其当前有效性。早期结果参差——模型对技术约束的判断准确率约70%,但对业务逻辑的时效性判断经常翻车。
如果AI coding agent的终极形态是「能独立维护长期项目」,那么决策链的可解析性可能是比代码生成能力更基础的瓶颈。DLD的实验至少证明了一点:在让AI写更多代码之前,我们可能需要先教会它阅读代码的「记忆」。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.