Is AgentExecutor Deprecated in LangChain? The Real State of LangChain Agent APIs in 2026
Problem
When I search for “LangChain agent tutorial” on Google, I find code examples using initialize_agent, AgentExecutor, create_react_agent, and create_agent interchangeably. Which one should I use in 2026?
This confusion is common. LangChain went through rapid API evolution from 2023 to 2025, and old tutorials still rank highly on search engines. If you are starting a new project today, picking the wrong API means learning a deprecated pattern from day one.
Environment
- LangChain v1 (current as of June 2026)
- Python 3.12+
What happened?
When I followed a 2023 YouTube tutorial, I wrote this:
from langchain.agents import initialize_agent, AgentExecutor
agent = initialize_agent( tools=[search_tool], llm=llm, agent="zero-shot-react-description",)The code worked, but I noticed warnings in the console about deprecation. Then I saw another tutorial using create_react_agent, and a third using create_agent. I could not tell which one was the current standard.
I checked the official docs and found the deprecated APIs follow a clear timeline:
initialize_agent (2023) - deprecatedAgentExecutor (2023-2024) - deprecatedcreate_react_agent (2024) - deprecatedcreate_agent (2025-current) <- current APIHow to solve it?
The solution is simple: use create_agent from langchain.agents for any new project.
from langchain.agents import create_agent
agent = create_agent( model="openai:gpt-5.5", tools=[search_tool, calculator_tool], system_prompt="You are a helpful assistant with web search capability.",)
result = agent.invoke({ "messages": [{"role": "user", "content": "What is the latest LangChain version?"}]})Migration path for existing code
If you have existing code using the old APIs, here is the migration:
| Old API | New API |
|---|---|
initialize_agent(...) | create_agent(...) |
AgentExecutor.from_agent_and_tools(...) | create_agent(...) |
create_react_agent(...) | create_agent(...) or LangGraph |
For stateful or multi-step workflows, skip create_agent entirely and use LangGraph directly:
from langgraph.graph import StateGraph, MessagesState, START, END
def my_agent_node(state: MessagesState): return {"messages": [{"role": "assistant", "content": "Hello"}]}
graph = StateGraph(MessagesState)graph.add_node("agent", my_agent_node)graph.add_edge(START, "agent")app = graph.compile()The reason
Why did LangChain deprecate so many APIs? I think the key reason is that the team realized agent orchestration needs a proper graph-based runtime. The old AgentExecutor was a simple loop that could not handle branching, human-in-the-loop, or durable execution — features that LangGraph provides natively.
LangChain v1 create_agent is built on top of LangGraph. When you use create_agent, you get durable execution, streaming, and checkpointing without writing graph code yourself.
Summary
In this post, I explained the real state of LangChain agent APIs in 2026. The key point is that AgentExecutor, initialize_agent, and create_react_agent are all deprecated. Use create_agent from langchain.agents for new projects, or LangGraph directly when you need full control over state and execution flow. Always check the official docs at docs.langchain.com over YouTube tutorials from 2023-2024.
Final Words + More Resources
My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me
Here are also the most important links from this article along with some further resources that will help you in this scope:
- 👨💻 LangChain Build Overview - Decision Tree
- 👨💻 LangChain create_agent API
- 👨💻 LangGraph Overview
- 👨💻 Reddit Discussion: LangChain API confusion
Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!
Comments