Tools
DSPy 3.4.0b1 moves LM execution off LiteLLM by default and sets 3.5 as the migration deadline
The 3.4.0b1 prerelease published 2026-09-11 bundles lm15 request/response/streaming types under `dspy.lm15` and makes `engine="auto"` prefer native execution, selecting LiteLLM before execution only for unsupported routes or inputs that cannot be represented faithfully. Auth failures, timeouts and provider errors explicitly do not trigger a backend switch. Custom backends can now implement `complete(Request) -> Response` instead of subclassing `BaseLM`, and the experimental LM types added in 3.3 are replaced in this release with 3.5 named as the deadline.
Source
↳ Follow the thread