# 🚀 \`langchain\` 1.0 – Feedback Wanted!

**URL:** <https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605>\
**Category:** Announcements\
**Created:** [July 21, 2025, 4:56pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605 "2025-07-21T16:56:38Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![eyurtsev](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/eyurtsev/32/125_2.png) [@eyurtsev](https://forum.langchain.com/u/eyurtsev)\
**Post date:** [July 21, 2025, 4:56pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/1 "2025-07-21T16:56:38Z")

</div>

Hey everyone,

We’re getting ready to release **version 1.0 of the `langchain` package** , and we’d love your input before it goes live.

Over the past few months, we’ve been rethinking the structure of the package to make it **simpler, more focused, and easier to use** —especially as agentic workflows become more common in real-world applications.

## 💡 Here’s What We’re Thinking

We want `langchain` 1.0 to offer a clean, intuitive starting point focused on the most-used patterns and abstractions:

- **Re-export core primitives** like `messages`, `tools`, and `prompts` from `langchain_core` so users don’t need to learn multiple packages up front.

- **Expose common building blocks** —agents, chains, mcp (model-context-protocol), retrievers—at the top level to make discovery and usage easier.

- **Simplified onboarding** with:

We’re also removing deprecated modules to reduce clutter and improve usability.

## 🔧 Adding LangGraph as a dependency

The `langchain` package will depend on:

- `langchain-core` – for core abstractions like chat models, messages, tools, and prompts
- `langgraph` – for agent workflow support

## 📚 Docs

We’re actively working on improving the documentation experience across our open-source ecosystem—including `langchain`, `langgraph`, and more.

Our goals are to:

- **Consolidate documentation** to reduce duplication and minimize the number of separate docs sites
- **Improve global navigation** so it’s easier to find relevant content—see the updated layout in [`langgraph`](https://langchain-ai.github.io/langgraph/)
- **Unify documentation across packages** to better reflect real-world, end-to-end workflows that span multiple components

Some of this work is already live, and we’ll continue rolling out improvements across the ecosystem.

## 🧹 Cleaning House

We’re retiring many legacy or unused modules (e.g., `adapters`, `docstore`).

Integrations now live in **dedicated third-party packages** —such as `langchain_openai`, `langchain_anthropic`, `langchain_google`—or in the community-maintained [`langchain_community`](https://github.com/langchain-ai/langchain-community). The main `langchain` package will no longer proxy imports from them.

To support existing projects that may still rely on deprecated functionality provided by `langchain`, we’ll publish a **`langchain-legacy`** package that retains the current structure and functionality.

## 🧠 We’d Love Your Feedback

We’re working to make `langchain` 1.0 both powerful _and_ ergonomic—and your input is key to getting it right.

We’re especially interested in:

- Any **pain points** you’ve run into with the current package structure
- **Features or workflows** you’d like to see added or improved
- **Deprecated functionality** you’re still relying on or unsure how to replace

Feel free to reply here with thoughts, questions, or concerns.

Thanks for building with us!

—The LangChain Team

---

<div class="post-metadata">

**Author:** ![atc](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/atc/32/1610_2.png) [@atc](https://forum.langchain.com/u/atc)\
**Post date:** [July 22, 2025, 10:24am UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/2 "2025-07-22T10:24:22Z")

</div>

I like the simple structure of the new docs (Quickstarts and General Concepts). Would be great to see some quick templates to copy and use out of the box. For instance, there could be a quick repo to copy for the “build a basic chatbot” tutorial.

Also, I default to using LangGraph Studio to testing applications and always find myself adding `langgraph-cli[inmem]` to my requirements file. Perhaps `langgraph-api` for the `langchain` package?

---

<div class="post-metadata">

**Author:** ![eyurtsev](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/eyurtsev/32/125_2.png) [@eyurtsev](https://forum.langchain.com/u/eyurtsev)\
**Post date:** [July 22, 2025, 7:17pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/3 "2025-07-22T19:17:49Z")

</div>

@atc thanks for the feedback.

Just to confirm by the new docs you are referring to: [LangGraph](https://langchain-ai.github.io/langgraph/)

rather than to: [Introduction | 🦜️🔗 LangChain](https://python.langchain.com/docs/introduction/)

---

<div class="post-metadata">

**Author:** ![atc](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/atc/32/1610_2.png) [@atc](https://forum.langchain.com/u/atc)\
**Post date:** [July 22, 2025, 8:39pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/4 "2025-07-22T20:39:29Z")

</div>

Yup I was referring to the new LangGraph docs.

---

<div class="post-metadata">

**Author:** ![Tik1993](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/tik1993/32/309_2.png) [@Tik1993](https://forum.langchain.com/u/Tik1993)\
**Post date:** [July 23, 2025, 7:17am UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/5 "2025-07-23T07:17:08Z")

</div>

Regarding the Docs:  
I’m new to LangChain and LangGraph. I’ve been going through the _LangChain for LLM Application Development_ course by DeepLearning.AI, taught by Harrison. However, much of the course content seems deprecated.

I felt a bit frustrated at first because I spent a lot of time trying to find updated solutions, but the docs didn’t make it clear. For example, `LLMChain` is deprecated and we’re supposed to use LCEL now, but there’s no clear documentation explaining the updated approach.

If possible, I’d be happy to help improve the docs!

---

<div class="post-metadata">

**Author:** ![mdrxy](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/mdrxy/32/2481_2.png) [@mdrxy](https://forum.langchain.com/u/mdrxy)\
**Post date:** [July 23, 2025, 7:03pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/6 "2025-07-23T19:03:30Z")

</div>

Hi @Tik1993, sorry to hear that – things move pretty fast around here, so it’s not always easy to stay on top of the many docs pages. Glad to hear you’re interested in helping out! We’ve put together some information [here](https://python.langchain.com/docs/contributing/) for contributing to docs.

Let me know if you have any trouble getting set up.

---

<div class="post-metadata">

**Author:** ![jdwilsonjr](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/jdwilsonjr/32/434_2.png) [@jdwilsonjr](https://forum.langchain.com/u/jdwilsonjr)\
**Post date:** [August 1, 2025, 5:27pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/7 "2025-08-01T17:27:03Z")

</div>

Hello @eyurtsev

Delighted to hear changes are coming. A few thoughts as requested.

- Keep it tight with Context7.
- As hard as it is to do, wax the old stuff so web searches 404.
- Treat LangChain Academy as THE source along with single pillar of documentation.
- Please keep the open source CODE explanations front and center.
- Low and no coders will find Studio and such; code devs need the example transfusions!

To wit, thank Lance for continuing to stoop down to help us little people in his courses.

What progress I have made (long way to go) with your magnificent software has been at the source. More precisely, tutorials by third parties are ‘englightening‘, and in my experience, ‘misleading’. Not on purpose of course, simply that they are adding yet another layer of (in this case human) abstraction.

+1 for resolving the multi-generational library and document phenomenom as you propose 🙂

Thanx.

---

<div class="post-metadata">

**Author:** ![sbmalik](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/sbmalik/32/445_2.png) [@sbmalik](https://forum.langchain.com/u/sbmalik)\
**Post date:** [August 2, 2025, 1:41am UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/8 "2025-08-02T01:41:45Z")

</div>

Amazing ❤. Looking forward for the release.

---

<div class="post-metadata">

**Author:** ![Tik1993](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/tik1993/32/309_2.png) [@Tik1993](https://forum.langchain.com/u/Tik1993)\
**Post date:** [August 7, 2025, 12:58am UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/9 "2025-08-07T00:58:10Z")

</div>

Agree! Huge thanks to Lance for providing such an amazing introduction course — it’s easy to follow and a great starting point for learning.  
I spent a weekend watching the videos from LangChain Academy. Just wanted to share a small thought: I initially started with the _Project: Building Ambient Agents with LangGraph_, but found it difficult to follow without having some foundational knowledge.  
After completing _Foundation: Introduction to LangGraph_, everything started to make more sense.  
It would be really helpful if the courses included recommended skill levels or prerequisites in their descriptions.

---

<div class="post-metadata">

**Author:** ![trashchenkov](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/trashchenkov/32/512_2.png) [@trashchenkov](https://forum.langchain.com/u/trashchenkov)\
**Post date:** [August 8, 2025, 2:42pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/10 "2025-08-08T14:42:05Z")

</div>

It would be ideal if `init_chat_model()` could dynamically pick up any `BaseChatModel` present in the environment, rather than depending on a hard-coded list. That would let community and third-party back-ends (e.g. DashScope, ZhipuAI, Qianfan, OpenRouter) plug in without touching LangChain’s core—perfectly matching your “integrations live in separate packages” approach and cutting down on PR overhead.

---

<div class="post-metadata">

**Author:** ![nicobytes](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/nicobytes/32/821_2.png) [@nicobytes](https://forum.langchain.com/u/nicobytes)\
**Post date:** [September 3, 2025, 1:08pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/11 "2025-09-03T13:08:12Z")

</div>

Hello!

First, congratulations on the amazing v1 alpha release!

I have a question about the difference between `AgentState` and `MessagesState`. They appear to be very similar. What are the key differences, and in what cases should we use one over the other?

For context, here are the definitions I’m looking at:

```python
class AgentState(TypedDict):
    messages: Annotated[Sequence[BaseMessage], add_messages]
    remaining_steps: NotRequired[RemainingSteps]

# Example Usage
from langchain.agents import AgentState

class State(AgentState):
    my_var: str
    customer_name: str

```

```python
class MessagesState(TypedDict):
    messages: Annotated[list[AnyMessage], add_messages]

# Example Usage
from langgraph.graph import MessagesState

class State(MessagesState):
    my_var: str
    customer_name: str

```

Additionally, it seems that `AgentState` (with its `remaining_steps` field) is designed for the new `create_agent` function. If that’s the case, why doesn’t it inherit from `MessagesState`? It seems like a natural extension.

Thanks for your help!

---

<div class="post-metadata">

**Author:** ![pamelafox](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/pamelafox/32/851_2.png) [@pamelafox](https://forum.langchain.com/u/pamelafox)\
**Post date:** [September 4, 2025, 11:52pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/12 "2025-09-04T23:52:30Z")

</div>

I am trying out the example in the v1 Quickstart:

> **[Overview - Docs by LangChain](https://docs.langchain.com/oss/python/langchain/overview)**

I’ve run into a few issues:

- Access to “context” in the tool. The quickstart tries to access it via config, but that fails for me. I instead followed the docs at [Overview - Docs by LangChain](https://docs.langchain.com/oss/python/langchain-tools#state%2C-context%2C-and-memory)
- The actual responses are a bit awkward, due to the second call requesting a structuredresponse. The model seems confused by what to put in “conditions” for that one. It might be better to specify in the system prompt, or to use a enum for conditions? It might also help to put expected output in the Quickstart.

Here’s what I got from gpt-4o-mini:

> WeatherResponse(conditions=“It’s always sunny in Florida!”, punny\_response=“Looks like Florida’s putting its best foot forward—it’s a hot day!”)WeatherResponse(conditions=‘thanks’, punny\_response=“You’re welcome! I’m always here to shine some light on your weather queries!”)

Here’s what I got from gpt-5, which got tripped up by lack of a specific location:

> WeatherResponse(conditions=‘I can tell you’re in Florida, but I need your precise spot—what city or ZIP code should I check? (Examples: Miami, Orlando, Tampa,Jacksonville, Tallahassee.)’,punny\_response=‘I don’t mean to be a mist-ery, but I need your precip-ic location so I can rain down the right details!’)  
> WeatherResponse(conditions=‘I still need your exact spot in Florida—what city or ZIP should I check? (e.g., Miami 33101, Orlando 32801, Tampa 33602, Jacksonville32202, Tallahassee 32301)’,punny\_response=‘You’re welcome! Now let’s make this forecast a shore thing—drop your city or ZIP so I can rain on with the details.’)

I imagine the Anthropic model gives different results, but I don’t have an Anthropic account yet, so I tested with Azure/GitHub Models. [Full code available in a gist.](https://gist.githubusercontent.com/pamelafox/2f2c6f1f806b010d2c97acd33c5b670b/raw/a48588eb1d88576b74a45fc255043eefa8312e1b/langchainv1_quickstart.py)

---

<div class="post-metadata">

**Author:** ![pamelafox](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/pamelafox/32/851_2.png) [@pamelafox](https://forum.langchain.com/u/pamelafox)\
**Post date:** [September 5, 2025, 5:44pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/13 "2025-09-05T17:44:19Z")

</div>

I notice that tools is required for create\_agent - it might be nice to give that a default of an empty sequence, to make it easier for developers to make prompt-only “agents”.

Currently, if you don’t pass it in, you get:

File “/Users/pamelafox/python-ai-agents-demos/examples/langchainv1\_basic.py”, line 43, in  
agent = create\_agent(  
^^^^^^^^^^^^^  
TypeError: create\_agent() missing 1 required positional argument: ‘tools’

---

<div class="post-metadata">

**Author:** ![eyurtsev](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/eyurtsev/32/125_2.png) [@eyurtsev](https://forum.langchain.com/u/eyurtsev)\
**Post date:** [September 5, 2025, 5:45pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/14 "2025-09-05T17:45:28Z")

</div>

Hi Pamela, It should work if you pass an empty list for `tools=[]`. It’s not the most intuitive API for this use case and we may relax the requirement that tools has to be specified. Appreciate the feedback!

---

<div class="post-metadata">

**Author:** ![pamelafox](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/pamelafox/32/851_2.png) [@pamelafox](https://forum.langchain.com/u/pamelafox)\
**Post date:** [September 5, 2025, 5:57pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/15 "2025-09-05T17:57:05Z")

</div>

@eyurtsev Yep, that’s what I did! I’m just saying that it might be nice if that wasn’t required. I’m prepping a talk about agents using langchain v1, and that’s a difference that I noticed between langchain v1 and other agent frameworks. But perhaps developers should be using the model classes directly for non-tools scenarios.

---

<div class="post-metadata">

**Author:** ![pamelafox](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/pamelafox/32/851_2.png) [@pamelafox](https://forum.langchain.com/u/pamelafox)\
**Post date:** [September 5, 2025, 7:18pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/16 "2025-09-05T19:18:54Z")

</div>

Are there any examples available already somewhere of the recommended approach for multi-agent architectures, like supervisor, round-robin, hands off, etc? Would developers be suggested to use Langgraph for those scenarios?

---

<div class="post-metadata">

**Author:** ![eyurtsev](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/eyurtsev/32/125_2.png) [@eyurtsev](https://forum.langchain.com/u/eyurtsev)\
**Post date:** [September 5, 2025, 8:12pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/17 "2025-09-05T20:12:25Z")

</div>

We’re currently working on new examples / conceptual docs, and some will likely be released next week.

We do have some existing examples here: [Custom implementation](https://langchain-ai.github.io/langgraph/how-tos/multi_agent/) , but they may change.

We’ll likely focus more discussing tools vs handoffs:

- tools will be recommended for the supervisor architecture; where a subagent is used as a tool (and the fact that the tool uses an agent is an implementation detail),. Here, control is always returned to the supervisor.
- handoffs result in a change in the active agent. One agent can handoff to another agent to assist with a user request. And a user can continue conversation with with the new agent.

We will likely stop discussing topologies (e.g., network, supervisor / supervisor as tools etc [Overview](https://langchain-ai.github.io/langgraph/concepts/multi_agent/#multi-agent-architectures) ) since it’s not super helpful in understanding what architecture to use.

---

<div class="post-metadata">

**Author:** ![Louis](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/louis/32/871_2.png) [@Louis](https://forum.langchain.com/u/Louis)\
**Post date:** [September 5, 2025, 8:44pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/18 "2025-09-05T20:44:46Z")

</div>

Hello!

I noticed the retry/fix output parsers that where exposed in `langchain` have disappeared and are not available `langchain-core`. Is that expected and why ?

Otherwise the documentation looks much clearer and simplier. Looking forward to seeing it getting completed!

---

<div class="post-metadata">

**Author:** ![pamelafox](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/pamelafox/32/851_2.png) [@pamelafox](https://forum.langchain.com/u/pamelafox)\
**Post date:** [September 7, 2025, 6:01am UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/19 "2025-09-07T06:01:05Z")

</div>

@eyurtsev Thanks, that’s very helpful to hear how you’re thinking about discussing agentic architectures.  
Based off your comment, this is how I attempted a supervisor architecture:

```python

# ----------------------------------------------------------------------------------
# SUB-AGENT 1: Activity planning agent
# ----------------------------------------------------------------------------------
@tool
def get_weather(city: str, date: str) -> dict:
    """Returns weather data for a given city and date."""
    logger.info(f"Getting weather for {city} on {date}")
    if random.random() < 0.05:
        return {
            "temperature": 72,
            "description": "Sunny",
        }
    else:
        return {
            "temperature": 60,
            "description": "Rainy",
        }

@tool
def get_activities(city: str, date: str) -> list:
    """Returns a list of activities for a given city and date."""
    logger.info(f"Getting activities for {city} on {date}")
    return [
        {"name": "Hiking", "location": city},
        {"name": "Beach", "location": city},
        {"name": "Museum", "location": city},
    ]

@tool
def get_current_date() -> str:
    """Gets the current date from the system and returns as a string in format YYYY-MM-DD."""
    logger.info("Getting current date")
    return datetime.now().strftime("%Y-%m-%d")

weekend_agent = create_agent(
    model=base_model,
    prompt=(
        "You help users plan their weekends and choose the best activities for the given weather."
        "If an activity would be unpleasant in the weather, don't suggest it."
        "Include the date of the weekend in your response."
    ),
    tools=[get_weather, get_activities, get_current_date],
)

@tool
def weekend_agent_tool(query: str) -> str:
    """Invoke the activity planning agent and return its final response as plain text."""
    logger.info("Tool:weekend_agent invoked")
    response = weekend_agent.invoke({"messages": [HumanMessage(content=query)]})
    final = response["messages"][-1].content
    return final

# ----------------------------------------------------------------------------------
# SUB-AGENT 2: Recipe planning agent
# ----------------------------------------------------------------------------------

@tool
def find_recipes(query: str) -> list[dict]:
    """Returns recipes based on a query."""
    logger.info(f"Finding recipes for '{query}'")
    if "pasta" in query.lower():
        return [
            {
                "title": "Pasta Primavera",
                "ingredients": ["pasta", "vegetables", "olive oil"],
                "steps": ["Cook pasta.", "Sauté vegetables."],
            }
        ]
    elif "tofu" in query.lower():
        return [
            {
                "title": "Tofu Stir Fry",
                "ingredients": ["tofu", "soy sauce", "vegetables"],
                "steps": ["Cube tofu.", "Stir fry veggies."],
            }
        ]
    else:
        return [
            {
                "title": "Grilled Cheese Sandwich",
                "ingredients": ["bread", "cheese", "butter"],
                "steps": ["Butter bread.", "Place cheese between slices.", "Grill until golden brown."],
            }
        ]

@tool
def check_fridge() -> list[str]:
    """Returns a list of ingredients currently in the fridge."""
    logger.info("Checking fridge for current ingredients")
    if random.random() < 0.5:
        return ["pasta", "tomato sauce", "bell peppers", "olive oil"]
    else:
        return ["tofu", "soy sauce", "broccoli", "carrots"]

meal_agent = create_agent(
    model=base_model,
    prompt=(
        "You help users plan meals and choose the best recipes."
        "Include the ingredients and cooking instructions in your response."
        "Indicate what user needs to buy from store when their fridge is missing ingredients."
    ),
    tools=[find_recipes, check_fridge],
)

@tool
def meal_agent_tool(query: str) -> str:
    """Invoke the recipe planning agent and return its final response as plain text."""
    logger.info("Tool:meal_agent invoked")
    response = meal_agent.invoke({"messages": [HumanMessage(content=query)]})
    final = response["messages"][-1].content
    return final

# ----------------------------------------------------------------------------------
# SUPERVISOR AGENT: Manages the sub-agents
# ----------------------------------------------------------------------------------
supervisor_agent = create_agent(
    model=base_model,
    prompt=(
        "You are a supervisor, managing an activity planning agent and recipe planning agent."
        "Assign work to them as needed in order to answer user's question."
    ),
    tools=[weekend_agent_tool, meal_agent_tool],
)

def main():
    response = supervisor_agent.invoke({"messages": [{"role": "user", "content": "my kids want pasta for dinner"}]})
    latest_message = response["messages"][-1]
    print(latest_message.content)

if __name__ == " __main__":
    logger.setLevel(logging.INFO)
    main()

```

Not sure if there’s a better way to wrap an agent as a tool beside what I did there - if there’s going to be something built-in?

Generally, is the goal that most/all people should be moving langchain versus langgraph?

---

<div class="post-metadata">

**Author:** ![eyurtsev](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/eyurtsev/32/125_2.png) [@eyurtsev](https://forum.langchain.com/u/eyurtsev)\
**Post date:** [September 8, 2025, 7:51pm UTC](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605/20 "2025-09-08T19:51:33Z")

</div>

@Louis the RetryOutputParser will be available in langchain-legacy. Could you share a bit more about how / when you use it?

[Next page](https://forum.langchain.com/t/langchain-1-0-feedback-wanted/605.md?page=2)
