Fetching from the wire…
Public story · 2026-09-12 · high
The prerelease switches to native request execution and won't fall back to LiteLLM when a call fails, only when a route isn't supported yet.
Why now: The 3.4.0b1 prerelease went up September 11 and sets 3.5 as the point where the old path goes away.
DSPy's 3.4.0b1 prerelease changes how the framework talks to language models. Instead of routing calls through LiteLLM by default, it now executes natively first, choosing engine="auto", and only falls back to LiteLLM when a route isn't supported or an input can't be represented faithfully in the native path. The request, response, and streaming types for this live under a new dspy.lm15 module, per the release notes.
The detail that matters most is what doesn't trigger a fallback. Auth failures, timeouts, and provider errors stay put. They error out instead of rerouting to a different backend behind the scenes. That's a real constraint to design around if you've built anything that assumed a failed call might retry through LiteLLM without you knowing.
Custom backends also get simpler. You can now implement a single complete(Request) -> Response method instead of subclassing BaseLM, and this replaces the experimental LM types that shipped in 3.3. If you built against those, expect to update.
DSPy names 3.5 as the deadline for this migration, which puts a real clock on it rather than leaving it open-ended. If you're running DSPy in anything production-shaped, this prerelease is worth pulling now to see what breaks, before the fallback path you may be depending on goes away for good.
Each link below shares sources, entities, or timing with this story.
OX Security disclosed a systemic vulnerability on June 16 in core Model Context Protocol implementations that enables arbitrary command execution, exposing API keys, internal databases, and chat histories on any vulnerable MCP host. This isn't one bad server. It's a protocol-l...
The September 6 stable release carries PR #38114, which stopped credential-less Vertex passthrough from forwarding every proxy auth header upstream: Authorization, x-litellm-api-key, x-goog-api-key, api-key, x-api-key, Ocp-Apim-Subscription-Key and your configured key header....
Released September 1, leading its notes with cosign verification for ghcr.io/berriai/litellm, recommending verification against the public key at pinned commit 0112e53 because a commit hash is cryptographically immutable, with tag-based verification offered as the weaker optio...
A month ago, TeamPCP compromised Trivy's GitHub Actions runners. Then they trojanized LiteLLM on PyPI. Now Wiz Research confirms they've expanded to npm via a worm called CanisterWorm, using stolen publish tokens to push malicious packages across JavaScript's package ecosystem...
Docker-only build, no PyPI package, released September 2. OpenTelemetry v2 spans now emit gen_ai.usage.cache_creation.input_tokens and gen_ai.usage.cache_read.input_tokens alongside the cache cost already reported (release). The notes say directly that anyone computing spend f...
The RC published August 30 adds a complexity_router rule sending client housekeeping calls to the cheapest model tier, and reports prompt caching savings as two numbers, total and gateway-attributed, so you can tell what the proxy saved you from what the provider would have ca...
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.