# What changed in langchain-core

> 220 changes in langchain-core 0.3 to 1 from its official release notes, upgrade guides and advisories: 13 breaking, 7 deprecations, 17 security, 38 new APIs and options. Each one cited. Sources checked 2026-10-21. HTML: https://unstale.sh/pypi/langchain-core/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## langchain-core 1

### Breaking changes

- Serialization fails fast when tool schemas cannot resolve forward references. (1.6.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.0)
- Strict tool schemas require all nested properties. (1.6.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.0)
- Raises ValueError when explicit tool_outputs length mismatches tool_calls. (1.5.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.5)
- Deletes BaseMemory from langchain-core and moves it to langchain-classic. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Removes get_relevant_documents. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Reverts the fix for tracing invocation parameters in metadata, changing what invocation data is recorded there. (1.2.23) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.23)
- Moves BaseCrossEncoder into langchain-core. (1.2.19) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.19)
- Unknown tools now raise an output parser exception. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- Makes the prefix argument keyword-only to match BaseStore. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- The approximate alias is added in place of count_tokens_approximately. (1.2.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.5)
- The functionality supported by jinja2 and mustache templates was restricted. (0.3.80, 1.0.7) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.7), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D0.3.80), [security advisory](https://github.com/advisories/GHSA-6QV9-48XG-FC7F)
- Automatically sets required to include all properties in strict mode. (1.0.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.1)

### Security

- Hardened scoped and compatible IPv6 SSRF checks. (1.6.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.8)
- Guards against malformed Anthropic content blocks. (1.5.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.5)
- Streaming callback options are redacted. (1.5.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.4)
- Hardens checks for text files in deprecated prompt loading functions. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Hardens deserialization against untrusted manifests. (0.3.85, 1.3.3) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.3.3), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D0.3.85), [security advisory](https://github.com/advisories/GHSA-PJWX-R37V-7724)
- Private SSRF utilities were hardened. (1.2.30) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.30)
- LangChain has incomplete f-string validation in prompt templates (0.3.84, 1.2.28) — [security advisory](https://github.com/advisories/GHSA-926X-3R5X-GFHW)
- Templates receive additional sanitization. (1.2.28) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.28)
- Hardened the check for txt files in deprecated prompt loading functions, resolving a symlink resolution issue. (1.2.25) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.25)
- Validates paths in load_prompt, helping prevent invalid paths from being used when loading prompts. (1.2.22) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.22), [security advisory](https://github.com/advisories/GHSA-QH6H-P6C9-FF54)
- Validates paths in prompt.save, helping prevent invalid paths from being used when saving prompts. (1.2.22) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.22)
- Hardens protection against server-side request forgery. (1.2.20) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.20)
- URLs are sanitized when counting tokens in images. (1.2.11) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.11), [security advisory](https://github.com/advisories/GHSA-2G6R-C272-W58R)
- LangChain serialization injection vulnerability enables secret extraction in dumps/loads APIs (0.3.81, 1.2.5) — [security advisory](https://github.com/advisories/GHSA-C67J-W6G6-Q2CM)
- Validation for input variables in f-string templates was fixed. (0.3.80, 1.0.7) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.7), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D0.3.80), [security advisory](https://github.com/advisories/GHSA-6QV9-48XG-FC7F)

### Deprecations

- Chat message history is deprecated. (1.6.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.4)
- The problematic dict() method is deprecated. (1.4.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.2)
- Validates paths in prompt.save and load_prompt, and deprecates the methods. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- The load_prompt method is deprecated. (1.2.22) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.22)
- The prompt.save method is deprecated. (1.2.22) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.22)
- A warning is added for fallback GPT-2 tokenizer usage. (1.2.7) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.7)
- py_anext is deprecated in favor of anext. (1.1.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.1.2)

### New APIs and options

- LangChainTracer now accepts an address. (1.6.11) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.11)
- Model profiles can declare mid-conversation support. (1.6.10) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.10)
- with_retry now accepts a callable. (1.6.9) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.9)
- Model name and provider tracing metadata can be overridden based on the gateway response. (1.6.3) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.3)
- OpenAI integration supports async tools. (1.6.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.2)
- Standard model exception types are available for handling model errors. (1.6.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.0)
- Anthropic, Fireworks, and OpenAI integrations support the LangSmith gateway through an environment variable. (1.5.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.1)
- Adds reasoning_effort as a standard chat model parameter. (1.5.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.0)
- Callbacks now support content block tokens. (1.4.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.4)
- Adds support for the OpenAI built-in apply_patch tool. (1.4.3) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.3)
- Adds approximate as an alias for count_tokens_approximately. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Adds the ChatAnthropicBedrock wrapper. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Adds an optional include_id parameter. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Adds an XML format option and support for a custom message separator. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Creates the langchain-model-profiles package and adds a profile property to BaseChatModel. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Supports tool runtime injection with custom argument schemas and generic ToolRuntime types. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Adds content-block-centric streaming (v2). (1.3.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.3.2)
- Adds chat model and LLM invocation parameters to traceable metadata. (1.3.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.3.0)
- Adds ChatBaseten to the serializable mapping. (1.2.26) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.26)
- Adds support for tool search. (1.2.18) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.18)
- Adds the OpenRouter provider package for developers integrating OpenRouter with LangChain. (1.2.13) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.13)
- Adds ContextOverflowError, raised in Anthropic and OpenAI integrations. (1.2.10) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.10)
- Adds text_inputs to model profiles. (1.2.10) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.10)
- Adds text_outputs to model profiles. (1.2.10) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.10)
- Approximate token counts can now be scaled by reported usage. (1.2.9) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.9)
- Adds an XML format option for rendering the buffer string. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- Sync methods now have an explicit tags parameter. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- Supports a custom message separator when converting messages to a buffer string. (1.2.7) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.7)
- Supports (message class, template) tuples in from_messages. (1.2.6) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.6)
- The decorator supports the PEP 702 __deprecated__ attribute. (1.2.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.5)
- Adds usage_metadata to metadata in LangChainTracer. (0.3.82, 1.2.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D0.3.82), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.4)
- Adds extras to BaseTool, enabling additional tool metadata. (1.2.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.0)
- The genai block translator now supports Google Maps grounding. (1.1.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.1.2)
- Mermaid PNG rendering supports proxies. (1.0.6) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.6)
- Adds support for drawing subgraphs using pygraphviz. (1.0.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.4)
- Adds a profile property to BaseChatModel. (1.0.3) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.3)
- Adds the langchain-model-profiles package for model profiles. (1.0.3) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.3)
- Messages gain a provider-agnostic content_blocks property for accessing standardized content such as reasoning, citations, and tool calls. (1.0.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.0)

### Performance

- The transformers package is imported lazily. (1.6.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.0)
- Memoizes the subset model for the tool-call schema, improving performance when accessing it. (1.4.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.8)
- Caches model_json_schema results to improve performance. (1.4.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.8)
- Specific langsmith imports are deferred to reduce import time. (1.2.15) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.15)

### Behavior and default changes

- Gateway information is propagated on the error path. (1.6.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.1)
- The function handles callables and non-dict mappings. (1.6.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.0)
- Mustache templates accept non-dict Mapping values. (1.6.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.0)
- Gateway metadata is incorporated into traces, making that metadata available in trace data. (1.5.6) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.6)
- Package versions are tracked in tracing metadata. (1.4.6) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.6)
- Tool error content can now be provided as a sequence. (1.4.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.4)
- Counts tokens from tool schemas and supports multimodal messages; can scale counts by reported usage and applies a cap when scaling. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Marks stream_v2 and astream_v2 as beta. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- astream_v2 is marked as beta. (1.3.3) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.3.3)
- stream_v2 is marked as beta. (1.3.3) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.3.3)
- Allows a list of ToolOutputMixin instances to pass through. (1.3.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.3.1)
- Updates inheritance behavior for tracer metadata for special keys. (1.3.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.3.1)
- Imputes placeholder filenames for OpenAI file inputs. (1.2.24) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.24)
- Adds LangSmith integration metadata to create_agent. (1.2.20) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.20)
- Adds LangSmith integration metadata to init_chat_model. (1.2.20) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.20)
- Includes tool schemas when approximately counting tokens. (1.2.10) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.10)
- Approximate token counting supports multimodal messages. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- HTML link extraction ignores more file extensions. (1.2.7) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.7)
- Tool call counts and their metadata are counted and stored automatically. (1.2.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.5)
- Uses uuid7 for run IDs. (1.1.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.1.1)
- Tool runtime injection is supported when a custom args schema is provided. (1.0.6) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.6)

### Tooling

- Typing for Runnable.__or__ is improved. (1.4.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.4)

### Fixes and other changes

- Extras are now propagated on content-block-start events. (1.6.12) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.12)
- Hardens handling around inspect.signature for Python 3.14. (1.6.7) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.7)
- Includes OpenAI redacted_content in v1 output for Bedrock Converse. (1.6.7) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.7)
- Adds compatibility with Claude Sonnet 5.5 for developers using the Anthropic integration. (1.6.6) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.6)
- Long tool IDs are abbreviated in XML buffer strings. (1.6.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.5)
- Avoids mutation in Bedrock Converse standard content. (1.6.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.2)
- Avoids mutation in Google GenAI standard content. (1.6.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.2)
- Indexing in genai v1 streaming content was fixed. (1.6.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.1)
- StructuredTool was made JSON-serializable. (1.6.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.1)
- Chain-group runs are finalized when a BaseException is raised. (1.6.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.0)
- RunnablePick instances can now be deserialized. (1.6.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.0)
- Postponed annotations are resolved when determining injected argument keys. (1.6.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.6.0)
- Now handles None and zero sizes consistently with batch_iterate. (1.5.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.5)
- Fixes issues in merging chunks. (1.5.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.5)
- Preserves non-string, non-dictionary items in list values. (1.5.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.5)
- Fixes handling of tool descriptions when infer_schema is false. (1.5.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.5)
- Handles falsy LLM and chat model caches. (1.5.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.5)
- Validation now respects Pydantic aliases for tool inputs. (1.5.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.5)
- Clears the callback when an exception occurs in the context manager. (1.5.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.5)
- Handles v1 base model validation in the async path. (1.5.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.5)
- Injected arguments are handled for subclasses of BaseTool. (1.5.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.4)
- filter_args respects include_injected=False. (1.5.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.4)
- OpenAI file blocks are preserved. (1.5.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.4)
- Compatibility with pydantic 2.14 was fixed. (1.5.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.4)
- Runables using RootModel preserve a flat tool args schema. (1.5.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.4)
- Streaming tracers close event loops they create internally. (1.5.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.4)
- StructuredPrompt no longer mutates caller kwargs. (1.5.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.4)
- Text stream projections have corrected types. (1.5.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.4)
- The gateway now falls back to LANGSMITH_API_KEY for authentication. (1.5.3) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.3)
- Handles empty strings in gateway environment variables. (1.5.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.2)
- Uses the tool_call_schema cache for BaseTool token counting. (1.5.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.5.1)
- Uses `asyncio.get_running_loop()` in async contexts. (1.4.9) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.9)
- Improved error messages from LangSmith loaders, making loader failures clearer to developers. (1.4.9) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.9)
- Fixed handling of continuation lines containing colons when parsing Google-style docstrings. (1.4.9) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.9)
- Added messages to bare `raise ValueError` calls, making these errors more informative. (1.4.9) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.9)
- Fixed bugs in XML and Pydantic output parsers. (1.4.9) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.9)
- Preserves usage token details in v3 streaming events. (1.4.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.8)
- The package version trace metadata was renamed. (1.4.7) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.7)
- Pydantic v1 support in tools/runnable was fixed. (1.4.7) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.7)
- Normalize v1 streamed tool calls. (1.4.6) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.6)
- Fixes the async tracer fallback for on_chat_model_start when called in a sync context. (1.4.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.5)
- Tightens structured output model fallbacks. (1.4.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.5)
- The output type of structured tool error handlers is fixed. (1.4.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.4)
- Accepts the Serializable constructor-envelope wire shape. (1.4.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.1)
- Removes Bedrock prevalidation from load. (1.4.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.1)
- Preserves reasoning blocks alongside tool_call in the v3 stream. (1.4.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.1)
- Preserves chunk additional_kwargs across v3 stream assembly. (1.4.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.1)
- Adds add_user_message and add_ai_message back. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Avoids eagerly importing pydantic.v1 when using the deprecated decorator. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Fixes string content when streaming with output_version="v1". (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Adds support for Python 3.14, including TypedDict compatibility using get_type_hints. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Delegates to the core implementation on invoke when streaming=True. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Includes tool_call_id in on_tool_error event data and passes it to on_tool_start callbacks. (1.4.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0)
- Validates batch_size in _batch and _abatch to prevent an infinite loop. (1.3.3) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.3.3)
- Preserves structured inputs on tool runs in tracers. (1.3.3) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.3.3)
- Makes the removal argument optional. (1.3.3) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.3.3)
- Handles response content blocks that lack a type key during conversion. (1.3.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.3.0)
- Restores cloud metadata IPs and the link-local range in the SSRF policy. (1.3.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.3.0)
- Handles symlinks in the deprecated prompt save path. (1.2.27) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.27)
- Adds an initialization validator and serialization mappings for Bedrock models. (1.2.26) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.26)
- Adds computer to the set of well-known OpenAI tools. (1.2.24) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.24)
- Adds missing ModelProfile fields and warns on schema drift. (1.2.21) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.21)
- Invocation parameters are now traced in metadata. (1.2.20) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.20)
- Tool call schema generation now preserves default_factory. (1.2.18) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.18)
- Usage metadata is now extracted from serialized tracer message outputs. (1.2.17) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.17)
- Empty tool chunk IDs are treated as missing during merge. (1.2.16) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.16)
- Typing and documentation clarify that on_chat_model_start requires positional arguments. (1.2.15) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.15)
- Error messages for non-JSON-serializable tool schemas are improved, making these failures easier to understand. (1.2.15) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.15)
- Prevents a recursion error when args_schema is a dict. (1.2.14) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.14)
- Accepts integer temperature values for LangSmith tracing. (1.2.14) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.14)
- Fixes incorrect merging of parallel tool calls. (1.2.14) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.14)
- Preserves index and timestamp fields when merging. (1.2.14) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.14)
- Fixes setting ChatGeneration.text. (1.2.12) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.12)
- The tracer now catches Exception instead of using a bare except. (1.2.11) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.11)
- The cap is applied and adjusted when scaling approximate token counts. (1.2.9) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.9)
- Base model annotations are allowed for an empty model. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- Block iteration uses Iterator instead of Iterable. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- Fixes parsing when docstrings have no arguments or reserved arguments. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- Improves the error message when a title is missing. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- Nested Mustache variable extraction is fixed. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- Correctly guards against non-text-block types. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- The event data now includes tool_call_id. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- Prevents a crash when the messages list is empty. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- The return type is Iterator. (1.2.8) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.8)
- Injected arguments found only in a tool signature are no longer traced. (1.2.7) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.7)
- Injected arguments are excluded from tool schemas. (1.2.7) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.7)
- Message IDs are stripped from cache keys using model_copy. (1.2.7) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.7)
- Strict schema generation is fixed for functions with optional arguments. (1.2.7) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.7)
- URL-encodes the bgColor parameter in mermaid API calls. (1.2.6) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.6)
- Fixes callback manager merging that mixed handlers. (1.2.6) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.6)
- Default arguments are populated from a tool's args_schema. (1.2.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.5)
- Uses tool_calls instead of the deprecated function_call when formatting messages. (1.2.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.4.0), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.5)
- The return types of RunnablePick methods were fixed. (1.2.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.5)
- A serialization issue was fixed. (1.2.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.5)
- The decorator now preserves descriptions supplied through Field(description=...). (1.2.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.5)
- tool_call_count is ensured to never be null. (1.2.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.5)
- Trace persistence is deferred for iterator inputs. (0.3.82, 1.2.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D0.3.82), [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.4)
- Allows unknown blocks in convert_to_openai_messages. (1.2.3) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.3)
- Uses get_type_hints for Python 3.14 TypedDict compatibility. (1.2.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.2)
- Handles None arguments in parse_tool_call. (1.2.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.1)
- The conversion input type was widened to Mapping, allowing mapping inputs. (1.2.0) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.2.0)
- Jinja2 restrictions were undone, changing the restrictions applied when using Jinja2. (1.1.3) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.1.3)
- Prevents async tasks from being garbage-collected. (1.1.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.1.2)
- The callback now receives tool_call_id. (1.1.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.1.2)
- Uses ensure_ascii=False when formatting exceptions. (1.1.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.1.1)
- Handles a missing schema for StructuredPrompt. (1.1.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.1.1)
- Fixes a tool call ID bug introduced with runtime injection. (1.1.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.1.1)
- Exceptions are no longer masked, so callers can observe the original exception. (1.0.5) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.5)
- Empty content blocks are filtered from formatted prompts. (1.0.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.4)
- Fixes tool name checking in name_dict. (1.0.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.4)
- Fixes empty parallel schemas when child runnable input schemas use TypedDict. (1.0.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.4)
- Fixes the case where RunnablePick may not return a dict when keys is a string. (1.0.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.4)
- Preserves context in shielded async callbacks. (1.0.4) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.4)
- JSON get_format_instructions is improved using Opik Agent Optimizer. (1.0.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.2)
- PydanticOutputParser format instructions are fixed for v1 models. (1.0.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.2)
- Google GenAI text blocks are translated to v1. (1.0.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.2)
- Injected arguments are filtered out from tracing. (1.0.2) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.2)
- Schema handling is more defensive. (1.0.1) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D1.0.1)

## langchain-core 0.3

### Breaking changes

- Run IDs now use UUID7, changing the format of generated run identifiers. (0.3.83) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D0.3.83)

### Security

- Backports the path-traversal fix to v0.3. (0.3.86) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D0.3.86)
- Prompts are sanitized more thoroughly. (0.3.84) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D0.3.84)

### Fixes and other changes

- A serialization patch was included; the notes do not specify further details. (0.3.81) — [release notes](https://github.com/langchain-ai/langchain/releases/tag/langchain-core%3D%3D0.3.81)
