DSL-Spec实战:用规范与Harness工程,让 AI写码真正可掌控
本文整理自 QCon 北京 2026《曹偲 - DSL-SpecTocoAI的后端HarnessEngineering的实践》通过AI音视频总结工具Ai好记视频转文字整理以下为精炼整理后的会议笔记内容。演讲者曹偲有网易云音乐的深厚背景。他的 PPT 在分享前还要频繁修改因为时代剧变太快GPT-4 发布后很多技术假设都被重新评估了甚至有人认为代码会被大模型整合而白写。从一个在移动互联网高峰期起步的工程师视角看当前的不确定性远超以往就像从经典物理到量子物理的转变。他给出的应对之道是回到软件工程的本质用 Spec规范、DSL领域特定语言和 Harness控制来驾驭 AI。时代背景从经典物理到量子物理的软件工程1、曹偲的工程履历与观察他 2015 年首次分享时云音乐还小2022 年离职时云音乐已经很大了。移动互联网的高速增长期大家在做稳态迭代而当前面对的是高度不确定性。这种转变让他重新思考软件工程的核心问题。2、Honey 的两层含义他引入 Honey 概念有两层含义。狭义上Honey 是约束 AI 的技术工具广义上Honey 是程序员如何用好 AI。这个概念的落点是「软件工程左移」从运行时向编译时、再由编译时向设计时迁移。他用早期网易泡泡项目的维护困境来解释运行时和编译时代码的维护成本极高问题往往在设计时就埋下了。Spec 的本质人与 AI 交流的桥梁1、为什么 Spec 在 AI 时代依然重要关键论断是Spec 在 AI 时代不但没有过时反而更重要因为 Spec 是人与 AI 交流的工具。他反思了需求文档与代码质量。一个三个月写 150 个 App的极端案例说明AI 写代码只是执行规划并不是真正的工程。软件和脚本的区别恰恰在于有没有规范约束这正是需要 Spec 的原因。2、AI Coding 门槛低但工业基础要求高AI Coding 已经成为通用工具但做好 Coding需要极强的工业基础。他梳理了四个问题。第一自身设计理解浅薄难与 AI 共创。如果工程师自己都没想清楚设计AI 更无从谈起。第二文本驱动的 Spec 维护困难。文本往往语焉不详、充满歧义代码与 Spec 会漂移导致上下文混乱。第三多人协作的挑战。个人提效和团队提效是两回事协作中的合并与冲突问题单靠 AI 解决不了。第四Spec 的验证困难。既要验证 Spec 逻辑完整性又要验证 Spec 与代码的映射关系这是硬核工程问题。3、Spec 发展的三个阶段他梳理了 Spec 的三个阶段第一阶段是 Spec First规范先行第二阶段是 Spec Anchored类似 Kiro的做法规范锚定第三阶段是代码重要性降低、思考承载物本身。阶段的演进本质是设计信息从文档到结构化承载的迁移。DSL 作为解决方案把「what」和「how」粘起来1、借鉴工业领域的通用语言DSL领域特定语言的灵感来自工业领域早已成熟的惯用法。他甚至观察到的一场软件开发复古潮90 年代的建模驱动Model Driven曾因历史问题没做成但 AI 时代可能真正解决当年那些问题Unix 时代、上古时代的精神正在回归。2、DSL 的实践案例与价值他用云音乐的分页逻辑作为代码实现案例说明对象传输中复杂描述的痛点。DSL 能提供标准化表达这种表达超越代码本身含义明确、可读性强、无歧义细节与可维护性高。它的核心价值是把「what」做什么和「how」怎么做粘合起来作为设计与实现的桥梁也作为研发系统的本体与增值中心。3、DSL 的优势总结DSL-Spec 的三个优势值得记住含义明确无歧义、可读且细节可维护、作为设计与实现的桥梁。它让设计信息不再漂移也让 AI 有了一份高质量、结构化的创作蓝本。Harness控制与 Human-in-the-loop1、AI 能力放大后程序员还必要吗有投资人质疑程序员存在的必要性。曹偲的回答很有力AI 是概率模型存在固有局限。真正长期有效的治理范式是 Agent 与 Programming 结合Agent 处理泛化和不确定性问题Programming 处理一致性与确定性问题这是最经济合理的解决方案。2、TocoAI 的实现思路DSL-Spec 预定义框架TocoAI 用 DSL-Spec 预定义框架来做 Harness。通过 Programming 固化框架结构把工程师的设计决策从运行时、编译时一步步前移到设计时。设计师指设计者的关键动作就是在这个过程中定义好规范和边界。3、为什么必须 Human-in-the-loopAI 生成结果有很强的不一致性补丁式代码的积累是软件工程的灾难。他给出了需要人介入的四个根本原因AI 是懒惰的AI 缺乏大局观与复用性考虑AI 不懂审美、倾向于偷懒AI 信息不全系统构建带探索性。4、Human-in-the-loop 的重要介入点具体在哪些环节介入他给了非常实操的建议。状态与结构相关的设计。建模 review 有悖论也很痛苦AI 会带来信息过载需要人来把关结构。数据流转与接口分析。字段放置需要深思熟虑契约错误会导致连锁问题。复用性问题。他用医院信息系统案例说明一个「getage」的复杂性远超想象软件质量追求应超越「能跑」。性能问题。AI 不考虑性能互联网与 B 端对性能的关注差异很大这块必须人类把关。5、控制 AI 的三点总结他把控制 AI 的方法浓缩成三点通过 Spec 与 AI 交流通过 Grammar 控制程序结构在合适时机进行 Human-in-the-loop 干预。这三句话构成了 TocoAI 后端 Harness 工程的核心。设计驱动与范式转变1、从流程驱动到决策驱动他呼吁回归设计的重要性并指出一个深刻的范式转变。中国软件开发的现状以「流程驱动」为主他以医疗案例说明入院时间在三个表中重复互联网和 B 端软件生命周期短、价值低。而 AI 时代需要为数据深度使用而生走向 DDD领域驱动设计、Ontology、建模驱动从流程控制转向逻辑构建。2、DSL 的缺陷与分层共建他也坦诚 DSL 有两个缺陷。一是领域特定性缺乏通用件他举了海外 SLA 产品的案例不同组织与领域的差异性很大二是 Prompt 生成代码的符合性问题。解决方案是在设计时利用 AI 维护 Prompt 迁移快速定义组织内固化的软件结构并通过开源共建和讨论推进发展方向。实践案例与未来展望1、医院复杂系统案例他分享了一个大三甲医院系统的实践系统复杂度极高团队协作与理念落地都面临挑战。他的解法是把方法论与 DSL 固化到工具中而不是停留在理念宣讲。2、个人转型与行业固化他强调只讲理念没有意义必须固化下来。专家的个人使用与团队规模化之间隔着巨大的鸿沟只有把方法论变成工具才能真正规模化。对未来的三点判断他明确「不预测 AGI只谈可见未来」并给出三个趋势。趋势一是 UI将发生巨大变化客户端化、无界面化语言交互可能成为主流趋势二是去职能化前后端职能界限模糊回归全栈开发工程师模式趋势三是重构常态化与轻量化重构周期从年缩短到月像GC垃圾回收一样定期进行保持软件整洁。最后他留下一个警醒效率与效果要权衡短期看效率、长期看效果敷衍建模会导致未来的灾难。而人才才是 AI 时代最大的效率瓶颈。常见问题FAQQDSL-Spec 是什么Domain Specific Language领域特定语言 Spec规范把软件的设计信息结构化表达出来作为设计与实现的桥梁也作为研发系统的本体让 AI 有高质量、无歧义的创作蓝本。QSpec 在 AI 时代为什么反而更重要因为 Spec 是人与 AI 交流的工具。AI 写代码只是执行规划没有规范就只是脚本不是软件。Spec 让设计信息不漂移、上下文不混乱是驾驭 AI 的基础。QAgent 和 Programming 怎么分工Agent 处理泛化和不确定性问题Programming 处理一致性与确定性问题两者结合是最经济合理的方案。TocoAI 用 DSL-Spec 的 Programming 固化框架再让 Agent 在框架内发挥。Q为什么必须 Human-in-the-loop因为 AI 懒惰、缺乏大局观、不懂审美、信息不全补丁式代码积累是软件灾难。人需要在状态结构设计、数据流转接口、复用性、性能这几个关键点把关。QDSL 有什么缺陷领域特定性强、缺乏通用件且 Prompt 生成代码存在符合性问题。解决方案是在设计时用 AI 维护 Prompt 迁移快速固化组织内的软件结构配合开源共建推进。QAI 时代会带来哪些变化UI 大幅变化客户端化、无界面化、语言交互、去职能化回归全栈、重构常态化周期从年缩到月。但短期看效率、长期看效果人才仍是最大瓶颈。以上内容由 Ai好记 转录整理。Ai好记是一款支持音视频转图文笔记的AI知识库工具支持B站、小红书、抖音、小宇宙等平台链接及本地音视频文件视频转文字后自动生成精华速览、思维导图和结构化图文笔记帮助你把几小时的视频内容变成可搜索、可复习的图文笔记。