Maxime Rivest 一年前第一次尝试 DSPy,感觉像魔法。花了一整年想深入研究,最终在一个早上坐下来实际运行了示例代码。
以下是 DSPy 能教给你的关于 AI 工程的核心思维。
提示词工程是反模式
传统 AI 开发的工作流是:写提示词 → 测试 → 调整提示词 → 再测试 → 重复。这是一种工匠式的方法,依赖个人经验和试错。
DSPy 的范式转变:提示词不是文本,是代码。应该用编译器思维来对待——声明你想要什么,让系统优化如何达到它。
模块化编程
DSPy 把 AI 应用分解成模块:
- Signature:声明输入输出类型
- Module:实现特定功能(如 ChainOfThought、ReAct)
- Metric:定义成功标准
- Teleprompter:自动优化提示词
这种模块化让 AI 应用像传统软件一样可维护、可测试、可复用。
编译器优化替代人工调优
传统方法:人工调整提示词,每次改动都要手动测试。
DSPy 方法:定义 metric,让 teleprompter 自动搜索最佳提示词组合。这类似于传统编译器优化——你写高级代码,编译器生成高效机器码。
关键 Lesson
Lesson 1:分离声明与实现
声明「我想要一个总结模块,输入是长文档,输出是 3 句话摘要」。具体如何实现(提示词措辞、示例选择、链式调用)由编译器决定。
Lesson 2:Metric 驱动开发
没有 metric 的优化是盲目的。DSPy 要求你明确定义「好」的标准——BLEU 分数、人工评分、业务指标——然后让系统朝这个方向优化。
Lesson 3:可组合性
DSPy 模块可以像乐高一样组合。一个 ReAct agent 可以嵌入一个 ChainOfThought 模块,后者又可以调用一个检索模块。复杂系统从简单组件构建。
Lesson 4:版本控制和复现
传统提示词工程的问题是难以复现——「这个提示词上周 work,这周不 work了」。DSPy 的声明式方法让配置可版本控制,优化过程可追踪。
为什么这很重要
AI 工程正在从「提示词手工艺」向「软件工程」进化。DSPy 是这个进化的关键一步——它提供了框架、工具和思维模型,让 AI 应用开发更像传统编程。
对于团队来说,这意味着:
- 新人可以更快上手(学习框架而非积累提示词经验)
- 应用更容易维护(模块化 + 声明式)
- 性能更容易优化(metric 驱动 + 自动优化)
- 结果更可复现(版本控制 + 确定性编译)
DSPy 不是银弹,但它代表了 AI 工程的正确方向:从 artisanal 到 industrial。