关键要点
- MIT许可——可免费使用、修改和自托管,包括商业用途
- GitHub仓库stanfordnlp/dspy已突破37,900颗星标和3,300个fork(2022年12月在斯坦福NLP启动)
- PyPI包
dspy,当前版本3.3.1(2026年8月21日)——持续积极维护 - 核心抽象:Signature(类型化输入/输出)、Module(Predict、ChainOfThought、ReAct)、Optimizer(BootstrapFewShot、MIPROv2、GEPA)
- 类别:面向LLM程序的提示词/权重优化——不是像LangChain或CrewAI那样的多智能体编排框架
- 安装:
pip install dspy,运行程序前需要先配置LLM提供商
📍 简单一句话
DSPy是斯坦福NLP出品的免费MIT许可Python框架,让开发者用类型化的Signature和Module对LLM任务进行编程,随后用MIPROv2等算法自动优化提示词和少样本示例,而不是手动进行提示词工程。
💬 简单来说
使用DSPy时,你用代码描述希望LLM完成的事情——输入、输出、步骤——然后框架会通过在示例上测试不同选项,自行搜索出实际最佳的提示词措辞,而不需要你自己猜测并手动编辑提示词文本。
📌注: DSPy解决的问题与本系列中大多数智能体框架不同——它优化的是管道内部的提示词,而不是编排多智能体对话。参见本地LLM软件目录,了解DSPy在智能体与管道框架中的定位。
从斯坦福研究到生产级框架
斯坦福NLP团队于2022年12月开始开发DSPy,stanfordnlp/dspy GitHub仓库将其描述为“用于编程——而非提示——语言模型的框架”。 该项目源于学术研究,探索的是编译声明式LLM管道,而非手写提示词字符串。
该框架早期就引入了Signature和Module作为核心抽象,随后不断扩展其优化算法:先是用于快速选择少样本示例的BootstrapFewShot,随后是通过贝叶斯优化联合搜索指令与少样本示例的MIPROv2,近期又推出了GEPA——据文档介绍,它能根据一组示例和评分函数自动调优提示词,“直到质量收敛”为止。
截至本次评测,DSPy仍处于积极开发中:PyPI上的dspy包版本为3.3.1,发布于2026年8月21日。该项目官网报告有454名以上的贡献者,并记录了Shopify、Databricks、AWS等公司的生产环境使用情况。
与本系列中的其他多个框架不同,DSPy没有被归档,没有进入官方声明的仅维护模式,也没有公布任何继任项目——它是自身所提出理念的、正在积极开发的正典实现。
斯坦福NLP启动开发
- Date:
- 2022-12
- What it means:
- stanfordnlp/dspy仓库以及Signature/Module核心抽象诞生
BootstrapFewShot优化器
- Date:
- 早期版本
- What it means:
- 一个快速的基线优化器从训练集中自动生成少样本示例
MIPROv2优化器
- Date:
- 后期版本
- What it means:
- 通过贝叶斯优化联合搜索指令与少样本示例的功能发布
GEPA优化器
- Date:
- 近期版本
- What it means:
- 一款用于根据评分函数自动调优提示词的更新优化器
PyPI上的dspy 3.3.1
- Date:
- 2026-08-21
- What it means:
- 截至本次评测已核实的最新版本——积极开发仍在继续
📌注: DSPy的PyPI包名有一段值得了解的历史:dspy这个名称原本已在PyPI上被占用,因此该项目早期版本以dspy-ai发布。如今官方包名已是dspy——当前安装请使用pip install dspy。
DSPy是什么?
DSPy是斯坦福NLP团队打造的开源Python框架(MIT许可,持续积极维护,github.com/stanfordnlp/dspy),用于以声明式方式对语言模型任务进行编程,然后将这些声明编译为优化后的提示词——以及可选的优化后权重——而不是由人手动反复调整提示词文本。
- Signature:任务输入和输出的类型化定义,写作简短的类或字符串(例如
"question -> answer"),可在不同的底层LLM和提示词策略之间移植 - Module:在Signature周围实现执行策略的组件——直接补全用
Predict,逐步推理用ChainOfThought,使用工具的推理循环用ReAct,等等 - Optimizer(此前称为teleprompter):一种根据某项指标自动(而非手动)调优DSPy程序内提示词和少样本示例的算法——知名优化器包括
BootstrapFewShot、MIPROv2和GEPA - 编译程序:在训练集和评分函数上运行优化器,会生成一个内置了调优后指令与示例的已编译程序,之后可像任何其他DSPy程序一样运行
- 模型无关:DSPy连接的是你所配置的LLM提供商,而不是内置某个模型;同一份Signature/Module代码可针对不同的底层模型重新优化
- 并非多智能体编排器:DSPy没有像CrewAI或AutoGen那样内置多个相互通信智能体的概念——DSPy程序通常是一个由Module组成的单一管道,不过
ReAct模块可以在推理循环中调用工具
pip install dspy
# 最小示例:Signature + Module + Optimizer
import dspy
class AnswerQuestion(dspy.Signature):
"""Answer a question factually."""
question: str = dspy.InputField()
answer: str = dspy.OutputField()
qa = dspy.ChainOfThought(AnswerQuestion)
result = qa(question="What is the capital of France?")
print(result.answer)DSPy的费用是多少?
DSPy本身在MIT许可下免费——没有订阅、付费套餐,也没有斯坦福托管的付费服务。 你需要支付的只是自己的算力费用,以及所配置LLM提供商可能产生的API费用。
- DSPy(开源框架):在MIT许可下永久免费,自托管,没有使用量上限,运行时不需要账户
- 没有托管产品或订阅:DSPy是你自行导入并运行的库,而不是托管服务——没有任何东西需要订阅
- 可选费用:如果连接的是云端模型而非本地模型,需支付所配置LLM提供商的API费用(例如云服务商按token计费)
- 优化器相关成本:运行像MIPROv2这样的优化器会进行多次LLM调用以搜索最佳提示词配置,因此编译程序本身会产生额外的API调用成本,之后再运行已编译程序还会产生进一步的成本
如何安装并开始使用DSPy?
通过pip install dspy从PyPI安装DSPy即可。 不需要克隆代码库,不需要Docker,也不需要单独的CLI二进制文件——DSPy作为普通的Python导入使用。
- 1安装该包:
pip install dspy。 - 2配置一个LLM提供商——例如,托管模型可用
dspy.configure(lm=dspy.LM('openai/gpt-4o-mini', api_key='your-key')),或指向本地提供的OpenAI兼容端点。 - 3定义一个描述任务输入输出的Signature,可以是简短字符串(
"question -> answer"),也可以是使用dspy.InputField()/dspy.OutputField()的类型化类。 - 4将Signature封装进一个Module——直接调用用
dspy.Predict(...),逐步推理用dspy.ChainOfThought(...)——然后像调用函数一样调用它。 - 5可选:准备一个小型训练集和一个评分函数,然后运行
dspy.BootstrapFewShot或dspy.MIPROv2等优化器,编译出调优版本的程序。 - 6完整教程集,包括RAG管道、使用
ReAct的智能体循环以及优化器配置,参见DSPy文档。
运行DSPy需要Docker或GPU吗?
不需要。DSPy是一个调用你所配置LLM提供商的Python库——除非你另外自行运行本地模型服务器,否则不需要Docker或本地GPU硬件。
DSPy能配合本地模型使用吗?
可以,只要本地模型通过与OpenAI兼容或其他受支持的端点提供服务,并将DSPy的LM配置指向该端点即可——DSPy本身不内置任何模型。
谁应该使用DSPy?
DSPy适合已经在用Python编写LLM管道、并希望根据可衡量结果而非手动试错来调优其中提示词的开发者。 对于主要需要多智能体协调或无代码界面的团队来说,它的适配度较低。
什么情况下不应使用DSPy?
如果你的任务本质上是协调多个智能体或接入第三方工具集成,而不是优化单一管道内的提示词,请跳过DSPy。
- 需要可视化、无代码工作流构建器的团队——DSPy是代码优先的,没有拖拽式界面
- 本质上属于多智能体协调(智能体之间相互委派子任务)的项目——为该模式专门打造的框架,如CrewAI或AutoGen,在结构上更合适
- 一个手写单一提示词已足够胜任的一次性脚本——引入Signature、Module和优化循环会带来额外的工程开销,只有在需要可衡量、可复现的提示词改进时才值得
- 没有办法为正确性打分的任务——DSPy的优化器需要一个指标函数,因此纯主观、没有标签示例的任务从优化步骤中获益很少
- 恰恰相反,当你有一个管道、一项指标和一个训练集,并希望将提示词工程步骤自动化、可复现时,才是使用DSPy的最佳时机
DSPy与替代方案对比
DSPy与大多数智能体编排框架属于不同类别:它优化的是管道内部的提示词和少样本示例,而不是协调多个智能体。与之最接近的比较对象,是其他用于构建LLM管道的Python框架,尽管它们的核心工作与DSPy并不相同。
工具 | 核心工作 | 许可证 | 状态 | 最适合场景 |
|---|---|---|---|---|
| DSPy | 提示词/权重优化 | MIT | 活跃 | 按指标调优提示词 |
| LangChain | 通用LLM管道构建 | MIT | 活跃 | 最广泛的集成生态 |
| LlamaIndex | 面向RAG的数据框架 | MIT | 活跃 | 检索增强型管道 |
| Semantic Kernel | 结构化提示词/技能组合 | MIT | 活跃(正向MAF收敛) | 企业级.NET/Python/Java SDK |
本表对比的是DSPy与概念上重叠度最高的Python管道框架,而非多智能体编排器——DSPy并不与解决智能体协调问题(而非提示词优化)的CrewAI或AutoGen直接竞争。
评估DSPy时的常见错误
这些错误源于把DSPy当作多智能体框架来使用,或跳过了真正体现该框架价值的优化步骤。
常见问题
DSPy还在维护吗?
是的。stanfordnlp/dspy仓库正在积极开发中;截至本次评测,PyPI上的dspy包版本为3.3.1,发布于2026年8月21日。
DSPy是免费的吗?
是的。DSPy采用MIT许可证,商业使用、修改和自托管均免费。没有需要支付的订阅费用或托管产品。
DSPy和LangChain有什么区别?
LangChain是一个通用框架,用于构建拥有广泛集成生态的LLM管道;DSPy则专门专注于用类型化的Signature和Module对任务进行编程,随后根据指标自动优化提示词和少样本示例。两者解决的是不同但互补的问题。
DSPy的Signature和Module是什么?
Signature是任务输入输出的类型化定义(例如"question -> answer")。Module在Signature周围实现一种执行策略——直接补全用Predict,逐步推理用ChainOfThought,使用工具的推理循环用ReAct。
DSPy的优化器是什么?
优化器(此前称为teleprompter)是根据指标和训练集,自动调优DSPy程序内提示词和少样本示例的算法——知名优化器包括BootstrapFewShot、MIPROv2和GEPA。
如何安装DSPy?
运行pip install dspy。这是当前正式的PyPI包名;一个较旧的dspy-ai包先于它存在。
DSPy能取代CrewAI或AutoGen这类多智能体框架吗?
不能。DSPy优化的是管道内部的提示词,它不像CrewAI或AutoGen那样编排多个相互通信的智能体。这两个类别是互补关系,而非竞争关系。
DSPy采用哪种许可证发布?
MIT许可证,允许免费商业使用、修改和自托管。
DSPy是谁开发的?
DSPy由斯坦福NLP团队开发,开发工作始于2022年12月。该项目报告称拥有454名以上的贡献者,并记录了Shopify、Databricks、AWS等公司的生产环境使用情况。
DSPy有多少GitHub星标?
截至2026年9月,stanfordnlp/dspy仓库已获得超过37,900颗GitHub星标和3,300个fork。
