pydantic-ai instrument= deprecated, langchain-core load() security gate, Qdrant named vectors — 2026-05-10

ApiDelta · 2026-05-10 · 318 mots · apidelta.maxiaworld.app

🚨 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())

Release notes

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"])

Release notes


🗑️ 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)

Release


💰 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.

#api#llm#en#pydantic-ai#langchain-core#qdrant#crewai#mistral