DSPy 3.4.0b1 shifts language-model execution to a shared engine interface, adding a local CPython interpreter for trusted code and async support in ReActV2. This prerelease replaces experimental 3.3 LM types with native lm15 types and introduces custom Flex code proposals in GEPA.
- Default `engine="auto"` prefers native lm15 execution, falling back to LiteLLM only when inputs cannot be represented faithfully.
- Custom backends implement `complete(Request) -> Response` instead of subclassing `BaseLM`.
- `dspy.LocalInterpreter` runs generated Python in a persistent local CPython subprocess for trusted code.
- `dspy.ReActV2` now supports async prediction and tools, raising `ValueError` on final submission failures.
- GEPA accepts custom `code_proposer` arguments and fixes evaluation alignment when programs crash.
The release marks the start of the LM transition, with 3.5 serving as the migration deadline for users of the removed experimental types.