🚨 Breaking
pydantic-ai v1.95.0 (2026-05-12) — Agent(instrument=True) deprecated. DeprecationWarning now, hard break in a future minor.
# Before
agent = Agent('openai:gpt-4o', instrument=True)
# After
from pydantic_ai.instrumentation import Instrumentation
agent = Agent('openai:gpt-4o', instrumentation=Instrumentation())
langchain-core 1.4.0 (2026-05-11) — load() now enforces valid_namespaces. Calls without it fail on untrusted manifests. This is a security boundary, not a cleanup:
# Before
result = load(manifest)
# After
result = load(manifest, valid_namespaces=["langchain_core"])
🗑️ Deprecations
crewAI 1.14.5a5 (2026-05-12) — CrewAgentExecutor deprecated; AgentExecutor is the new default for all Crew agents. No hard crash yet but it's on the removal track.
# Before
from crewai.agents import CrewAgentExecutor
executor = CrewAgentExecutor(agent=my_agent)
# After
from crewai.agents import AgentExecutor
executor = AgentExecutor(agent=my_agent)
💰 Pricing
No pricing moves this batch. Mistral Small 3.2 (mistral-small-2506) is live at parity pricing with Small 3.1. Worth a benchmark pass against claude-haiku-4-5 or gpt-4o-mini for classification or structured-extraction pipelines — Mistral Small tends to undercut on throughput cost. Mistral changelog
🆕 New
Qdrant v1.18.0 (2026-05-11) — Add named vectors to an existing collection without drop-and-recreate:
await client.createVectorField("col", {
name: "img",
params: { size: 512, distance: "Cosine" }
});
Release — Meaningful ops win for multi-modal pipelines that previously needed full schema migrations.
pydantic-ai v1.95.0 also ships native Tool Search on Anthropic and OpenAI, with pluggable search strategies for any provider. Low friction if you're already on pydantic-ai.
💡 Tip of the day
The langchain-core load() change is silent in CI if your test manifests are all internal — the guard only triggers on untrusted input. Grep for load( calls before upgrading to 1.4.0 in prod: grep -r 'from langchain_core.load import load' . and add valid_namespaces to every hit. Two-minute fix; the failure mode without it is arbitrary deserialization. Do this one first, then rotate the pydantic-ai instrument= calls.