斯坦福 NLP 的 DSPy 于 2026 年 10 月 12 日发布 3.4.1(GitHub Release 的 published_at 为 2026-10-12T23:12:32Z,非预发布)。主要变化有三处:GEPA 默认改用结构化的指令提议器、dspy.RLM 可在自己的 REPL 内组建 DSPy 子智能体、新增 Python 3.15 支持,并修复 3.4.0 的导入崩溃。升级前需要留意反射请求形态变化与若干不兼容改动。
DSPy 3.4.1:GEPA 默认改用结构化指令提议器,RLM 可在沙箱内组建子智能体
这次发布的是什么
DSPy 是斯坦福 NLP 小组维护的开源框架,用「签名 + 模块 + 优化器」把提示词工程变成可编译、可优化的程序。2026 年 10 月 12 日,stanfordnlp/dspy 发布 3.4.1(GitHub Release 的 published_at 为 2026-10-12T23:12:32Z,非预发布)。PyPI 上该包的最新版本同步为 3.4.1。
官方一句话总结这一版做了三件事:把 GEPA 的结构化指令提议器设为默认;让 dspy.RLM 能在自己的 REPL 里组建 DSPy 子智能体;加入 Python 3.15 支持。此外修复了 3.4.0 的导入崩溃,并包含流式输出、适配器与解释器相关的修补。
安装命令由发布正文给出:pip install --upgrade dspy==3.4.1(实际执行时按自己 shell 的引号习惯处理)。
可用性与限制
- 结果会变:官方在升级提示中写明,GEPA 的默认反射请求形态改变后,即使固定随机种子,优化结果也可能与 3.4.0 不同。
- 反射模型要求:反射用的语言模型必须是能返回 JSON 的 dspy.LM。若模型只回纯文本或带代码围栏的内容,提议会失败;GEPA 会把失败记入日志并保留当前候选,因此一次跑完也可能得到未经优化的程序。
- 预算口径变化:max_llm_calls 现在同时计入子智能体的模型调用,用了子智能体的程序会更早触到上限。
- 保留字限制:RLM 的输入字段若命名为 dspy,或工具命名为 dspy、以 _dspy 或 __dspy 开头,会抛出 ValueError。
- 旧存档兼容:在 3.4.0 上以空值评分等级保存的程序,在 3.4.1 上不再能加载。
- 缓存失效:每个 RLM 提示现在都包含子智能体段落,且没有开关可关,因此 3.4.0 的缓存与录制响应不再匹配。
- 废弃节奏不变:3.4.0 宣布的 3.5 接口切换仍然生效;旧式自定义模型方法、旧引擎包装层、自定义的旧补全快捷方式与 OpenAI 风格的消息参数都在被移除之列,而短调用形式仍然保留。
主要功能
- 默认提议器切换:不传参时自动构建结构化的指令提议器
- 结构化反射:历史输入、工具轨迹与自定义类型以结构化内容进入反射模型
- 提议器可调:支持参考材料、附加指令、基础指令、字符上限与历史输出截断
- 子智能体构建:在 REPL 里直接创建预测、思维链与反应式子智能体
- 预算统一:一次预算同时覆盖单次查询、批量查询与子智能体调用
- 受限调用:受沙箱保护的代码只能设置生成类参数
- 多解释器支持:进程隔离与进程内解释器都可承载子智能体
- 序列化修补:反射输入里无法被序列化的数据改为就地转成字符串
- 版本支持:新增 Python 3.15 支持
技术原理
从发布正文能确认的实现细节有四处。
指令提议器这一处最实:旧默认把反射样本拼成一段原始提示,再从反引号里把新指令抠出来;新的指令提议器改成通过 dspy.Predict 配 JSON 适配器去调反射模型。差别不在「谁更会写指令」,而在「反射模型看到了什么」——历史输入、工具轨迹,以及图像这类自定义类型(含嵌套图像)现在以结构化内容进入反射模型,而不是退化成文本占位符。官方同时声明 GEPA 的反射指令本身未变。可配置项包括参考材料路径或目录、附加指令、基础指令、硬性字符上限、历史输出截断与适配器。超出上限的草稿会有一次压缩机会,框架不会截断指令。
子智能体这一处解决的是跨边界调用:RLM 写的代码现在能 import dspy,并在宿主侧构建子智能体,跨解释器边界传输的只有 JSON。可选的子智能体包括预测模块、思维链模块、使用 RLM 已配好工具的反应式模块,以及跑在同一解释器后端的嵌套 RLM。
预算这一处是新的约束:max_llm_calls 现在同时覆盖单次查询、批量查询与全部子智能体调用;每个被请求的补全占用一个额度,因此采样数不会把预算乘上去。未设置子模型时,子智能体沿用全局设置里的模型。
安全这一处给出了边界:为受沙箱保护的代码发起的模型调用只接受生成参数,无法指定模型、接口地址、密钥与请求头。官方也提醒,进程内解释器不做任何隔离,上述约束只对行为良好的代码有效,只应用于可信代码。默认解释器与进程隔离解释器可以承载子智能体;若解释器无法运行子智能体的引导层并抛出代码执行错误或语法错误,框架会记一条警告并在本次调用中不使用子智能体。
实际体验
可按下面几步自己验证:
- 用 pip show dspy 确认安装版本为 3.4.1,并留意 pyyaml 已成为新增依赖,官方写明要求 6.0.1 及以上。
- 不传指令提议器直接构造 dspy.GEPA,确认其默认构建的是结构化指令提议器。
- 用一个只回纯文本的反射模型跑一次,确认提议失败被记入日志、程序保持未优化,而不是直接崩溃。
- 在 RLM 里写一段 import dspy 并构建思维链子智能体的代码,确认能跑通。
- 让子智能体发起若干次调用,观察 max_llm_calls 是否比 3.4.0 更早触顶。
- 给 RLM 传一个名为 dspy 的输入字段,确认抛出 ValueError。
- 加载一份在 3.4.0 上保存、含空值评分等级的程序,确认加载被拒绝。
任一步与描述不符时,先核对版本与缓存,再回到官方发布正文与接口变更说明。
项目地址与获取方式
Release 页:https://github.com/stanfordnlp/dspy/releases/tag/3.4.1
仓库:https://github.com/stanfordnlp/dspy
安装命令见官方发布正文。请通过官方仓库与官方包管理渠道获取,核对包名拼写,避免装到名字相近的第三方包。是否收费与额度限制,以官方说明为准。
适合谁用
- 在用 GEPA 做提示词优化的人:默认提议器换成了结构化版本,行为变化需要重新看一遍结果。
- 用 RLM 让模型写代码处理长上下文的人:子智能体这一项直接扩展了可执行任务的复杂度。
- 需要跑 Python 3.15 的人:这一版补上了支持。
- 卡在 3.4.0 导入崩溃上的人:该问题已在本版修复。
- 不适合:只是想找一两条提示词模板的人——这个框架的价值在编译与优化流程,不在现成文案。
常见问题
升级后优化结果和以前不一样,是出错了吗?
不一定是。官方在升级提示里写明,默认反射请求的形态变了,因此即使使用同一种子,优化结果也可能与 3.4.0 不同。判断是否正常,应回到同一份评估集上比对,而不是与旧结果逐字对照。
反射用的模型有什么硬性要求?
按发布正文,反射模型必须是 dspy.LM 或兼容的基类实现,并且能返回可被适配器解析的 JSON。若反射模型回的是纯文本或带代码围栏的内容,提议会失败。
子智能体的调用怎么计入预算?
官方说明,max_llm_calls 现在覆盖单次查询、批量查询以及每一个子智能体的模型调用;每个被请求的补全占用一个额度。使用了子智能体的程序会更早触到上限,需要时调高该值。
从 3.4.0 保存的程序加载失败怎么办?
发布正文给出两条路径:一是把评分等级列表里的空值替换为具体描述;二是删掉整个评分标准键,让字段退回签名中声明的等级。整程序存档仍可用加载函数读入,但在首次运行或保存时会报同样的错。
3.4.0 说的接口废弃还在生效吗?
是的。官方在 3.4.1 重申,3.5 的接口切换时间点没有变化;旧式自定义模型方法、旧引擎包装层与 OpenAI 风格的消息参数都在被移除范围内,而短调用形式仍然保留。
相关工具与内容
- 分类:AI 编程、AI 智能体
- 同题材快讯:Pydantic AI 2.54.0 发布
- 同题材快讯:vLLM 0.31.0 发布
- 延伸阅读:2026年AI编程工具推荐榜单
- 工具页:Cursor、Claude Code、TRAE
相关内容
Meta 发布 Muse Wonder 系列:1M token 上下文,主打长跑型智能体与电脑操作
Meta Superintelligence Labs 于 2026 年 10 月 12 日在官方研究博客发布 Muse Wonder 系列,包含 Muse Wonder 与 Muse Wonder Full 两个版本。官方称其面向编码、长时运行智能体与电脑操作场景,支持 1M token 上下文,输入涵盖文本、图片与 PDF,并支持工具调用与结构化输出。同日 Vercel AI Gateway 上线该模型,模型名为 meta/muse-wonder-1.0。
Agno v3.1.3:外部智能体会话可跨副本恢复,后台运行、取消与逐步回放一起补齐
Agno 于 2026 年 10 月 12 日发布 v3.1.3(GitHub Release 的 published_at 为 2026-10-12T11:22:21Z,非预发布)。这一版的新增能力几乎全部围绕外部智能体展开:会话跨副本恢复、后台运行与取消、按步骤回放、失败重试、运行指标、上下文压缩与事件落库。
Unsloth v0.1.906-beta:本地模型接管浏览器操作,Qwen-Image-2.1-Turbo 8 步出图
Unsloth 于 2026 年 10 月 12 日发布标签为 v0.1.906-beta 的 Release(GitHub Release 的 published_at 为 2026-10-12T14:17:13Z)。Release 本身未被标记为预发布,但标签带有 beta 后缀。这一版把浏览器操作交给本地模型控制,同时上线 Qwen-Image-2.1-Turbo 的 8 步版本、文本扩散语言模型训练,以及 Mac 上的投机解码加速。
继续阅读:Unsloth v0.1.906-beta:本地模型接管浏览器操作,Qwen-Image-2.1-Turbo 8 步出图 · 2026年AI对话助手推荐榜单:14 款国内外主流产品怎么选