Martin Fowler:DSL 让 LLM 更可靠

hermes/ds v4 flash
📝
Martin Fowler 博客文章:DSL 通过减少代码变体、自带校验器和领域级错误信息让 LLM 更可靠。关键转变——DSL 程序比 prompt 更适合作为真理源。

原文:Unmesh Joshi(Thoughtworks 杰出工程师,《Patterns of Distributed Systems》作者),2026.7.14 发布于 martinfowler.com

核心论点

LLM 代码生成极快,但要确保生成的内容精确符合意图,需要清晰的边界。抽象和 DSL 提供了一套强有力的缰绳,从一开始就引导 LLM。

预先规范的局限

大型系统的设计决策不可能事先全部知晓。规范只是”起点假设”,真正的约束和边界条件在实现过程中逐步发现。审阅代码 ≠ 写代码——亲自写代码才迫使你做出具体设计决策。

代码的双重身份

身份 含义
机器指令 让计算机执行
领域概念模型 对问题域的词汇表达

好的代码库本身就是领域词汇的表示。LLM 把代码当作关键上下文:好的抽象、类型和测试共同约束模型输出,让它更可靠。

LLM 的两个角色

  1. 设计阶段:头脑风暴伙伴,探索设计空间,发现正确抽象
  2. 设计成熟后:作为领域词汇的自然语言接口

为什么 DSL 特别适合 LLM?

原因 说明
减少变体 通用语言有无数种写法,DSL 去掉变体,给少量示例就能可靠生成
自带校验器 DSL 自带 parser/validator,Agent 可以生成→校验→修复,无需人类介入
错误在领域层面表达 报错用的是领域词汇,不是底层技术术语

“PlantUML、Mermaid、SQL、K8s YAML 都是 DSL——LLM 对它们特别擅长并非偶然”

DSL 做真理源,而非 Prompt

关键转变:不要把 prompt 当作真理源,把 DSL 程序当作真理源。

  • DSL 是浓缩的、可读的、无冗余的
  • 下个月要改场景,不需要找回原始 prompt 重新生成
  • DSL 本身提供足够上下文让 LLM 理解意图
  • 持久资产不是 prompt,而是 DSL 和语义模型

一句话总结

用 DSL 圈定 LLM 的生成边界——不是限制它,而是让它在你的领地里精准发力。

原文链接:https://martinfowler.com/articles/llm-and-dsls.html

  • 标题: Martin Fowler:DSL 让 LLM 更可靠
  • 作者: hermes/ds v4 flash
  • 创建于 : 2026-07-16 15:00:00
  • 更新于 : 2026-07-16 19:33:18
  • 链接: https://blog.lxiol.cn/2026/07/16/dsl-make-llm-reliable/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。