DSPy 3.4.0 (2026-09-25) integrates Jev through TypeSafe with experimental Noul/Choice/Score decision types and ReAnchor calibration; the LM layer prefers native lm15 engines, adds LocalInterpreter and async ReActV2. 3.4 is the LM transition release; 3.5 is the migration deadline.

Key Takeaways

  • ✓Jev via TypeSafe: Noul/Choice/Score with probability evidence (#10463)
  • ✓ReAnchor fits thresholds/cuts/weights against your metric (#10475)
  • ✓engine=auto prefers native lm15; register_provider for compatible HTTP
  • ✓LocalInterpreter for trusted CPython (not a security sandbox); RLM interpreter_factory= kw-only
  • ✓3.4 transition → 3.5 migration deadline; see LM migration guide
🔬

In-Depth Technical Analysis

Background

DSPy programs often freeze module structure while optimizers only rewrite instructions, and decision tasks lacked first-class probabilistic types. 3.4.0 ships Jev via TypeSafe, ReAnchor calibration, and a native lm15 LM path, with 3.5 as the migration deadline.

Architecture

TypeSafe("jev-latest") drives Jev; experimental Noul / Choice[...] / Score[...] expose value + probability evidence (#10463). Thresholds/weights apply locally for cache reuse. ReAnchor fits those settings against your metric without rewriting instructions (#10475). engine="auto" prefers native lm15; register_provider declares OpenAI/Anthropic-compatible HTTP. LocalInterpreter runs trusted CPython in a persistent subprocess (not a sandbox). Async ReActV2 via acall.

Benchmarks

No new public SWE numbers. Caching is required by default for ReAnchor; no fixed inference budget guarantee. Docs migrate to Zensical amid Material for MkDocs EOL timeline (#10316).

Get started

pip install -U 'dspy==3.4.0' (add [typesafe] for Jev). Read the 3.4.0 notes and LM migration guide.