Segment the documentation into legacy content vs modern best practices #442

Closed
opened 2026-02-20 17:40:09 -05:00 by yindo · 4 comments
Owner

Originally created by @jtayl222 on GitHub (Feb 9, 2025).

Discussed in https://github.com/langchain-ai/langgraph/discussions/3363

Originally posted by jtayl222 February 9, 2025
References:

Problem:

Given the evolution of StateGraph and best practices, LangGraph has moved away from older, less structured methodologies. However, if the documentation and tutorials still mix legacy approaches with current best practices, it could create confusion for both new and existing users.

What is a reasonable plan to fix this problem?

A structured approach would involve segmenting the documentation into legacy content and modern best practices. Here’s how we could do it:

  1. Categorizing Existing Content
    Identify and label older documentation that references legacy approaches, such as:
    Agent-based memory (e.g., ConversationBufferMemory)
    Using @tool in StateGraph workflows
    Non-deterministic execution patterns
    Separate modern best practices, such as:
    Explicit state transitions
    StateGraph-first workflows
    Avoiding @tool and implicit memory storage
    State management via reducers and structured state dictionaries
  2. Updating the Official Documentation
    Introduce a clear distinction in the LangGraph documentation:
    Best Practices Section → Features modern, structured approaches using StateGraph.
    Legacy Section (with disclaimers) → Outlines older methods that are no longer recommended.
    Add clear notes to older methods indicating they are legacy approaches with links to updated best practices.
  3. Improving Community Awareness
    Documentation summarizing:
    The issues with mixed documentation.
    Why StateGraph-first workflows are now the recommended approach.
    A comparison table showing "Old vs. New" best practices.

Conclusion
By implementing a structured plan to distinguish legacy from best practices, we can improve clarity, reduce confusion, and help new developers adopt StateGraph workflows correctly.

Originally created by @jtayl222 on GitHub (Feb 9, 2025). ### Discussed in https://github.com/langchain-ai/langgraph/discussions/3363 <div type='discussions-op-text'> <sup>Originally posted by **jtayl222** February 9, 2025</sup> **References:** - 📖 [LangGraph’s StateGraph and Conversation History](https://jeftaylo.medium.com/why-you-should-use-stategraph-for-structured-chatbot-workflows-27162f79faa5) - 📖 [Why You Shouldn't Use @tool in StateGraph Workflows](https://medium.com/@jeftaylo/why-you-shouldnt-use-tool-in-langgraphs-stategraph-workflows-4efc38e4d203) **Problem:** Given the evolution of StateGraph and best practices, LangGraph has moved away from older, less structured methodologies. However, if the documentation and tutorials still mix legacy approaches with current best practices, it could create confusion for both new and existing users. **What is a reasonable plan to fix this problem?** A structured approach would involve segmenting the documentation into legacy content and modern best practices. Here’s how we could do it: 1. Categorizing Existing Content Identify and label older documentation that references legacy approaches, such as: Agent-based memory (e.g., ConversationBufferMemory) Using @tool in StateGraph workflows Non-deterministic execution patterns Separate modern best practices, such as: Explicit state transitions StateGraph-first workflows Avoiding @tool and implicit memory storage State management via reducers and structured state dictionaries 2. Updating the Official Documentation Introduce a clear distinction in the LangGraph documentation: ✅ Best Practices Section → Features modern, structured approaches using StateGraph. ❌ Legacy Section (with disclaimers) → Outlines older methods that are no longer recommended. Add clear notes to older methods indicating they are legacy approaches with links to updated best practices. 3. Improving Community Awareness Documentation summarizing: The issues with mixed documentation. Why StateGraph-first workflows are now the recommended approach. A comparison table showing "Old vs. New" best practices. **Conclusion** By implementing a structured plan to distinguish legacy from best practices, we can improve clarity, reduce confusion, and help new developers adopt StateGraph workflows correctly. </div>
yindo closed this issue 2026-02-20 17:40:09 -05:00
Author
Owner

@hinthornw commented on GitHub (Feb 9, 2025):

Do you have an example? From your notes it seems like you're referring to the LangChain docs, rather than the LangGraph docs?

I think the ones that need most work are some of my oldest tutorials, but they all still use state graph or message graph

@hinthornw commented on GitHub (Feb 9, 2025): Do you have an example? From your notes it seems like you're referring to the LangChain docs, rather than the LangGraph docs? I think the ones that need most work are some of my oldest tutorials, but they all still use state graph or message graph
Author
Owner

@eyurtsev commented on GitHub (Feb 19, 2025):

@jtayl222 FWIW the referenced medium links look like auto-generated AI posts. I don't think they were written by a person.

Closing this issue as it's not clear what concrete action items are required beyond general best practices -- we agree on the best practices it's mostly a matter of time and prioritization.

@eyurtsev commented on GitHub (Feb 19, 2025): @jtayl222 FWIW the referenced medium links look like auto-generated AI posts. I don't think they were written by a person. Closing this issue as it's not clear what concrete action items are required beyond general best practices -- we agree on the best practices it's mostly a matter of time and prioritization.
Author
Owner

@jtayl222 commented on GitHub (Feb 21, 2025):

./docs/docs/cloud/deployment/graph_rebuild.md:96: @tool
./docs/docs/cloud/how-tos/langgraph_to_langgraph_cloud.ipynb:87: "@tool\n",
./docs/docs/concepts/low_level.md:386:@tool
./docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb:130: "@tool\n",
./docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb:179: "@tool\n",
./docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb:191: "@tool\n",
./docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb:205: "@tool\n",
./docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb:216: "@tool\n",
./docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb:248: "@tool\n",
./docs/docs/tutorials/multi_agent/agent_supervisor.ipynb:103: "@tool\n",
./docs/docs/tutorials/multi_agent/multi-agent-collaboration.ipynb:106: "@tool\n",
./docs/docs/tutorials/introduction.ipynb:1209: "@tool\n",
./docs/docs/tutorials/introduction.ipynb:1395: "@tool\n",
./docs/docs/tutorials/introduction.ipynb:1505: "@tool\n",
./docs/docs/tutorials/introduction.ipynb:1598: "@tool\n",
./docs/docs/tutorials/introduction.ipynb:1953: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:232: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:274: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:314: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:357: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:426: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:485: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:530: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:555: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:595: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:637: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:681: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:706: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:746: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:788: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:833: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:860: "@tool\n",
./docs/docs/tutorials/customer-support/customer-support.ipynb:889: "@tool\n",
./docs/docs/tutorials/workflows/index.md:1029:@tool
./docs/docs/tutorials/workflows/index.md:1040:@tool
./docs/docs/tutorials/workflows/index.md:1051:@tool
./docs/docs/tutorials/sql-agent.ipynb:412: "@tool\n",
./docs/docs/tutorials/storm/storm.ipynb:723: "@tool\n",
./docs/docs/tutorials/storm/storm.ipynb:734: "@tool\n",
./docs/docs/how-tos/run-id-langsmith.ipynb:143: "@tool\n",
./docs/docs/how-tos/react-agent-from-scratch-functional.ipynb:99: "@tool\n",
./docs/docs/how-tos/react-agent-from-scratch.ipynb:123: "@tool\n",
./docs/docs/how-tos/human_in_the_loop/breakpoints.ipynb:284: "@tool\n",
./docs/docs/how-tos/human_in_the_loop/time-travel.ipynb:130: "@tool\n",
./docs/docs/how-tos/human_in_the_loop/time-travel.ipynb:137: "@tool\n",
./docs/docs/how-tos/human_in_the_loop/edit-graph-state.ipynb:291: "@tool\n",
./docs/docs/how-tos/human_in_the_loop/review-tool-calls.ipynb:180: "@tool\n",
./docs/docs/how-tos/human_in_the_loop/wait-user-input.ipynb:338: "@tool\n",
./docs/docs/how-tos/review-tool-calls-functional.ipynb:115: "@tool\n",
./docs/docs/how-tos/memory/manage-conversation-history.ipynb:107: "@tool\n",
./docs/docs/how-tos/memory/manage-conversation-history.ipynb:238: "@tool\n",
./docs/docs/how-tos/memory/delete-messages.ipynb:116: "@tool\n",
./docs/docs/how-tos/wait-user-input-functional.ipynb:256: "@tool\n",
./docs/docs/how-tos/wait-user-input-functional.ipynb:284: "@tool\n",
./docs/docs/how-tos/create-react-agent.ipynb:134: "@tool\n",
./docs/docs/how-tos/multi-agent-multi-turn-convo.ipynb:153: "@tool\n",
./docs/docs/how-tos/multi-agent-multi-turn-convo.ipynb:159: "@tool\n",
./docs/docs/how-tos/multi-agent-multi-turn-convo.ipynb:175: " @tool(tool_name)\n",
./docs/docs/how-tos/update-state-from-tools.ipynb:25: "@tool\n",
./docs/docs/how-tos/update-state-from-tools.ipynb:173: "@tool\n",
./docs/docs/how-tos/create-react-agent-memory.ipynb:130: "@tool\n",
./docs/docs/how-tos/streaming-events-from-within-tools.ipynb:163: "@tool\n",
./docs/docs/how-tos/streaming-events-from-within-tools.ipynb:241: "@tool\n",
./docs/docs/how-tos/async.ipynb:176: "@tool\n",
./docs/docs/how-tos/subgraphs-manage-state.ipynb:120: "@tool\n",
./docs/docs/how-tos/persistence_mongodb.ipynb:133: "@tool\n",
./docs/docs/how-tos/create-react-agent-structured-output.ipynb:116: "@tool\n",
./docs/docs/how-tos/create-react-agent-hitl.ipynb:124: "@tool\n",
./docs/docs/how-tos/persistence_postgres.ipynb:132: "@tool\n",
./docs/docs/how-tos/stream-multiple.ipynb:97: "@tool\n",
./docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb:38: "@tool(return_direct=True)\n",
./docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb:163: "@tool\n",
./docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb:169: "@tool\n",
./docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb:181: "@tool(return_direct=True)\n",
./docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb:187: "@tool(return_direct=True)\n",
./docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb:200: " You might have noticed that we're using @tool(return_direct=True) in the transfer tools. This is done so that individual agents (e.g., travel_advisor) can exit the ReAct loop early once these tools are called. This is the desired behavior, as we want to detect when the agent calls this tool and hand control off immediately to a different agent. \n",
./docs/docs/how-tos/multi-agent-network-functional.ipynb:34: "@tool(return_direct=True)\n",
./docs/docs/how-tos/multi-agent-network-functional.ipynb:168: "@tool\n",
./docs/docs/how-tos/multi-agent-network-functional.ipynb:174: "@tool\n",
./docs/docs/how-tos/multi-agent-network-functional.ipynb:186: "@tool(return_direct=True)\n",
./docs/docs/how-tos/multi-agent-network-functional.ipynb:192: "@tool(return_direct=True)\n",
./docs/docs/how-tos/multi-agent-network-functional.ipynb:205: " You might have noticed that we're using @tool(return_direct=True) in the transfer tools. This is done so that individual agents (e.g., travel_advisor) can exit the ReAct loop early once these tools are called. This is the desired behavior, as we want to detect when the agent calls this tool and hand control off immediately to a different agent. \n",
./docs/docs/how-tos/pass-run-time-values-to-tools.ipynb:53: "# Can be sync or async; @tool decorator not required\n",
./docs/docs/how-tos/pass-run-time-values-to-tools.ipynb:233: "@tool\n",
./docs/docs/how-tos/pass-run-time-values-to-tools.ipynb:460: "@tool\n",
./docs/docs/how-tos/tool-calling-errors.ipynb💯 "@tool\n",
./docs/docs/how-tos/tool-calling-errors.ipynb:303: "@tool\n",
./docs/docs/how-tos/tool-calling-errors.ipynb:376: "@tool\n",
./docs/docs/how-tos/create-react-agent-system-prompt.ipynb:126: "@tool\n",
./docs/docs/how-tos/multi-agent-network.ipynb:165: "@tool\n",
./docs/docs/how-tos/multi-agent-network.ipynb:174: "@tool\n",
./docs/docs/how-tos/multi-agent-network.ipynb:448: "@tool\n",
./docs/docs/how-tos/multi-agent-network.ipynb:454: "@tool\n",
./docs/docs/how-tos/multi-agent-network.ipynb:492: " @tool(tool_name)\n",
./docs/docs/how-tos/tool-calling.ipynb:88: "@tool\n",
./docs/docs/how-tos/tool-calling.ipynb:97: "@tool\n",
./docs/docs/how-tos/persistence_redis.ipynb:830: "@tool\n",
./docs/docs/how-tos/pass-config-to-tools.ipynb:143: "@tool(parse_docstring=True)\n",
./docs/docs/how-tos/pass-config-to-tools.ipynb:158: "@tool\n",
./docs/docs/how-tos/pass-config-to-tools.ipynb:166: "@tool\n",
./docs/docs/how-tos/react-agent-structured-output.ipynb:171: "@tool\n",
./docs/docs/how-tos/agent-handoffs.ipynb:46: "@tool\n",
./docs/docs/how-tos/agent-handoffs.ipynb:160: "@tool\n",
./docs/docs/how-tos/agent-handoffs.ipynb:169: "@tool\n",
./docs/docs/how-tos/agent-handoffs.ipynb:420: " @tool(tool_name)\n",
./docs/docs/how-tos/agent-handoffs.ipynb:544: "@tool\n",
./docs/docs/how-tos/agent-handoffs.ipynb:550: "@tool\n",
./libs/langgraph/langgraph/prebuilt/tool_node.py:639: >>> @tool
./libs/langgraph/langgraph/prebuilt/tool_node.py:702: @tool
./libs/langgraph/langgraph/prebuilt/tool_node.py:710: @tool
./libs/langgraph/langgraph/prebuilt/tool_node.py:765: @tool
./libs/langgraph/langgraph/prebuilt/tool_executor.py:70: >>> @tool
./libs/langgraph/tests/test_pregel_async.py:5589: @tool()
./libs/langgraph/tests/test_pregel_async.py:6095: @tool(return_direct=True)
./libs/langgraph/tests/test_large_cases.py:520: @tool()
./libs/langgraph/tests/test_large_cases.py:1466: @tool()
./libs/langgraph/tests/test_large_cases.py:2359: @tool()
./libs/langgraph/tests/test_large_cases.py:2780: @tool()
./libs/langgraph/tests/test_large_cases.py:3691: @tool()
./libs/langgraph/tests/test_large_cases.py:4515: @tool()
./libs/langgraph/tests/test_large_cases.py:10102: @tool
./libs/langgraph/tests/test_large_cases_async.py:537: @tool()
./libs/langgraph/tests/test_large_cases_async.py:1564: @tool()
./libs/langgraph/tests/test_large_cases_async.py:2213: @tool()
./libs/langgraph/tests/test_large_cases_async.py:2506: @tool()
./libs/langgraph/tests/test_large_cases_async.py:3353: @tool()
./libs/langgraph/tests/test_large_cases_async.py:6937: @tool
./libs/langgraph/tests/test_pregel.py:2115: @tool()
./libs/langgraph/tests/test_pregel.py:3770: @tool()
./libs/langgraph/tests/test_pregel.py:4781: @tool(return_direct=True)
./libs/langgraph/README.md:99:@tool
./libs/langgraph/README.md:161:@tool
./libs/scheduler-kafka/tests/test_subgraph.py:30: @tool
./libs/scheduler-kafka/tests/test_subgraph_sync.py:30: @tool
./libs/cli/examples/graphs/storm.py:315:@tool
./README.md:99:@tool
./README.md:161:@tool

@jtayl222 commented on GitHub (Feb 21, 2025): ./docs/docs/cloud/deployment/graph_rebuild.md:96: @tool ./docs/docs/cloud/how-tos/langgraph_to_langgraph_cloud.ipynb:87: "@tool\n", ./docs/docs/concepts/low_level.md:386:@tool ./docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb:130: "@tool\n", ./docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb:179: "@tool\n", ./docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb:191: "@tool\n", ./docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb:205: "@tool\n", ./docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb:216: "@tool\n", ./docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb:248: "@tool\n", ./docs/docs/tutorials/multi_agent/agent_supervisor.ipynb:103: "@tool\n", ./docs/docs/tutorials/multi_agent/multi-agent-collaboration.ipynb:106: "@tool\n", ./docs/docs/tutorials/introduction.ipynb:1209: "@tool\n", ./docs/docs/tutorials/introduction.ipynb:1395: "@tool\n", ./docs/docs/tutorials/introduction.ipynb:1505: "@tool\n", ./docs/docs/tutorials/introduction.ipynb:1598: "@tool\n", ./docs/docs/tutorials/introduction.ipynb:1953: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:232: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:274: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:314: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:357: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:426: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:485: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:530: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:555: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:595: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:637: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:681: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:706: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:746: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:788: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:833: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:860: "@tool\n", ./docs/docs/tutorials/customer-support/customer-support.ipynb:889: "@tool\n", ./docs/docs/tutorials/workflows/index.md:1029:@tool ./docs/docs/tutorials/workflows/index.md:1040:@tool ./docs/docs/tutorials/workflows/index.md:1051:@tool ./docs/docs/tutorials/sql-agent.ipynb:412: "@tool\n", ./docs/docs/tutorials/storm/storm.ipynb:723: "@tool\n", ./docs/docs/tutorials/storm/storm.ipynb:734: "@tool\n", ./docs/docs/how-tos/run-id-langsmith.ipynb:143: "@tool\n", ./docs/docs/how-tos/react-agent-from-scratch-functional.ipynb:99: "@tool\n", ./docs/docs/how-tos/react-agent-from-scratch.ipynb:123: "@tool\n", ./docs/docs/how-tos/human_in_the_loop/breakpoints.ipynb:284: "@tool\n", ./docs/docs/how-tos/human_in_the_loop/time-travel.ipynb:130: "@tool\n", ./docs/docs/how-tos/human_in_the_loop/time-travel.ipynb:137: "@tool\n", ./docs/docs/how-tos/human_in_the_loop/edit-graph-state.ipynb:291: "@tool\n", ./docs/docs/how-tos/human_in_the_loop/review-tool-calls.ipynb:180: "@tool\n", ./docs/docs/how-tos/human_in_the_loop/wait-user-input.ipynb:338: "@tool\n", ./docs/docs/how-tos/review-tool-calls-functional.ipynb:115: "@tool\n", ./docs/docs/how-tos/memory/manage-conversation-history.ipynb:107: "@tool\n", ./docs/docs/how-tos/memory/manage-conversation-history.ipynb:238: "@tool\n", ./docs/docs/how-tos/memory/delete-messages.ipynb:116: "@tool\n", ./docs/docs/how-tos/wait-user-input-functional.ipynb:256: "@tool\n", ./docs/docs/how-tos/wait-user-input-functional.ipynb:284: "@tool\n", ./docs/docs/how-tos/create-react-agent.ipynb:134: "@tool\n", ./docs/docs/how-tos/multi-agent-multi-turn-convo.ipynb:153: "@tool\n", ./docs/docs/how-tos/multi-agent-multi-turn-convo.ipynb:159: "@tool\n", ./docs/docs/how-tos/multi-agent-multi-turn-convo.ipynb:175: " @tool(tool_name)\n", ./docs/docs/how-tos/update-state-from-tools.ipynb:25: "@tool\n", ./docs/docs/how-tos/update-state-from-tools.ipynb:173: "@tool\n", ./docs/docs/how-tos/create-react-agent-memory.ipynb:130: "@tool\n", ./docs/docs/how-tos/streaming-events-from-within-tools.ipynb:163: "@tool\n", ./docs/docs/how-tos/streaming-events-from-within-tools.ipynb:241: "@tool\n", ./docs/docs/how-tos/async.ipynb:176: "@tool\n", ./docs/docs/how-tos/subgraphs-manage-state.ipynb:120: "@tool\n", ./docs/docs/how-tos/persistence_mongodb.ipynb:133: "@tool\n", ./docs/docs/how-tos/create-react-agent-structured-output.ipynb:116: "@tool\n", ./docs/docs/how-tos/create-react-agent-hitl.ipynb:124: "@tool\n", ./docs/docs/how-tos/persistence_postgres.ipynb:132: "@tool\n", ./docs/docs/how-tos/stream-multiple.ipynb:97: "@tool\n", ./docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb:38: "@tool(return_direct=True)\n", ./docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb:163: "@tool\n", ./docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb:169: "@tool\n", ./docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb:181: "@tool(return_direct=True)\n", ./docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb:187: "@tool(return_direct=True)\n", ./docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb:200: " You might have noticed that we're using `@tool(return_direct=True)` in the transfer tools. This is done so that individual agents (e.g., `travel_advisor`) can exit the ReAct loop early once these tools are called. This is the desired behavior, as we want to detect when the agent calls this tool and hand control off _immediately_ to a different agent. \n", ./docs/docs/how-tos/multi-agent-network-functional.ipynb:34: "@tool(return_direct=True)\n", ./docs/docs/how-tos/multi-agent-network-functional.ipynb:168: "@tool\n", ./docs/docs/how-tos/multi-agent-network-functional.ipynb:174: "@tool\n", ./docs/docs/how-tos/multi-agent-network-functional.ipynb:186: "@tool(return_direct=True)\n", ./docs/docs/how-tos/multi-agent-network-functional.ipynb:192: "@tool(return_direct=True)\n", ./docs/docs/how-tos/multi-agent-network-functional.ipynb:205: " You might have noticed that we're using `@tool(return_direct=True)` in the transfer tools. This is done so that individual agents (e.g., `travel_advisor`) can exit the ReAct loop early once these tools are called. This is the desired behavior, as we want to detect when the agent calls this tool and hand control off _immediately_ to a different agent. \n", ./docs/docs/how-tos/pass-run-time-values-to-tools.ipynb:53: "# Can be sync or async; @tool decorator not required\n", ./docs/docs/how-tos/pass-run-time-values-to-tools.ipynb:233: "@tool\n", ./docs/docs/how-tos/pass-run-time-values-to-tools.ipynb:460: "@tool\n", ./docs/docs/how-tos/tool-calling-errors.ipynb:100: "@tool\n", ./docs/docs/how-tos/tool-calling-errors.ipynb:303: "@tool\n", ./docs/docs/how-tos/tool-calling-errors.ipynb:376: "@tool\n", ./docs/docs/how-tos/create-react-agent-system-prompt.ipynb:126: "@tool\n", ./docs/docs/how-tos/multi-agent-network.ipynb:165: "@tool\n", ./docs/docs/how-tos/multi-agent-network.ipynb:174: "@tool\n", ./docs/docs/how-tos/multi-agent-network.ipynb:448: "@tool\n", ./docs/docs/how-tos/multi-agent-network.ipynb:454: "@tool\n", ./docs/docs/how-tos/multi-agent-network.ipynb:492: " @tool(tool_name)\n", ./docs/docs/how-tos/tool-calling.ipynb:88: "@tool\n", ./docs/docs/how-tos/tool-calling.ipynb:97: "@tool\n", ./docs/docs/how-tos/persistence_redis.ipynb:830: "@tool\n", ./docs/docs/how-tos/pass-config-to-tools.ipynb:143: "@tool(parse_docstring=True)\n", ./docs/docs/how-tos/pass-config-to-tools.ipynb:158: "@tool\n", ./docs/docs/how-tos/pass-config-to-tools.ipynb:166: "@tool\n", ./docs/docs/how-tos/react-agent-structured-output.ipynb:171: "@tool\n", ./docs/docs/how-tos/agent-handoffs.ipynb:46: "@tool\n", ./docs/docs/how-tos/agent-handoffs.ipynb:160: "@tool\n", ./docs/docs/how-tos/agent-handoffs.ipynb:169: "@tool\n", ./docs/docs/how-tos/agent-handoffs.ipynb:420: " @tool(tool_name)\n", ./docs/docs/how-tos/agent-handoffs.ipynb:544: "@tool\n", ./docs/docs/how-tos/agent-handoffs.ipynb:550: "@tool\n", ./libs/langgraph/langgraph/prebuilt/tool_node.py:639: >>> @tool ./libs/langgraph/langgraph/prebuilt/tool_node.py:702: @tool ./libs/langgraph/langgraph/prebuilt/tool_node.py:710: @tool ./libs/langgraph/langgraph/prebuilt/tool_node.py:765: @tool ./libs/langgraph/langgraph/prebuilt/tool_executor.py:70: >>> @tool ./libs/langgraph/tests/test_pregel_async.py:5589: @tool() ./libs/langgraph/tests/test_pregel_async.py:6095: @tool(return_direct=True) ./libs/langgraph/tests/test_large_cases.py:520: @tool() ./libs/langgraph/tests/test_large_cases.py:1466: @tool() ./libs/langgraph/tests/test_large_cases.py:2359: @tool() ./libs/langgraph/tests/test_large_cases.py:2780: @tool() ./libs/langgraph/tests/test_large_cases.py:3691: @tool() ./libs/langgraph/tests/test_large_cases.py:4515: @tool() ./libs/langgraph/tests/test_large_cases.py:10102: @tool ./libs/langgraph/tests/test_large_cases_async.py:537: @tool() ./libs/langgraph/tests/test_large_cases_async.py:1564: @tool() ./libs/langgraph/tests/test_large_cases_async.py:2213: @tool() ./libs/langgraph/tests/test_large_cases_async.py:2506: @tool() ./libs/langgraph/tests/test_large_cases_async.py:3353: @tool() ./libs/langgraph/tests/test_large_cases_async.py:6937: @tool ./libs/langgraph/tests/test_pregel.py:2115: @tool() ./libs/langgraph/tests/test_pregel.py:3770: @tool() ./libs/langgraph/tests/test_pregel.py:4781: @tool(return_direct=True) ./libs/langgraph/README.md:99:@tool ./libs/langgraph/README.md:161:@tool ./libs/scheduler-kafka/tests/test_subgraph.py:30: @tool ./libs/scheduler-kafka/tests/test_subgraph_sync.py:30: @tool ./libs/cli/examples/graphs/storm.py:315:@tool ./README.md:99:@tool ./README.md:161:@tool
Author
Owner

@jtayl222 commented on GitHub (Feb 21, 2025):

https://github.com/langchain-ai/langgraph/blob/main/docs/docs/cloud/deployment/graph_rebuild.md Line:96: @tool
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/cloud/how-tos/langgraph_to_langgraph_cloud.ipynb Line:87: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/concepts/low_level.md Line:386:@tool
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb Line:130: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb Line:179: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb Line:191: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb Line:205: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb Line:216: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb Line:248: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/agent_supervisor.ipynb Line:103: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/multi-agent-collaboration.ipynb Line:106: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/introduction.ipynb Line:1209: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/introduction.ipynb Line:1395: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/introduction.ipynb Line:1505: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/introduction.ipynb Line:1598: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/introduction.ipynb Line:1953: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:232: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:274: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:314: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:357: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:426: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:485: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:530: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:555: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:595: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:637: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:681: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:706: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:746: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:788: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:833: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:860: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:889: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/workflows/index.md Line:1029:@tool
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/workflows/index.md Line:1040:@tool
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/workflows/index.md Line:1051:@tool
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/sql-agent.ipynb Line:412: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/storm/storm.ipynb Line:723: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/storm/storm.ipynb Line:734: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/run-id-langsmith.ipynb Line:143: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/react-agent-from-scratch-functional.ipynb Line:99: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/react-agent-from-scratch.ipynb Line:123: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/human_in_the_loop/breakpoints.ipynb Line:284: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/human_in_the_loop/time-travel.ipynb Line:130: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/human_in_the_loop/time-travel.ipynb Line:137: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/human_in_the_loop/edit-graph-state.ipynb Line:291: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/human_in_the_loop/review-tool-calls.ipynb Line:180: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/human_in_the_loop/wait-user-input.ipynb Line:338: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/review-tool-calls-functional.ipynb Line:115: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/memory/manage-conversation-history.ipynb Line:107: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/memory/manage-conversation-history.ipynb Line:238: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/memory/delete-messages.ipynb Line:116: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/wait-user-input-functional.ipynb Line:256: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/wait-user-input-functional.ipynb Line:284: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/create-react-agent.ipynb Line:134: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo.ipynb Line:153: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo.ipynb Line:159: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo.ipynb Line:175: " @tool(tool_name)\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/update-state-from-tools.ipynb Line:25: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/update-state-from-tools.ipynb Line:173: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/create-react-agent-memory.ipynb Line:130: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/streaming-events-from-within-tools.ipynb Line:163: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/streaming-events-from-within-tools.ipynb Line:241: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/async.ipynb Line:176: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/subgraphs-manage-state.ipynb Line:120: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/persistence_mongodb.ipynb Line:133: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/create-react-agent-structured-output.ipynb Line:116: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/create-react-agent-hitl.ipynb Line:124: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/persistence_postgres.ipynb Line:132: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/stream-multiple.ipynb Line:97: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb Line:38: "@tool(return_direct=True)\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb Line:163: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb Line:169: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb Line:181: "@tool(return_direct=True)\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb Line:187: "@tool(return_direct=True)\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb Line:200: " You might have noticed that we're using @tool(return_direct=True) in the transfer tools. This is done so that individual agents (e.g., travel_advisor) can exit the ReAct loop early once these tools are called. This is the desired behavior, as we want to detect when the agent calls this tool and hand control off immediately to a different agent. \n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network-functional.ipynb Line:34: "@tool(return_direct=True)\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network-functional.ipynb Line:168: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network-functional.ipynb Line:174: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network-functional.ipynb Line:186: "@tool(return_direct=True)\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network-functional.ipynb Line:192: "@tool(return_direct=True)\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network-functional.ipynb Line:205: " You might have noticed that we're using @tool(return_direct=True) in the transfer tools. This is done so that individual agents (e.g., travel_advisor) can exit the ReAct loop early once these tools are called. This is the desired behavior, as we want to detect when the agent calls this tool and hand control off immediately to a different agent. \n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/pass-run-time-values-to-tools.ipynb Line:53: "# Can be sync or async; @tool decorator not required\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/pass-run-time-values-to-tools.ipynb Line:233: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/pass-run-time-values-to-tools.ipynb Line:460: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/tool-calling-errors.ipynb Line💯 "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/tool-calling-errors.ipynb Line:303: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/tool-calling-errors.ipynb Line:376: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/create-react-agent-system-prompt.ipynb Line:126: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network.ipynb Line:165: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network.ipynb Line:174: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network.ipynb Line:448: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network.ipynb Line:454: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network.ipynb Line:492: " @tool(tool_name)\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/tool-calling.ipynb Line:88: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/tool-calling.ipynb Line:97: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/persistence_redis.ipynb Line:830: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/pass-config-to-tools.ipynb Line:143: "@tool(parse_docstring=True)\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/pass-config-to-tools.ipynb Line:158: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/pass-config-to-tools.ipynb Line:166: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/react-agent-structured-output.ipynb Line:171: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/agent-handoffs.ipynb Line:46: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/agent-handoffs.ipynb Line:160: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/agent-handoffs.ipynb Line:169: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/agent-handoffs.ipynb Line:420: " @tool(tool_name)\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/agent-handoffs.ipynb Line:544: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/agent-handoffs.ipynb Line:550: "@tool\n",
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/langgraph/prebuilt/tool_node.py Line:639: >>> @tool
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/langgraph/prebuilt/tool_node.py Line:702: @tool
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/langgraph/prebuilt/tool_node.py Line:710: @tool
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/langgraph/prebuilt/tool_node.py Line:765: @tool
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/langgraph/prebuilt/tool_executor.py Line:70: >>> @tool
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_pregel_async.py Line:5589: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_pregel_async.py Line:6095: @tool(return_direct=True)
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:520: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:1466: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:2359: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:2780: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:3691: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:4515: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:10102: @tool
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases_async.py Line:537: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases_async.py Line:1564: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases_async.py Line:2213: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases_async.py Line:2506: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases_async.py Line:3353: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases_async.py Line:6937: @tool
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_pregel.py Line:2115: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_pregel.py Line:3770: @tool()
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_pregel.py Line:4781: @tool(return_direct=True)
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/README.md Line:99:@tool
https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/README.md Line:161:@tool
https://github.com/langchain-ai/langgraph/blob/main/libs/scheduler-kafka/tests/test_subgraph.py Line:30: @tool
https://github.com/langchain-ai/langgraph/blob/main/libs/scheduler-kafka/tests/test_subgraph_sync.py Line:30: @tool
https://github.com/langchain-ai/langgraph/blob/main/libs/cli/examples/graphs/storm.py Line:315:@tool
https://github.com/langchain-ai/langgraph/blob/main/README.md Line:99:@tool
https://github.com/langchain-ai/langgraph/blob/main/README.md Line:161:@tool

@jtayl222 commented on GitHub (Feb 21, 2025): https://github.com/langchain-ai/langgraph/blob/main/docs/docs/cloud/deployment/graph_rebuild.md Line:96: @tool https://github.com/langchain-ai/langgraph/blob/main/docs/docs/cloud/how-tos/langgraph_to_langgraph_cloud.ipynb Line:87: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/concepts/low_level.md Line:386:@tool https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb Line:130: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb Line:179: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb Line:191: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb Line:205: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb Line:216: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb Line:248: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/agent_supervisor.ipynb Line:103: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/multi_agent/multi-agent-collaboration.ipynb Line:106: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/introduction.ipynb Line:1209: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/introduction.ipynb Line:1395: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/introduction.ipynb Line:1505: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/introduction.ipynb Line:1598: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/introduction.ipynb Line:1953: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:232: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:274: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:314: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:357: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:426: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:485: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:530: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:555: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:595: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:637: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:681: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:706: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:746: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:788: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:833: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:860: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/customer-support/customer-support.ipynb Line:889: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/workflows/index.md Line:1029:@tool https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/workflows/index.md Line:1040:@tool https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/workflows/index.md Line:1051:@tool https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/sql-agent.ipynb Line:412: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/storm/storm.ipynb Line:723: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/tutorials/storm/storm.ipynb Line:734: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/run-id-langsmith.ipynb Line:143: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/react-agent-from-scratch-functional.ipynb Line:99: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/react-agent-from-scratch.ipynb Line:123: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/human_in_the_loop/breakpoints.ipynb Line:284: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/human_in_the_loop/time-travel.ipynb Line:130: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/human_in_the_loop/time-travel.ipynb Line:137: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/human_in_the_loop/edit-graph-state.ipynb Line:291: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/human_in_the_loop/review-tool-calls.ipynb Line:180: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/human_in_the_loop/wait-user-input.ipynb Line:338: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/review-tool-calls-functional.ipynb Line:115: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/memory/manage-conversation-history.ipynb Line:107: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/memory/manage-conversation-history.ipynb Line:238: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/memory/delete-messages.ipynb Line:116: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/wait-user-input-functional.ipynb Line:256: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/wait-user-input-functional.ipynb Line:284: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/create-react-agent.ipynb Line:134: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo.ipynb Line:153: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo.ipynb Line:159: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo.ipynb Line:175: " @tool(tool_name)\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/update-state-from-tools.ipynb Line:25: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/update-state-from-tools.ipynb Line:173: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/create-react-agent-memory.ipynb Line:130: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/streaming-events-from-within-tools.ipynb Line:163: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/streaming-events-from-within-tools.ipynb Line:241: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/async.ipynb Line:176: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/subgraphs-manage-state.ipynb Line:120: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/persistence_mongodb.ipynb Line:133: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/create-react-agent-structured-output.ipynb Line:116: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/create-react-agent-hitl.ipynb Line:124: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/persistence_postgres.ipynb Line:132: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/stream-multiple.ipynb Line:97: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb Line:38: "@tool(return_direct=True)\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb Line:163: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb Line:169: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb Line:181: "@tool(return_direct=True)\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb Line:187: "@tool(return_direct=True)\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-multi-turn-convo-functional.ipynb Line:200: " You might have noticed that we're using `@tool(return_direct=True)` in the transfer tools. This is done so that individual agents (e.g., `travel_advisor`) can exit the ReAct loop early once these tools are called. This is the desired behavior, as we want to detect when the agent calls this tool and hand control off _immediately_ to a different agent. \n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network-functional.ipynb Line:34: "@tool(return_direct=True)\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network-functional.ipynb Line:168: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network-functional.ipynb Line:174: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network-functional.ipynb Line:186: "@tool(return_direct=True)\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network-functional.ipynb Line:192: "@tool(return_direct=True)\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network-functional.ipynb Line:205: " You might have noticed that we're using `@tool(return_direct=True)` in the transfer tools. This is done so that individual agents (e.g., `travel_advisor`) can exit the ReAct loop early once these tools are called. This is the desired behavior, as we want to detect when the agent calls this tool and hand control off _immediately_ to a different agent. \n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/pass-run-time-values-to-tools.ipynb Line:53: "# Can be sync or async; @tool decorator not required\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/pass-run-time-values-to-tools.ipynb Line:233: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/pass-run-time-values-to-tools.ipynb Line:460: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/tool-calling-errors.ipynb Line:100: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/tool-calling-errors.ipynb Line:303: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/tool-calling-errors.ipynb Line:376: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/create-react-agent-system-prompt.ipynb Line:126: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network.ipynb Line:165: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network.ipynb Line:174: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network.ipynb Line:448: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network.ipynb Line:454: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/multi-agent-network.ipynb Line:492: " @tool(tool_name)\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/tool-calling.ipynb Line:88: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/tool-calling.ipynb Line:97: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/persistence_redis.ipynb Line:830: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/pass-config-to-tools.ipynb Line:143: "@tool(parse_docstring=True)\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/pass-config-to-tools.ipynb Line:158: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/pass-config-to-tools.ipynb Line:166: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/react-agent-structured-output.ipynb Line:171: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/agent-handoffs.ipynb Line:46: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/agent-handoffs.ipynb Line:160: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/agent-handoffs.ipynb Line:169: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/agent-handoffs.ipynb Line:420: " @tool(tool_name)\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/agent-handoffs.ipynb Line:544: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/docs/docs/how-tos/agent-handoffs.ipynb Line:550: "@tool\n", https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/langgraph/prebuilt/tool_node.py Line:639: >>> @tool https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/langgraph/prebuilt/tool_node.py Line:702: @tool https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/langgraph/prebuilt/tool_node.py Line:710: @tool https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/langgraph/prebuilt/tool_node.py Line:765: @tool https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/langgraph/prebuilt/tool_executor.py Line:70: >>> @tool https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_pregel_async.py Line:5589: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_pregel_async.py Line:6095: @tool(return_direct=True) https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:520: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:1466: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:2359: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:2780: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:3691: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:4515: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases.py Line:10102: @tool https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases_async.py Line:537: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases_async.py Line:1564: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases_async.py Line:2213: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases_async.py Line:2506: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases_async.py Line:3353: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_large_cases_async.py Line:6937: @tool https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_pregel.py Line:2115: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_pregel.py Line:3770: @tool() https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/tests/test_pregel.py Line:4781: @tool(return_direct=True) https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/README.md Line:99:@tool https://github.com/langchain-ai/langgraph/blob/main/libs/langgraph/README.md Line:161:@tool https://github.com/langchain-ai/langgraph/blob/main/libs/scheduler-kafka/tests/test_subgraph.py Line:30: @tool https://github.com/langchain-ai/langgraph/blob/main/libs/scheduler-kafka/tests/test_subgraph_sync.py Line:30: @tool https://github.com/langchain-ai/langgraph/blob/main/libs/cli/examples/graphs/storm.py Line:315:@tool https://github.com/langchain-ai/langgraph/blob/main/README.md Line:99:@tool https://github.com/langchain-ai/langgraph/blob/main/README.md Line:161:@tool
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langchain-ai/langgraph#442