🚀 langchain-ai/langchain - Release Notes

langchain-perplexity==0.1.0 (2025-04-03)

Initial release

Bump `langchain-core` version in perplexity's `pyproject.toml` (#30647)
partners: Add Perplexity Chat Integration (#30618)

langchain-openai==0.3.12 (2025-04-02)

Changes since langchain-openai==0.3.11

openai[patch]: upgrade tiktoken and fix test (#30621)
openai: release 0.3.12 (#30616)
openai[patch]: support structured output and tools (#30581)
openai[patch]: ignore file blocks when counting tokens (#30601)
langchain-openai: Support token counting for o-series models in ChatOpenAI (#30542)
docs,langchain-community: Fix typos in docs and code (#30541)

langchain-core==0.3.50 (2025-04-02)

Changes since langchain-core==0.3.49

Bug fixes:

core[patch]: Propagate config_factories in RunnableBinding (#30603)
core[patch]: pydantic 2.11 compat (#30554)
core[patch]: Include delayed inputs in langchain tracer (#30546)
core[patch]: fix loss of partially initialized variables during prompt composition (#30096)
core[patch]: stop deleting records with "scoped_full" when doc is empty (#30520) -- this is a fix for the "scoped_full" mode in the indexing API.


Internal:

core[patch]: specify default event loop scope in pyproject.toml (#30543)

Make linting rules stricter

core: Bump ruff version to 0.11 (#30519)
core: Fix test_stream_error_callback (#30228)
core: Add ruff rules for PLW (Pylint Warnings) (#29288)
core: Add ruff rules G, FA, INP, AIR and ISC (#29334)
core: Add ruff rules for Pylint PLC (Convention) and PLE (Errors) (#29286)
core: Add ruff rule FBT003 (boolean-trap) (#29424)
core: Add ruff rules PERF (#29375)
core: Add ruff rules PT (pytest) (#29381)
core: Add ruff rules S110 and S112 (#30599)
core: Add ruff rules D (docstring) (#29406)
core: Accept ALL ruff rules with exclusions (#30595)

langchain-groq==0.3.2 (2025-03-31)

Changes since langchain-groq==0.3.1

groq: release 0.3.2 (#30570)
langchain-groq: Add response metadata when streaming (#30379)

langchain==0.3.22 (2025-03-31)

Changes since langchain==0.3.21

langchain: release 0.3.22 (#30557)
Fix incorrect import path for AzureAIChatCompletionsModel (#30417)

langchain-mistralai==0.2.10 (2025-03-27)

Changes since langchain-mistralai==0.2.9

mistralai: release 0.2.10 (#30526)
Fix: Enable max_retries Parameter in ChatMistralAI Class (#30448)
mistral[patch]: check types in adding model_name to response_metadata (#30499)
standard-tests[patch]: require model_name in response_metadata if returns_usage_metadata (#30497)

langchain-fireworks==0.2.9 (2025-03-27)

Changes since langchain-fireworks==0.2.8

fireworks: release 0.2.9 (#30527)
standard-tests[patch]: require model_name in response_metadata if returns_usage_metadata (#30497)

langchain-tests==0.3.17 (2025-03-26)

Changes since langchain-tests==0.3.16

tests: release 0.3.17 (#30502)
standard-tests[patch]: require model_name in response_metadata if returns_usage_metadata (#30497)

langchain-openai==0.3.11 (2025-03-26)

Changes since langchain-openai==0.3.10

openai: release 0.3.11 (#30503)
openai[patch]: support streaming token counts in AzureChatOpenAI (#30494)
infra: handle flaky tests (#30501)
openai[patch]: attempt to make test less flaky (#30463)

langchain-core==0.3.49 (2025-03-26)

Changes since langchain-core==0.3.48

core[patch]: release 0.3.49 (#30500)
core[patch]: store model names on usage callback handler (#30487)
core[patch]: mark usage callback handler as beta (#30486)
core[patch]: Remove old accidental commit (#30483)
core[patch]: add token counting callback handler (#30481)
core[patch]: Fix handling of `title` when tool schema is specified manually via JSONSchema (#30479)
docs[patch]: update trim_messages doc (#30462)

langchain-tests==0.3.16 (2025-03-24)

Changes since langchain-tests==0.3.15

standard-tests: release 0.3.16 (#30464)
langchain-tests: allow test_serdes for packages outside the default valid namespaces (#30343)

langchain-openai==0.3.10 (2025-03-24)

Changes since langchain-openai==0.3.9

openai[patch]: bump openai sdk (#30461)
openai: release 0.3.10 (#30460)
openai[patch]: support multi-turn computer use (#30410)
openai[patch]: trace strict in structured_output_kwargs (#30425)
Fix typo: change 'ben' to 'be' in comment (#30358)

langchain-core==0.3.48 (2025-03-24)

Changes since langchain-core==0.3.47

core[patch]: release 0.3.48 (#30458)
core: add tool_call exclusion in filter_message (#30289)
docs[patch]: add warning to token counter docstring (#30426)
core(mermaid): allow greater customization (#29939)
core[patch]: optimize trim_messages (#30327)
core[patch]: more tests for trim_messages (#30421)

langchain-ollama==0.3.0 (2025-03-21)

Changes since langchain-ollama==0.2.3

`langchain-ollama` 0.3.0 updates the default method for `with_structured_output` to Ollama's dedicated [structured output feature](https://ollama.com/blog/structured-outputs). This corresponds to `method="json_schema"`. Previously, `with_structured_output` used Ollama's tool-calling features for this method.

**To restore old behavior**: explicitly specify `method="function_calling"` when calling `with_structured_output`:
```python
llm = ChatOllama(model="...").with_structured_output(
    schema, method="function_calling"
)
```

## Other features

Added support for parsing reasoning content in Deepseek models:
```python
llm = ChatOllama(model="deepseek-r1:1.5b", extract_reasoning=True)

result = llm.invoke("What is 3^3?")
result.content  # "3^3 is..."
result.additional_kwargs["reasoning_content"]  # " To calculate 3^3, I start by... "
```

## Detailed changelog

ollama: release 0.3.0 (#30420)
ollama: add reasoning model support (e.g. deepseek) (#29689)
(Ollama) Fix String Value parsing in  _parse_arguments_from_tool_call (#30154)
ollama[minor]: update default method for structured output (#30273)
langchain_ollama: Support keep_alive in embeddings (#30251)
core[patch]: update structured output tracing (#30123)
core: basemessage.text() (#29078)
multiple: fix uv path deps (#29790)
infra: add UV_FROZEN to makefiles (#29642)
infra: migrate to uv (#29566)

langchain-deepseek==0.1.3 (2025-03-21)

Changes since langchain-deepseek==0.1.2

deepseek: temporarily bypass tests (#30423)
deepseek: release 0.1.3 (#30422)
partner: ChatDeepSeek on openrouter not returning reasoning (#30240)
multiple: support `strict` and `method` in with_structured_output (#30385)
deepseek: install local langchain-tests in test deps (#30198)
[Exception Handling] DeepSeek JSONDecodeError (#29758)
core: basemessage.text() (#29078)
multiple: fix uv path deps (#29790)

langchain-xai==0.2.2 (2025-03-20)

Changes since langchain-xai==0.2.1

xai: release 0.2.2 (#30403)
multiple: enforce standards on tool_choice (#30372)
multiple: support `strict` and `method` in with_structured_output (#30385)
core: basemessage.text() (#29078)

langchain-tests==0.3.15 (2025-03-20)

Changes since langchain-tests==0.3.14

tests: release 0.3.15 (#30397)
multiple: enforce standards on tool_choice (#30372)
multiple: support `strict` and `method` in with_structured_output (#30385)
langchain-tests: skip instead of passing image message tests (#30375)
langchain-tests: allow subclasses to add addition, non-standard tests (#30204)
openai[patch]: support structured output via Responses API (#30265)
standard tests: test simple agent loop (#30268)
standard-tests, openai: bump core (#30202)

langchain-mistralai==0.2.9 (2025-03-20)

Changes since langchain-mistralai==0.2.8

mistral: release 0.2.9 (#30402)
multiple: enforce standards on tool_choice (#30372)
multiple: support `strict` and `method` in with_structured_output (#30385)

langchain-groq==0.3.1 (2025-03-20)

Changes since langchain-groq==0.3.0

groq: release 0.3.1 (#30401)
multiple: enforce standards on tool_choice (#30372)
multiple: support `strict` and `method` in with_structured_output (#30385)

langchain-fireworks==0.2.8 (2025-03-20)

Changes since langchain-fireworks==0.2.7

fireworks: release 0.2.8 (#30400)
multiple: support `strict` and `method` in with_structured_output (#30385)
core[patch]: update structured output tracing (#30123)
multiple: fix uv path deps (#29790)
infra: add UV_FROZEN to makefiles (#29642)
infra: migrate to uv (#29566)

langchain-core==0.3.47 (2025-03-20)

Changes since langchain-core==0.3.46

core: release 0.3.47 (#30396)
multiple: enforce standards on tool_choice (#30372)

langchain-groq==0.3.0 (2025-03-19)

Changes since langchain-groq==0.2.5

groq: release 0.3.0 (#30374)
groq[minor]: remove default model (#30341)

langchain-core==0.3.46 (2025-03-19)

Changes since langchain-core==0.3.45

core[patch]: release 0.3.46 (#30383)
Dereference run tree (#30377)
Unset context to None in var (#30380)
Unset context after step (#30378)
core[patch]: add util for approximate token counting (#30373)
Rm test for parent_run presence (#30356)

langchain==0.3.21 (2025-03-18)

Changes since langchain==0.3.20

langchain[patch]: update text-splitters min bound (#30352)
langchain[patch]: lock with latest text-splitters (#30350)
langchain: release 0.3.21 (#30348)
Core: Adding Azure AI to Supported Chat Models (#30342)
fix(core): Ignore missing secrets on deserialization (#30252)
openai[patch]: support Responses API (#30231)
Fixed an issue with the OpenAI Assistant's 'retrieval' tool and adding support for the 'attachments' parameter (#30006)

langchain-text-splitters==0.3.7 (2025-03-18)

Changes since langchain-text-splitters==0.3.6

text-splitters: release 0.3.7 (#30347)
text-splitters: Add JSFrameworkTextSplitter for Handling JavaScript Framework Code (#28972)
multiple: fix uv path deps (#29790)

langchain-community==0.3.20 (2025-03-18)

Changes since langchain-community==0.3.19

community: release 0.3.20 (#30354)
support return reasoning content for models like qwq in dashscope (#30317)
community: fix import exception too constrictive (#30218)
community: support in-memory data (Blob.from_data) in all audio parsers (#30262)
community: add 'extract' mode to FireCrawlLoader for structured data extraction (#30242)
community: fix CPU support for FasterWhisperParser (implicit compute type for WhisperModel) (#30263)
community: cube document loader - do not load non-public dimensions and measures (#30286)
community[patch]: fix bilibili loader handling of multi-page content (#30283)
community: cube document loader - fix logging (#30285)
community[fix] : Pass API_KEY as argument (#30272)
community: Remove the system message count limit for ChatTongyi. (#30192)
fixes#30182: update tool names to match OpenAI function name pattern (#30183)
community[patch]: ChatPerplexity: track usage metadata (#30175)
add JiebaLinkExtractor for chinese doc extracting (#30150)
community: fix AttributeError when creating LanceDB vectorstore (#30127)
community: make DashScope models support Partial Mode for text continuation. (#30108)
Add request_id field to improve request tracking and debugging (for Tongyi model) (#30110)
community: fix Jira API wrapper failing initialization with cloud param (#30117)
community[minor]: Fix regular expression in visualize and outlines modules. (#30002)

langchain-openai==0.3.9 (2025-03-17)

Changes since langchain-openai==0.3.8

Support for OpenAI [Responses API](https://platform.openai.com/docs/api-reference/responses).

Specify use of Responses API as an init param:
```python
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-4o-mini",
    use_responses_api=True,
)
```

`ChatOpenAI` will also automatically route through the Responses API if a feature specific to that API is used:
```python
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o-mini")

llm.invoke(
    "What was a positive news story from today?",
    tools=[{"type": "web_search_preview"}],
)
```

Details:

openai[patch]: release 0.3.9 (#30325)
openai[patch]: support additional Responses API features (#30322)
openai[patch]: support structured output via Responses API (#30265)
openai[patch]: support Responses API (#30231)
standard-tests, openai: bump core (#30202)

langchain-anthropic==0.3.10 (2025-03-14)

Changes since langchain-anthropic==0.3.9

anthropic: release 0.3.10 (#30287)
anthropic: support built-in tools, improve docs (#30274)
core[patch]: update structured output tracing (#30123)
anthropic[patch]: add PDF input example to API reference (#30156)
core, openai, standard-tests: improve OpenAI compatibility with Anthropic content blocks (#30128)

langchain-mistralai==0.2.8 (2025-03-13)

Changes since langchain-mistralai==0.2.7

mistralai[patch]: bump core (#30278)
mistral: release 0.2.8 (#30275)
mistral[patch]: set global ssl context (#30189)
core[patch]: update structured output tracing (#30123)
anthropic, mistral: return `model_name` in response metadata (#30048)
mistral[patch]: support model_kwargs (#29838)

langchain-core==0.3.45 (2025-03-13)

Changes since langchain-core==0.3.44

core: release 0.3.45 (#30277)
fix(core): Ignore missing secrets on deserialization (#30252)
openai[patch]: support Responses API (#30231)