← 返回项目列表
DSPy 是斯坦福 NLP 实验室开源的 LLM 编程框架(MIT 协议,35,700+ Stars),核心理念是 "Programming, not Prompting"——用声明式 Python 代码替代手写 Prompt,通过自动编译器(Optimizer)优化整个 LLM 管线。月下载量 640 万+,433+ 贡献者,9 篇学术论文覆盖 ICLR 2024 至 ICLR 2026,最新 GEPA 优化器获 ICLR 2026 Oral。已被 Shopify(成本降 75x)、Databricks(成本降 90x)、Dropbox(45% NMSE 降低)、AWS、JetBlue、Replit、Sephora、VMware、Moody's 等用于生产。DSPy 的核心价值是把 Prompt 工程从"手艺活"变成"编译科学"——让 AI 系统从脆弱的字符串拼接走向可维护、可优化、可复现的工程实践。

1. 项目/产品概览

维度信息
项目名DSPy(Declarative Self-improving Python)
开发者斯坦福 NLP 实验室(Omar Khattab、Christopher Potts、Matei Zaharia 等)
开源协议MIT
主要语言Python
GitHub Stars35,718(2026-07-02 查询)
Forks3,039
Commits4,550
创建时间2023-01-09
最近更新2026-07-01(活跃程度:高,523+ PR/年)
最新版本v3.3.0b1(ReActV2 模块 + 改进的 LM/BaseLM),共 109 个 Release
月下载量640 万+(PyPI)
贡献者433+
Discord8,400+ 成员
学术论文9 篇(ICLR 2024 论文 + ICLR 2026 GEPA Oral),另有 60+ 教程和 Cookbook
官网https://dspy.ai
生产用户Shopify(成本降 75x)、Databricks(成本降 90x,Genie 平台)、Dropbox(Dash 相关性评分,45% NMSE 降低)、AWS(Nova 模型迁移)、JetBlue(Databricks 上多聊天机器人)、Replit(代码修复)、SephoraVMwareMoody'sNous Research(Hermes Agent 自进化)
被依赖1,800+ 下游项目
可观测性原生 MLflow Tracing(基于 OpenTelemetry)集成
企业工具MLflow Model Serving 部署、PyPI 发布、MCP Server 导出
相关项目dspy-go(Go 语言兼容实现)、GEPA 独立库

2. 它主要能做什么

DSPy 的核心创新是把 LLM 调用从"手写字符串"升级为"声明式可编译程序"。这不是又一个 Prompt 模板库——它是一个完整的编译器框架。

2.1 核心三要素

DSPy 通过三个抽象层来构建和优化 LLM 系统:

要素说明技术特点
Signature(签名)用类型化的 Python Field 声明任务的输入和输出,替代手写 Prompt 字符串支持类型约束、描述字段、默认值、Literal 类型、Image 多模态字段
Module(模块)控制 LLM 执行策略的可组合组件,同一 Signature 可替换不同 ModulePredict(直接)、ChainOfThought(分步推理)、ReAct(工具+推理循环)、ReActV2、MultiChainComparison、ProgramOfThought、RLM(递归语言模型)
Optimizer(优化器)自动编译:根据标注数据和评价指标,自动搜索最优 Prompt 和示例GEPA(ICLR 2026 Oral,反思式基因进化,比 GRPO 少 35x 轮次)、MIPROv2(联合优化指令和示例)、BootstrapFewShot 等

2.2 编译器工作流

传统 Prompt 工程:
  写 Prompt 字符串 → 测试 → 效果不好 → 改字符串 → 再测试 → 换模型又得重来

DSPy 工作流:
  定义 Signature(声明任务) → 选 Module(执行策略) → Optimizer 编译(自动优化) → 保存为 JSON

关键区别:DSPy 的优化结果是可保存、可复用、可版本控制的 JSON 文件,而不是一段"碰巧好使"的文本。换模型后只需重新编译一次,代码无需改动。

2.3 核心理念:从 Prompt 到 Program

DSPy 将 LLM 应用开发从"汇编语言"(Prompt 字符串)提升到"高级语言"(声明式 Python):

# 传统方式:脆弱的 Prompt 字符串
prompt = """You are a helpful assistant. Given the following email, extract
the event name and date. Return in JSON format. Email: {email}"""

# DSPy 方式:声明式类型化签名
class ExtractEvent(dspy.Signature):
    """Extract event details from an email."""
    email: str = dspy.InputField()
    event_name: str = dspy.OutputField()
    date: str = dspy.OutputField()

extract = dspy.Predict(ExtractEvent)
result = extract(email="Team offsite this Thursday at 2pm")
# Prediction(event_name="Team Offsite", date="Thursday")

当你需要分步推理时,只需替换 Module,代码不改:

extract = dspy.ChainOfThought(ExtractEvent)  # 自动加推理步骤

当需要工具调用时:

agent = dspy.ReAct("question -> answer", tools=[search, calc])

2.4 高级能力

  • 多模态dspy.Image 作为字段类型,直接处理图片、图表
  • Assertions(断言):运行时约束校验,自动重试纠错
  • PythonInterpreter:安全沙箱执行代码,支持数学推理
  • RLM(递归语言模型):递归推理模块(2025 年 12 月新论文)
  • Fine-tuning 集成:优化器不仅调 Prompt,还能生成微调数据(BetterTogether 论文)
  • 异步支持:原生 async 执行,线程安全,适合高吞吐场景
  • 可观测性:MLflow Tracing(基于 OpenTelemetry),每步调用可追踪

3. 适用场景

场景说明典型客户/案例
Prompt 优化工程有标注数据,需要系统性地找到最优 Prompt 和示例组合任何已上线但效果不达标的 LLM 应用团队
分类/提取任务文本分类、实体提取、意图识别、结构化信息抽取Shopify(全平台商家元数据提取,成本降 75x)
RAG 管线优化优化检索→排序→生成的完整 Pipeline,自动调参Dropbox Dash(相关性评分,45% NMSE 降低)
模型迁移/降本从大模型迁移到小模型,通过编译让小模型输出逼近大模型AWS Nova 迁移、Databricks(90x 成本降低)
Agent 行为优化自动优化 Agent 的推理链、工具调用策略Databricks Genie(表格搜索)、Replit(代码修复)
多模态任务图片理解、图表分析(Image 字段类型)医疗影像(斯坦福 Prompt Triage,最高 +3400% 提升)
安全检测越狱检测、Prompt 注入检测DSPy 安全 Pipeline(含密码学不可篡改状态)
质量评估自动化构建自动评分/评估管线,减少人工标注各企业的 LLM-as-Judge 系统
研究与实验快速对比不同模型、策略和优化方法的系统性实验学术研究、AB 测试

4. 不太适合的场景

场景原因替代建议
简单一次性 PromptDSPy 的优化编译需要标注数据和评价指标,单次调用过度设计直接写几行 Prompt 或用 API 直接调用
完全没有标注数据Optimizer 必须依赖可计算指标(准确率、F1 等)先用人工评估上线,积累标注数据后再引入 DSPy
低代码/拖拽式开发DSPy 是纯 Python 代码框架,无 GUI 界面Dify / Coze / MaxKB
对指标设计要求高优化效果严重依赖于评估指标的质量,错误指标会导致退化需要有人设计好的 metric 函数
编译成本敏感GEPA/MIPROv2 优化过程需大量 LLM 调用(虽然比 RL 高效 35x)小型任务可不编译,直接用签名+模块
需要极致低延迟编译后的模块仍然调用 LLM,无法降低推理延迟本身模型蒸馏、量化
纯非 LLM 任务DSPy 是 LLM 编程框架,不适合传统 ML/规则系统Scikit-learn、XGBoost 等

5. 核心能力清单

5.1 Signature(签名)能力

能力说明
内联简写签名"question -> answer" 一行定义
类定义签名继承 dspy.Signature,支持 InputField/OutputField 类型声明
类型约束strintfloatboolLiteral["a","b"]list[dict]
多模态字段dspy.Imagedspy.Video 作为字段类型
描述字段desc="often between 1 and 5 words" 约束输出格式
默认值dspy.InputField(default="N/A")
文档字符串"""Task description.""" 作为任务语义说明

5.2 Module(模块)矩阵

Module用途适用场景
dspy.Predict直接调用 LLM,不添加额外推理简单分类、提取
dspy.ChainOfThought要求 LLM 先推理再输出需要逻辑推导的任务
dspy.ReAct推理+行动循环,支持工具调用Agent、多步推理、搜索
dspy.ReActV2改进版 ReAct,更好的推理结构(v3.3.0b1 新增)复杂 Agent 场景
dspy.MultiChainComparison多条推理链比较后输出最佳需要 consensus 的任务
dspy.ProgramOfThought代码生成+执行+推理数学推理、编程任务
dspy.RLM递归语言模型,多层嵌套推理深度推理、复杂逻辑
dspy.Module(自定义)组合多个 Signature 和 Module复杂多步骤 Pipeline

5.3 Optimizer(优化器)矩阵

Optimizer原理适用场景
GEPA基因进化 + Pareto 前沿 + 自然语言反思(ICLR 2026 Oral)当前最推荐的生产级优化器,比 GRPO 少 35x 轮次
MIPROv2联合优化指令文本和 few-shot 示例基础优化需求,零样本转少样本
BootstrapFewShot自动从训练集选取最佳示例快速构建 few-shot 程序
BootstrapFewShotWithRandomSearch随机搜索 + 示例引导探索更大的搜索空间

5.4 企业与工程能力

能力说明
MLflow Tracing基于 OpenTelemetry 的原生可观测性,追踪每个 LLM 调用
MLflow Model Serving一键将编译后的程序部署为生产 API
异步执行dspy.asyncify() 支持高并发场景
线程安全多线程环境安全,适合生产服务
程序保存/加载program.save("model.json") / dspy.Module.load("model.json")
多后端 LM 支持通过 dspy.LM() 统一接口,支持 OpenAI、Anthropic、本地模型等
LiteLLM 集成懒加载,按需激活
Go 语言兼容dspy-go 社区项目实现 DSPy 模块在 Go 中的兼容运行

6. 架构/部署/集成方式

6.1 安装

# 稳定版
pip install -U dspy

# 最新开发版(从 main 分支)
pip install git+https://github.com/stanfordnlp/dspy.git

6.2 LM 配置(统一模型接口)

DSPy 通过 dspy.LM() 统一管理各种 LLM 后端,代码无需因换模型而改动:

# OpenAI 模型
lm = dspy.LM("openai/gpt-4o-mini")
dspy.configure(lm=lm)

# Anthropic 模型
lm = dspy.LM("anthropic/claude-sonnet-4-20250514")

# 本地开源模型(通过 LiteLLM 或直接调用)
lm = dspy.LM("ollama/llama3.1")

# Azure OpenAI
lm = dspy.LM("azure/gpt-4o", api_key="...", api_version="...")

6.3 部署模式

模式说明
本地 OSSpip install dspy,纯 Python,适合开发实验
MLflow Model Serving将编译好的程序打包为 MLflow 模型,部署为 REST API
MLflow Tracing基于 OpenTelemetry 的调用追踪,适合生产监控
异步部署dspy.asyncify(program) 转为异步版本,支持 asyncio
MCP Server可将 DSPy 程序导出为 MCP 兼容的服务端点

6.4 集成生态

  • 可观测性:MLflow Tracing(OpenTelemetry 标准)
  • 部署:MLflow Model Serving、PyPI 发布
  • 模型提供商:OpenAI、Anthropic、Cohere、Mistral、Google Gemini、AWS Bedrock、Azure OpenAI、Ollama、本地 HuggingFace 模型等
  • 向量数据库:与 ColBERTv2 等检索器原生集成,也可通过工具函数接入任意向量库
  • 与其他框架:LangChain 有 DSPy 官方集成,DSPy 模块可嵌入 LangChain Pipeline;LlamaIndex 也可与 DSPy 互补使用
  • Go 语言:社区 dspy-go 项目提供兼容实现

7. 怎么用

7.1 最小完整示例

import dspy

# 1. 配置语言模型
lm = dspy.LM("openai/gpt-4o-mini")
dspy.configure(lm=lm)

# 2. 定义任务签名(替代手写 Prompt)
class SentimentClassifier(dspy.Signature):
    """Classify the sentiment of a sentence as positive, negative, or neutral."""
    sentence: str = dspy.InputField()
    sentiment: str = dspy.OutputField(desc="one of: positive, negative, neutral")

# 3. 选择执行策略
classify = dspy.ChainOfThought(SentimentClassifier)

# 4. 直接调用(零样本)
result = classify(sentence="The new feature is amazing and works flawlessly!")
print(result.sentiment)  # "positive"

7.2 带优化的完整训练流程

import dspy

# 准备训练数据
trainset = [
    dspy.Example(sentence="I love this product!", sentiment="positive").with_inputs("sentence"),
    dspy.Example(sentence="This is terrible.", sentiment="negative").with_inputs("sentence"),
    dspy.Example(sentence="It's okay, nothing special.", sentiment="neutral").with_inputs("sentence"),
    # ... 更多训练样本
]

# 定义评价指标
def sentiment_accuracy(example, pred, trace=None):
    return pred.sentiment.lower() == example.sentiment.lower()

# 创建分类器和优化器
classify = dspy.ChainOfThought(SentimentClassifier)
optimizer = dspy.GEPA(metric=sentiment_accuracy, auto="medium")

# 编译优化
optimized_classify = optimizer.compile(classify, trainset=trainset)

# 保存编译结果
optimized_classify.save("sentiment_classifier_v1.json")

# 加载使用
loaded = dspy.ChainOfThought(SentimentClassifier)
loaded.load("sentiment_classifier_v1.json")
result = loaded(sentence="Absolutely fantastic experience!")
print(result.sentiment)  # "positive"

7.3 Agent 示例(ReAct + 工具调用)

import dspy

lm = dspy.LM("openai/gpt-4o")
dspy.configure(lm=lm)

# 定义工具(Python 函数即可)
def search(query: str) -> list[str]:
    """Search a knowledge base for relevant documents."""
    return knowledge_base.query(query, k=3)

def calculator(expression: str) -> float:
    """Evaluate a mathematical expression."""
    return dspy.PythonInterpreter({}).execute(expression)

# 创建 Agent
agent = dspy.ReAct("question -> answer", tools=[search, calculator])

# 使用 Agent
result = agent(question="What is the GDP per capita of France based on 2024 data?")
# Agent 自动推理:需要 GDP 数据和人口数据 → search → 计算除法
print(result.answer)  # "$46,029"

7.4 多模态示例

class AnalyzeChart(dspy.Signature):
    """Describe the trend and key data points in a chart."""
    chart: dspy.Image = dspy.InputField()
    title: str = dspy.OutputField()
    trend: str = dspy.OutputField()
    data_points: list[dict] = dspy.OutputField()

analyze = dspy.Predict(AnalyzeChart)
result = analyze(chart=dspy.Image("quarterly_revenue.png"))

8. 售前可以怎么讲

8.1 一句话定位

"DSPy 是斯坦福推出的 LLM 编译器——把你的 AI 系统从手写 Prompt 的'手工作坊'变成自动优化的'工业生产线',Shopify 用它省了 75 倍成本,Databricks 省了 90 倍。"

8.2 客户痛点 → 解决方案

客户痛点DSPy 解法量化效果
"Prompt 调了两个月,效果还是不稳定"Optimizer 自动编译,几小时内找到远优于人工的 PromptGEPA 典型提升:+14% 准确率、Prompt 缩短 9.2x
"换模型就要重写所有 Prompt,太痛苦了"Signature 与模型解耦,换模型只需重新编译一次,代码不动AWS Nova 迁移案例:大模型→小模型无缝切换
"标注了很多数据,不知道怎么用来提升效果"Optimizer 直接把标注数据作为优化信号200 条样本即可将基线 62% 提升至 89%
"大模型太贵,想用小模型但效果差"编译优化让小模型的 Prompt 质量逼近或超越大模型零样本Databricks:开源模型+GEPA 优化 > Claude Opus 4.1(零样本)
"AI 系统是黑盒,出问题不知道哪个环节"MLflow Tracing 追踪每个 LLM 调用,每步可观测原生 OpenTelemetry 标准,接入现有监控
"团队 3 个人维护 50 个 Prompt,快疯了"Signature + Module 代码化管理,Prompt 变成版本可控的 JSON可 Git 管理、可 Diff 对比、可 CI/CD
"Agent 行为不稳定,时而好用时而胡言乱语"Optimizer 可优化 Agent 的工具调用策略和推理链Replit 代码修复、Databricks Genie Agent 均在生产验证

8.3 差异化卖点

vs LangChain(生态最广的 LLM 框架):

  • DSPy 不做编排和集成,而是专注优化 LLM 调用本身的质量——与 LangChain 互补
  • LangChain 已有 DSPy 官方集成,DSPy 模块可作为 LangChain Pipeline 中的一个优化节点
  • DSPy 的优化能力是 LangChain 原生不具备的:LangChain 帮你搭 Pipeline,DSPy 帮你调优 Pipeline
  • 定位:可以用 LangChain 做框架 + DSPy 做优化层

vs LlamaIndex(RAG 专用框架):

  • LlamaIndex 强在数据连接和索引管理,DSPy 强在 LLM 调用编译和优化
  • LlamaIndex 适合"帮 LLM 找到正确数据",DSPy 适合"让 LLM 正确处理数据"
  • DSPy 的 RAG 优化(检索策略、生成质量)可与 LlamaIndex 的索引层配合使用

vs 手写 Prompt(传统方式):

  • 手写 Prompt 是艺术,DSPy 是工程——可复现、可版本化、可自动化
  • 手写 Prompt 依赖个人经验,DSPy 依赖数据和指标——更科学
  • 手写 Prompt 换模型等于重写,DSPy 重新编译即可
  • 研究数据:优化出的 Prompt 在框架外用不一定有效(部分场景有退化),说明 DSPy 是一个整体编程模型,不只是"Prompt 生成器"

vs 国内框架(Dify / Coze / MaxKB 等):

  • DSPy 是底层 LLM 编译器,国内框架多偏应用层
  • DSPy 更适合有 ML 工程团队、需要精细化控制的中大型团队
  • DSPy 的学术背书(斯坦福+ICLR)对技术决策者有强吸引

8.4 客户价值故事线(5 步讲法)

  1. 切入:"你们上线 LLM 应用后,效果稳定吗?Prompt 调试花了多少时间?换模型是不是又得重来?"
  2. 共鸣:"手写 Prompt 就像用手工调整汇编代码——换一个 CPU(模型)就得全部重来。大模型本身在进化,但 Prompt 工程的方法还停留在 2023 年。"
  3. 演示:现场用 5 行 Python 定义一个分类任务 → 换 ChainOfThought 不改代码 → 用 GEPA 自动编译优化 → 展示效果提升 → 保存为 JSON,证明"可复现"
  4. 进阶:展示生产案例——Shopify 从单次 GPT-5 调用到自托管 Qwen-3-9B 多 Agent 架构,质量 2x 提升、成本从 $500 万/年降到零头
  5. 重磅:"DSPy 不是又一个 Prompt 模板库——它是 ICLR 2026 Oral 论文的编译器方法论。斯坦福出品、MIT 开源、Shopify/Databricks/Dropbox/AWS 均已上线生产。"

9. 常见客户问题

问题回答
DSPy 和 LangChain/LlamaIndex 是什么关系?竞争还是互补?互补关系。LangChain 做编排(Chain 和 Agent 的组织)、LlamaIndex 做索引(数据连接和检索),DSPy 做优化(LLM 调用的质量提升)。LangChain 已有 DSPy 官方集成。最佳实践:用 LangChain/LlamaIndex 搭架构,用 DSPy 做优化层。
一定要有标注数据才能用吗?优化(Optimizer)需要可计算的评价指标和标注数据。但如果不需要优化,直接使用 Signature + Module 写声明式程序,也能享受类型安全、模块化和可维护性提升,效果等同于好的零样本 Prompt。
优化一次要花多少钱?取决于训练集大小和优化器。GEPA 比传统方法高效得多(比 GRPO 少 35x 轮次)。典型场景:200 条训练样本、gpt-4o-mini、GEPA auto="medium",编译成本约 $2-5。Databricks 报告 90x 总成本降低(优化成本 vs 长期推理节省)。
支持私有化部署和国产模型吗?支持。DSPy 通过 dspy.LM() 统一接口接入任何模型后端,包括 Ollama 部署的本地模型(如 Qwen、Llama)、vLLM、HuggingFace TGI 等。Shopify 就是用自托管的 Qwen-3-9B 替换了 GPT-5。
编译结果可以在框架外用吗?部分场景可以,但不推荐。有一项研究(University of Minho, 2025)发现优化出的 Prompt 脱离 DSPy 框架后可能退化,因为 DSPy 不只是"生成 Prompt",而是一个完整的执行模型。建议编译后的模块保持在 DSPy 内加载使用。
DSPy 适合多大团队?技术门槛高吗?适合有 1-2 名 ML 工程师的中型以上团队。核心概念(Signature → Module → Optimizer)只需半天理解。Python 基础 + LLM 使用经验即可入门。60+ 教程和 Cookbook 覆盖常见场景。
和 Fine-tuning 相比哪个更好?不矛盾。DSPy 的 BetterTogether 论文证明:Prompt 优化 + Fine-tuning 结合效果最优。DSPy 优化器可以生成微调数据,也可仅做 Prompt 优化。对于资源有限的团队,只优化 Prompt(zero/few-shot)即可获得显著收益。
数据安全怎么保证?排查过程是否会上传数据?DSPy 本身是本地 Python 库,数据不经过任何远程服务器(除你配置的 LLM API)。Optimizer 编译过程中的 LLM 调用走你配置的模型后端(可以是本地模型)。MLflow Tracing 数据存储在你自己的环境中。
对中文任务支持如何?框架本身与语言无关。中文效果取决于所使用的 LLM。配合 Qwen、DeepSeek 等中文强模型,DSPy 优化同样有效。Signature 的 docstring 和字段描述可用中文编写。

10. PoC 建议

推荐 PoC 方向:从手写 Prompt 到 DSPy 编译优化

选一个客户已有标注数据的 LLM 任务(分类/提取/RAG),对比手写 Prompt vs DSPy 编译后的效果。

阶段内容时间产出
1. 环境搭建pip install dspy,配置 LM(客户当前使用的模型)0.5 天可运行环境
2. 任务迁移将现有任务的 Prompt 逻辑转为 DSPy Signature(不改业务逻辑)0.5 天可运行的 Signature 版本
3. 基线测试用 Predict 零样本运行训练集,记录基线准确率0.5 天基线指标
4. GEPA 优化配置 metric、运行 GEPA 编译(auto="medium")0.5 天编译后的优化版本
5. 效果评估在测试集上对比手写 Prompt vs 编译版本,输出提升报告0.5 天对比评估报告
6. 模型迁移验证换一个更便宜的模型(如 gpt-4o-mini → gpt-5.4-nano),重新编译对比0.5 天成本优化方案
7. 生产化演示展示 JSON 保存/加载、MLflow Tracing 可观测性0.5 天可演示的完整系统

总体时间:3.5 天

验证指标:

  • 编译后准确率 > 手写 Prompt
  • 编译后稳定性(多次运行方差) < 手写 Prompt
  • 模型迁移后编译版效果接近或超过原模型手写版
  • 编译时间 < 30 分钟(200 条样本)
  • 编译后可保存为 JSON,加载即用

PoC 成功标准(Go/No-Go):

  • ✅ Go:编译版效果至少不差于手写版,且显著降低 prompt 维护工作量
  • ✅ Go:模型迁移实验成功,证明换模型只需重新编译
  • ❌ No-Go:客户完全无标注数据且不愿投入标注(此时 DSPy 优化器价值无法体现)

11. 风险和注意事项

风险级别说明缓解措施
指标设计依赖DSPy 优化的效果完全取决于 metric 函数的质量。错误的指标会导致"高分低能"——程序优化了指标但没真正提升任务质量PoC 阶段优先验证 metric 设计;用人工评估交叉验证自动指标
标注数据门槛Optimizer 编译需要标注数据(至少几十到几百条),无标注数据的场景无法发挥核心价值先引导客户建立标注流程(或利用已有的用户反馈数据);不优化也能用 Signature+Module 享受代码化收益
编译成本GEPA/MIPROv2 编译过程需要多次 LLM 调用,大训练集下可能产生 $10-100 不等的一次性成本用 auto="medium" 控制搜索空间;用小样本试点再扩展;编译是一次性成本,对比长期推理节省
框架外退化研究显示 DSPy 优化出的 Prompt 脱离框架使用可能效果下降保持编译结果在 DSPy 内加载使用;不要尝试导出为纯文本 Prompt
学习曲线从"写 Prompt 字符串"到"声明式编程"的思维转变需要时间,团队需理解 Signature/Module/Optimizer 三层抽象60+ 教程覆盖常见任务;类似 PyTorch 的学习路径——先用 Predict 跑通,再逐步深入优化
研究属性低-中DSPy 起源于学术界,部分模块(如 RLM)标注为实验性,API 在版本间可能有 breaking change使用稳定版本(v3.x);关注 Release Notes;生产关键路径用 Predict/ChainOfThought/ReAct 等成熟模块
中文生态较弱社区和文档以英文为主,中文教程和案例较少使用中文 LLM 配合 DSPy 框架;可参考英文文档+翻译工具
与 LangChain 等框架的集成深度虽然有官方集成,但两个框架的设计哲学不同,混用时需注意概念映射明确分工:编排交给 LangChain,优化交给 DSPy;从独立使用 DSPy 开始,需要时再集成
Lock-in 风险MIT 协议,纯 Python,与任何特定模型无关编译结果以 JSON 保存,可审计;Signature 是标准 Python 类;Fork 友好

12. 我的售前判断

推荐度:强烈推荐(特别适合已有 LLM 应用但效果不稳定、或需要大规模降本的客户,尤其是具备 ML 工程能力的中大型企业)

理由:

  1. 方法论领先:"Programming, not Prompting"不是营销口号——它是一种被 ICLR 2024 和 ICLR 2026(Oral)双顶会验证的编译器范式。在 AI 基础设施越来越成熟的时代,Prompt 优化的手工作坊模式终将被淘汰,DSPy 处于这个范式转换的最前沿。
  1. 生产案例扎实:Shopify(成本降 75x,从 GPT-5 迁移到自托管 Qwen-3-9B)、Databricks(成本降 90x,开源模型+优化 > Claude Opus 4.1)、Dropbox(45% NMSE 降低)——这些不是 PoC 实验,是千万级请求的生产系统。每个案例都有公开的技术博客/视频详解。
  1. ROI 叙事清晰:一次性的编译成本($2-500)换长期的推理成本节省($50 万/年 → 零头)。这在任何 CFO 面前都是有力的商业论证。
  1. 工程友好:MIT 协议开源、JSON 保存/加载、MLflow Tracing(OpenTelemetry 标准)、异步支持、线程安全、MCP Server 导出——生产化所需的基础设施都已就绪。
  1. 学术背书 + 商业验证双保险:斯坦福团队持续产出:2023 DSPy→2024 MIPROv2/BetterTogether→2025 GEPA(ICLR 2026 Oral)/RLM。每月 523+ PR、109 个 Release 证明社区活跃度极高。

推荐客户画像:

  • 已上线 LLM 应用,但 Prompt 维护成本高、效果不稳定
  • 有 ML/工程团队(1-2 人即可),有 Python 能力
  • 想要从大模型迁移到小模型以降本
  • 有标注数据(或愿意投入标注)的 RAG/分类/提取/Agent 场景
  • 重视可观测性和工程化的中大型企业
  • 使用多个模型提供商,需要统一 LLM 调用层

不推荐的情况:

  • 完全没有标注数据且短期内不打算标注(Optimizer 价值无法体现)
  • 需要低代码/无代码平台(推荐 Dify/Coze/MaxKB)
  • 团队完全没有 Python 能力(推荐 API 直调或 SaaS 方案)
  • 只有 1-2 个简单 Prompt、不涉及优化(直接手写即可)
  • 对成本极敏感、无法承担编译期间的 LLM 调用费用

13. 参考资料

  • GitHub 仓库:https://github.com/stanfordnlp/dspy
  • 官方网站:https://dspy.ai
  • 安装指南:https://dspy.ai/getting-started/installation/
  • 入门教程:https://dspy.ai/getting-started/program-dont-prompt/
  • 生产部署:https://dspy.ai/production/
  • 使用案例汇总:https://dspy.ai/community/use-cases/
  • DSPy 框架论文(ICLR 2024):https://arxiv.org/abs/2310.03714
  • GEPA 论文(ICLR 2026 Oral):https://arxiv.org/abs/2507.19457
  • MIPROv2 论文:https://arxiv.org/abs/2406.11695
  • BetterTogether(Fine-tuning + Prompt Opt):https://arxiv.org/abs/2407.10930
  • RLM(递归语言模型):https://arxiv.org/abs/2512.24601
  • DSP 论文(框架起源):https://arxiv.org/abs/2212.14024
  • Shopify 生产案例:https://www.youtube.com/watch?v=bxToahwOVpY
  • Dropbox Dash 案例:https://dropbox.tech/machine-learning/optimizing-dropbox-dash-relevance-judge-with-dspy
  • AWS Nova 迁移案例:https://aws.amazon.com/blogs/machine-learning/improve-amazon-nova-migration-performance-with-data-aware-prompt-optimization/
  • Databricks 90x 成本降低:https://www.databricks.com/blog/building-state-art-enterprise-agents-90x-cheaper-automated-prompt-optimization
  • Databricks Genie:https://www.databricks.com/blog/pushing-frontier-data-agents-genie
  • JetBlue 案例:https://www.databricks.com/blog/optimizing-databricks-llm-pipelines-dspy
  • Replit 代码修复:https://blog.replit.com/code-repair
  • MLflow 集成:https://mlflow.org/docs/latest/llms/dspy/index.html
  • 可观测性教程:https://dspy.ai/tutorials/observability/
  • DeepWiki DSPy:https://deepwiki.com/stanfordnlp/dspy
  • Discord 社区:https://discord.gg/XCGy2WDCQB
  • PyPI:https://pypi.org/project/dspy/
  • dspy-go(Go 语言实现):https://github.com/darwishdev/dspy-go
  • GEPA 独立库:https://github.com/gepa-ai/gepa
  • GEPA 使用案例集:https://gepa-ai.github.io/gepa/guides/use-cases/
  • 医疗影像 DSPy 应用:https://arxiv.org/abs/2511.11898
  • 多场景 DSPy 优化研究:https://www.alphaxiv.co/overview/2507.03620

分析日期:2026-07-02 | 数据时效:GitHub 实时获取,官方网站内容截至访问日期,v3.3.0b1