2025 年初,Hacker News 上出现了一个直击灵魂的帖子:「如果 DSPy 这么伟大,为什么没人用它?」这个看似简单的质疑背后,隐藏着一个值得深思的技术采用悖论:一个在学术和理念层面颇具创新性的框架,为何在实际采用中持续遇冷?与常见的「生产落地难」分析不同,本文试图从 DSPy 核心价值主张失效的角度,解析框架设计理念与开发者真实需求之间的根本性错位。
价值主张的美好承诺
DSPy 框架的核心价值主张可以归纳为三个层面。首先是声明式抽象:开发者声明输入输出和数据契约,框架自动生成并优化提示词,而非手工编写每个提示词变体。其次是模块化组合:将 LLM 应用拆解为可组合的模块、工具、适配器和度量标准,支持测试、可观测性和渐进式改进。最后是自优化能力:通过内置优化器,系统能够根据评估标准自动调整提示词和推理策略,实现声明式工作流的可迭代改进。
这三重承诺构建了一个诱人的愿景:在 LLM 快速迭代的时代,开发者不再需要为每个模型版本重新手工调优提示词,而是通过声明式编程实现「一次编写,随模型演进」的理想状态。斯坦福 NLP 团队出身的背景更是为这一框架增添了学术可信度。
价值主张失效的第一层:抽象泄漏
然而,当开发者真正深入使用 DSPy 时,承诺的抽象层很快出现剧烈泄漏。表面上,开发者只需要声明签名和模块接口,但实际调试过程中,开发者不得不深入理解底层的提示词生成逻辑、优化器行为轨迹以及模块间的数据流动。这种「白盒调试」需求与声明式抽象「黑盒使用」的承诺形成了直接矛盾。
更关键的问题在于,DSPy 的优化器并没有消除提示词工程的存在,而是将其转移到了更高层级。开发者仍然需要设计评估指标、准备训练数据集、调整优化器参数,而这些工作的复杂度往往高于直接手工调优提示词本身。对于寻求「简化」的团队而言,这种复杂性转移并没有带来实质性的效率提升。
价值主张失效的第二层:优化器的幻觉
DSPy 最核心的卖点是其自动优化能力 —— 通过少量示例,框架可以自动生成高质量提示词。但实际使用中,这个能力面临双重困境。一方面是数据依赖:优化器需要高质量的演示示例和评估数据来驱动,而在真实业务场景中,高质量的标注数据本身就是稀缺资源。另一方面是泛化脆弱:即使在特定示例上优化成功,生成的提示词往往对输入分布的变化极为敏感,一次简单的用户请求格式调整就可能导致整体性能显著下降。
这意味着开发者并不能真正「放手」让框架自动优化,而是需要持续投入精力监控、优化和维护。这种持续投入与「一次声明,长期受益」的承诺存在明显落差。
价值主张失效的第三层:模块化的隐性成本
模块化设计本意是降低复杂性并提升可维护性,但在 DSPy 的实现中,模块化带来了显著的隐性成本。模块间的数据契约需要精确设计,一个字段的类型或格式变化可能级联影响多个模块。模块组合的调试极为困难,当 LLM 输出不符合预期时,定位问题出现在哪个模块、哪个环节需要大量的推理工作。
与 Python 生态中成熟的函数式组合不同,DSPy 的模块更像是「半自主智能体」,每个模块都嵌入了 LLM 调用决策,这使得组合行为的确定性大大降低。团队很快发现,当模块数量超过三到四个时,整体行为的可预测性急剧下降。
生态位竞争:框架选择的现实考量
在开发者面临的技术选型中,DSPy 需要与成熟的替代方案竞争。LangChain 和 LangGraph 提供了更完整的生态,包括向量数据库集成、对话记忆管理、工具调用等常见模式,开箱即用且文档丰富。直接使用 OpenAI API 配合手工提示词虽然原始,但在简单场景下更加轻量和可控。LlamaIndex 则专注于检索增强生成,在知识库问答场景中更具针对性。
DSPy 试图在「通用声明式框架」的定位上建立优势,但这个定位本身就面临挑战。对于大多数团队而言,「通用」往往意味着「不够专注」;而声明式抽象带来的额外复杂度,需要在项目规模足够大、复杂度足够高时才能体现出维护收益。对于中小规模的 LLM 应用,这种收益往往难以抵消前期学习成本。
可操作的采纳建议
基于上述分析,对于考虑采用 DSPy 的团队,可以从以下几个维度进行评估。首先是问题规模:如果你的 LLM pipeline 涉及超过十个需要独立调优的提示词,且这些提示词需要频繁根据业务需求调整,那么 DSPy 的声明式抽象可能带来价值;反之,如果只是简单的单步调用,直接 API 调用更加实际。其次是数据成熟度:在采纳 DSPy 之前,确保团队已有或愿意投入资源建立高质量的评估数据集,否则优化器将成为无源之水。第三是团队技术栈:DSPy 要求团队具备 Python 元编程和模块化设计能力,如果团队更熟悉 JavaScript/TypeScript 生态,LangChain 可能是更自然的选择。
值得注意的是,即使评估后认为 DSPy 适合特定场景,也建议采用渐进式采纳策略:先在一个非关键的旁支流程中验证效果,再逐步扩展到核心业务。
小结
DSPy 的价值主张失效并非单一因素造成,而是声明式抽象承诺、优化器能力预期以及模块化设计收益这三者与真实开发场景需求之间的系统性错位。在 LLM 应用开发工具快速成熟的当下,开发者需要警惕「理念优雅但实践复杂」的框架陷阱,回归到具体业务问题的实际需求来做技术决策。
资料来源:Hacker News 讨论「If Dspy is so great, why isn't anyone using it?」(https://news.ycombinator.com/item?id=47490365)