| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 3.0.4 source code.tar.gz | 2025-10-21 | 16.3 MB | |
| 3.0.4 source code.zip | 2025-10-21 | 16.5 MB | |
| README.md | 2025-10-21 | 7.7 kB | |
| Totals: 3 Items | 32.7 MB | 4 | |
3.0.4b2 has been running for a while without seeing issue, so we are making it an official 3.0.4 release.
The release note is the combination of 3.0.4b1 and 3.0.4b2.
What's Changed
Optimizers
- Fix GEPA usage tracking with tuple outputs by @smec-cgint in [#8739]
- Add custom instruction_proposer support to GEPA with multimodal (dspy.Image) handling by @andressrg in [#8737]
- Enhance logging for valset usage in GEPA by @LakshyAAAgrawal in [#8770]
- [Feature] GEPA: Add custom component selection logic support by @andressrg in [#8765]
- Add MLFLow <> GEPA support by @TomeHirata in [#8763]
- Update optimization overview with data split guidance by @LakshyAAAgrawal in [#8792]
- docs: Add comprehensive instruction_proposer documentation and examples for GEPA by @andressrg in [#8775]
- Introduce gepa_kwargs for passing custom kwargs to gepa.optimize by @LakshyAAAgrawal in [#8850]
- Propagate callback metadata during GEPA minibatch eval by @TomeHirata in [#8835]
- Fix typo in GEPA warning by @TomeHirata in [#8840]
- Update gepa[dspy] dependency version to 0.0.17; Potential fix for load from state not working in GEPA by @LakshyAAAgrawal in [#8859]
- SIMBA Improvements by @klopsahlong in [#8766]
Features & Enhancements
- Add Anthropic Citation API support by @TomeHirata in [#8721]
- Add api reference for citations and document by @TomeHirata in [#8801]
- Allow custom type to be streamed and use native response by @TomeHirata in [#8778]
- Fix example code for Citations by @TomeHirata in [#8868]
- Add
ToolCall.executefor smoother tool execution (#8825, @TomeHirata) - Add DSPy User-Agent header (#8887, @TomeHirata)
- Update headers when specified (#8893, @TomeHirata)
- Arbor GRPO Sync Update (#8939, @Ziems)
- Deprecate Image from_* helpers in favor of flexible constructor by @isaacbmiller in [#8771]
- Cache Image.format for better throughput by @TomeHirata in [#8842]
- test(dspy.Image): Adds a test with ReAct that has an Image tool by @isaacbmiller in [#8855]
Bug Fixes & Type Handling
- Fix [#8703] - fixing module and feedback mismatch by @Lucas-Fernandes-Martins in [#8777]
- Fix value parsing and add tests by @chenmoneygithub in [#8774]
- Parse doubly-encoded base type in json.parse by @TomeHirata in [#8814]
- Fix unexpected parsing of Optional[str] fields when string has brackets or braces by @sontanon in [#8805]
- Use mcp.ClientSession for type hint by @TomeHirata in [#8826]
- Fix type hint for callpreprocess by @TomeHirata in [#8827]
- fix: Allow DummyLM answers dict values to be of any type to work with a wider range of signatures by @BenMcH in [#8803]
- Fix the crash when usage tracker is enabled with non-prediction output by @TomeHirata in [#8831]
- Fallback to memory cache when disk is not available by @TomeHirata in [#8718]
- bug(lm): Avoid unnecessary cache key computation by @isaacbmiller in [#8862]
- Display metric=0 in eval table by @TomeHirata in [#8817]
- Add save/load to Embeddings by @TomeHirata in [#8818]
- Fix chunk loss in long streaming with native response field (#8881, @TomeHirata)
- Make the buffer condition more precise (#8907, @TomeHirata)
- fix: add fallback on missing end marker during streaming (#8890, @enitrat)
- fix(JSONAdapter): escape logic when JSON mode but no structured outputs (#8871, @isaacbmiller)
- fix: XML adapter markers (#8876, @enitrat)
- Fix
test_xml_adapter_full_prompt(#8904, @TomeHirata) - Fix responses API (#8880, @chenmoneygithub)
- Fix response_format handling for responses API (#8911, @TomeHirata)
- Fix error handling in dspy parallel (#8860, @TomeHirata)
- fix(LM): default
temperatureandmax_tokenstoNone(#8908, @isaacbmiller) - fix(MIPROv2): select between
task_modelandprompt_model(#8877, @isaacbmiller) - Exclude API keys from saved programs (#8941, @Copilot)
Documentation & Tutorials
- Minor document changes by @Navanit-git in [#8722]
- Add doc page to learn tool usage in DSPy by @TomeHirata in [#8709]
- Style fix for tool page by @TomeHirata in [#8781]
- Add tracing banner in new tutorials by @B-Step62 in [#8772]
- docs: fix link to the sglang installation/getting started page by @tomsanbear in [#8776]
- Guide on using native tool calling by @chenmoneygithub in [#8788]
- fix: removed duplicate cell from GEPA information extraction tutorial by @vacmar01 in [#8806]
- Remove EmailInsight class from email extraction tutorial by @TomeHirata in [#8790]
- Update documentation to include responses api by @chenmoneygithub in [#8780]
- [Feature] Add automatic llms.txt generation via mkdocs-llmstxt plugin by @aberoham in [#8562]
- Guide on using native tool calling by @chenmoneygithub in [#8788]
- Update HotPotQA in light of [#8591] by @okhat in [#8751]
- Add Learn MCP page (#8903, @TomeHirata)
- Fix MIPRO paper link in RAG tutorial (#8937, @TomeHirata)
- [Docstring] Add docstring for Adapter (#8915, @chenmoneygithub)
- [Docs] Google-style docstrings for
dspy/primitives/exampleExample class (#8949, @Davshiv20) - [Docs] Google-style docstrings for
Signature.prepend/append/insert/delete(#8945, @gnetsanet) - Better tutorial sidebar—do not auto-expand all tutorials (#8912, @chenmoneygithub)
Minor Fixes & Maintenance
- Use developer role in response API by @TomeHirata in [#8727]
- 8688 csv output by @crawftv in [#8725]
- Add header link by @TomeHirata in [#8773]
- Add experimental annotation by @TomeHirata in [#8712]
- Update LICENSE error by @TomeHirata in [#8783]
- Fixed Spelling error in DatasetDescriptor Prompt by @PoeAudits in [#8812]
- Update API reference by @TomeHirata in [#8844]
- Expose EvaluationResult as dspy.evaluate.EvaluationResult by @TomeHirata in [#8843]
- Include built-in types in DSPy api references by @chenmoneygithub in [#8810]
- Change DummyLM to take an adapter at init by @isaacbmiller in [#8802]
- Infinitus AI agents by @suman-subash-infinitusai in [#8708]
- [WIP] Arbor Interface Update by @Ziems in [#8837]
- Refactor URL construction in
ArborReinforceJobto useurljoin(#8951, @Ziems) - Update type hint of
ClientSession(#8894, @TomeHirata) - Long line in function signature (style) (#8914, @chenmoneygithub)
- Fix lint of LM (#8884, @chenmoneygithub)
- Deflake the real LM test (#8924, @chenmoneygithub)
New Contributors
- @crawftv made their first contribution in https://github.com/stanfordnlp/dspy/pull/8725
- @Navanit-git made their first contribution in https://github.com/stanfordnlp/dspy/pull/8722
- @smec-cgint made their first contribution in https://github.com/stanfordnlp/dspy/pull/8739
- @suman-subash-infinitusai made their first contribution in https://github.com/stanfordnlp/dspy/pull/8708
- @andressrg made their first contribution in https://github.com/stanfordnlp/dspy/pull/8737
- @tomsanbear made their first contribution in https://github.com/stanfordnlp/dspy/pull/8776
- @Lucas-Fernandes-Martins made their first contribution in https://github.com/stanfordnlp/dspy/pull/8777
- @aberoham made their first contribution in https://github.com/stanfordnlp/dspy/pull/8562
- @PoeAudits made their first contribution in https://github.com/stanfordnlp/dspy/pull/8812
- @sontanon made their first contribution in https://github.com/stanfordnlp/dspy/pull/8805
- @enitrat made their first contribution in https://github.com/stanfordnlp/dspy/pull/8890
- @Davshiv20 made their first contribution in https://github.com/stanfordnlp/dspy/pull/8949
- @gnetsanet made their first contribution in https://github.com/stanfordnlp/dspy/pull/8945
Full Changelog: https://github.com/stanfordnlp/dspy/compare/3.0.3...3.0.4