---
title: "langchain Breaking Changes on PyPI | Since.dev"
description: "What each langchain release removed, renamed or changed: 563 breaking changes in 18 versions on PyPI, each with its source."
canonical_url: https://since.dev/packages/pypi/langchain
last_updated: 2026-06-12
---

# langchain breaking changes

Every breaking API change we have recorded in langchain on PyPI: 563 breaking changes in 18 versions. Below are its newest 6 versions, removals and renames first, each with its source.

Newest change June 12, 2026

## 1.3.8

2 breaking changes, first published June 12, 2026.

- **Signature changed** `langchain.agents.create_agent`  

Was def create_agent(model: str | BaseChatModel, tools: Sequence\[BaseTool | Callable\[..., Any\] | dict\[str, Any\]\] | None = None, \*, system_prompt: str | SystemMessage | None = None, middleware: Sequence\[AgentMiddleware\[StateT_co, ContextT\]\]... [pypi.org](https://pypi.org/project/langchain/1.3.8/)
- **Signature changed** `langchain.agents.middleware.ModelCallResult`  

Was ModelCallResult: TypeAlias; now ModelCallResult. [pypi.org](https://pypi.org/project/langchain/1.3.8/)

## 1.3.7

4 breaking changes, first published June 10, 2026.

- **Signature changed** `langchain.agents.middleware.dynamic_prompt`  

Was def dynamic_prompt(func: \_CallableReturningSystemMessage\[StateT, ContextT\] | None = None) -> Callable\[\[\_CallableReturningSystemMessage\[StateT, ContextT\]\], AgentMiddleware\[StateT, ContextT\]\] | AgentMiddleware\[StateT, ContextT\]; now def... [pypi.org](https://pypi.org/project/langchain/1.3.7/)
- **Signature changed** `langchain.agents.middleware.wrap_model_call`  

Was def wrap_model_call(func: \_CallableReturningModelResponse\[StateT, ContextT, ResponseT\] | None = None, \*, state_schema: type\[StateT\] | None = None, tools: list\[BaseTool\] | None = None, name: str | None = None) ->... [pypi.org](https://pypi.org/project/langchain/1.3.7/)
- **Signature changed** `langchain.agents.structured_output.OutputToolBinding.parse`  

Was def parse(self, tool_args: dict\[str, Any\]) -> SchemaT; now def parse(self, tool_args: dict\[str, Any\]) -> SchemaT | dict\[str, Any\]. [pypi.org](https://pypi.org/project/langchain/1.3.7/)
- **Signature changed** `langchain.agents.structured_output.ProviderStrategyBinding.parse`  

Was def parse(self, response: AIMessage) -> SchemaT; now def parse(self, response: AIMessage) -> SchemaT | dict\[str, Any\]. [pypi.org](https://pypi.org/project/langchain/1.3.7/)

## 1.3.6

2 breaking changes, first published June 10, 2026.

- **Signature changed** `langchain.agents.middleware.SummarizationMiddleware.__init__`  

Was def \_\_init\_\_(self, model: str | BaseChatModel, \*, trigger: ContextSize | list\[ContextSize\] | None = None, keep: ContextSize = ('messages', \_DEFAULT_MESSAGES_TO_KEEP), token_counter: TokenCounter = count_tokens_approximately... [pypi.org](https://pypi.org/project/langchain/1.3.6/)
- **Signature changed** `langchain.agents.middleware.SummarizationMiddleware.trigger`  

Was trigger: ContextSize | list\[ContextSize\] | None; now trigger: ContextSize | TriggerClause | list\[ContextSize | TriggerClause\] | None. [pypi.org](https://pypi.org/project/langchain/1.3.6/)

## 1.3.2

1 breaking change, first published May 26, 2026.

- **Signature changed** `langchain.agents.create_agent`  

Was def create_agent(model: str | BaseChatModel, tools: Sequence\[BaseTool | Callable\[..., Any\] | dict\[str, Any\]\] | None = None, \*, system_prompt: str | SystemMessage | None = None, middleware: Sequence\[AgentMiddleware\[StateT_co, ContextT\]\]... [pypi.org](https://pypi.org/project/langchain/1.3.2/)

## 1.3.0

1 breaking change, first published May 12, 2026.

- **Signature changed** `langchain.agents.create_agent`  

Was def create_agent(model: str | BaseChatModel, tools: Sequence\[BaseTool | Callable\[..., Any\] | dict\[str, Any\]\] | None = None, \*, system_prompt: str | SystemMessage | None = None, middleware: Sequence\[AgentMiddleware\[StateT_co, ContextT\]\]... [pypi.org](https://pypi.org/project/langchain/1.3.0/)

## 1.2.14

1 breaking change, first published March 31, 2026.

- **Removed** `langchain.agents.middleware.todo.InjectedToolCallId`  

langchain.agents.middleware.todo.InjectedToolCallId was removed in langchain 1.2.14 [pypi.org](https://pypi.org/project/langchain/1.2.14/)

## Check your code

These are the changes. To see which of them reach your code, [scan a public repository](https://since.dev/scan.md), or have your coding agent call `check_code` with your manifest or lockfile over [MCP](https://since.dev/docs.md#mcp). [The API](https://since.dev/docs.md#api) reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

## Put your code on continuous management.

Scan a public repository now, or give your agent one line.

### See how out of date your code is.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
