Martin Fowler:DSL 让 LLM 更可靠
Martin Fowler 博客文章:DSL 通过减少代码变体、自带校验器和领域级错误信息让 LLM 更可靠。关键转变——DSL 程序比 prompt 更适合作为真理源。
原文:Unmesh Joshi(Thoughtworks 杰出工程师,《Patterns of Distributed Systems》作者),2026.7.14 发布于 martinfowler.com
核心论点
LLM 代码生成极快,但要确保生成的内容精确符合意图,需要清晰的边界。抽象和 DSL 提供了一套强有力的缰绳,从一开始就引导 LLM。
预先规范的局限
大型系统的设计决策不可能事先全部知晓。规范只是”起点假设”,真正的约束和边界条件在实现过程中逐步发现。审阅代码 ≠ 写代码——亲自写代码才迫使你做出具体设计决策。
代码的双重身份
| 身份 | 含义 |
|---|---|
| 机器指令 | 让计算机执行 |
| 领域概念模型 | 对问题域的词汇表达 |
好的代码库本身就是领域词汇的表示。LLM 把代码当作关键上下文:好的抽象、类型和测试共同约束模型输出,让它更可靠。
LLM 的两个角色
- 设计阶段:头脑风暴伙伴,探索设计空间,发现正确抽象
- 设计成熟后:作为领域词汇的自然语言接口
为什么 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 的生成边界——不是限制它,而是让它在你的领地里精准发力。
- 标题: 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 进行许可。