mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-09-06 17:57:49 +02:00
x
This commit is contained in:
@@ -12,6 +12,14 @@
|
||||
"source": [
|
||||
"# How to add breakpoints\n",
|
||||
"\n",
|
||||
"!!! tip \"Prerequisits\"\n",
|
||||
"\n",
|
||||
" This guide assumes familiarity with the following concepts:\n",
|
||||
"\n",
|
||||
" * [Breakpoints](../../../concepts/breakpoints)\n",
|
||||
" * [LangGraph Glossary](../../../concepts/low_level)\n",
|
||||
" \n",
|
||||
"\n",
|
||||
"Human-in-the-loop (HIL) interactions are crucial for [agentic systems](https://langchain-ai.github.io/langgraph/concepts/agentic_concepts/#human-in-the-loop). [Breakpoints](https://langchain-ai.github.io/langgraph/concepts/low_level/#breakpoints) are a common HIL interaction pattern, allowing the graph to stop at specific steps and seek human approval before proceeding (e.g., for sensitive actions). \n",
|
||||
"\n",
|
||||
"Breakpoints are built on top of LangGraph [checkpoints](https://langchain-ai.github.io/langgraph/concepts/low_level/#checkpointer), which save the graph's state after each node execution. Checkpoints are saved in [threads](https://langchain-ai.github.io/langgraph/concepts/low_level/#threads) that preserve graph state and can be accessed after a graph has finished execution. This allows for graph execution to pause at specific points, await human approval, and then resume execution from the last checkpoint.\n",
|
||||
@@ -467,7 +475,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.8"
|
||||
"version": "3.11.4"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@@ -1,18 +1,21 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"id": "ee54cde3-7e4d-43f4-b921-e7141ea0f19e",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# How to add dynamic breakpoints"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "607849c6-4b8c-4e06-ad9c-758bb5a08e86",
|
||||
"id": "b7d5f6a5-9e59-43e4-a4b6-8ada6dace691",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# How to add dynamic breakpoints\n",
|
||||
"\n",
|
||||
"!!! tip \"Prerequisits\"\n",
|
||||
"\n",
|
||||
" This guide assumes familiarity with the following concepts:\n",
|
||||
"\n",
|
||||
" * [Breakpoints](../../../concepts/breakpoints)\n",
|
||||
" * [LangGraph Glossary](../../../concepts/low_level)\n",
|
||||
" \n",
|
||||
"\n",
|
||||
"Human-in-the-loop (HIL) interactions are crucial for [agentic systems](https://langchain-ai.github.io/langgraph/concepts/agentic_concepts/#human-in-the-loop). [Breakpoints](https://langchain-ai.github.io/langgraph/concepts/low_level/#breakpoints) are a common HIL interaction pattern, allowing the graph to stop at specific steps and seek human approval before proceeding (e.g., for sensitive actions).\n",
|
||||
"\n",
|
||||
"In LangGraph you can add breakpoints before / after a node is executed. But oftentimes it may be helpful to **dynamically** interrupt the graph from inside a given node based on some condition. When doing so, it may also be helpful to include information about **why** that interrupt was raised.\n",
|
||||
@@ -430,7 +433,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.9"
|
||||
"version": "3.11.4"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@@ -12,6 +12,12 @@
|
||||
"source": [
|
||||
"# How to edit graph state\n",
|
||||
"\n",
|
||||
"!!! tip \"Prerequisits\"\n",
|
||||
"\n",
|
||||
" * [Human-in-the-loop](../../../concepts/human_in_the_loop)\n",
|
||||
" * [Breakpoints](../../../concepts/breakpoints)\n",
|
||||
" * [LangGraph Glossary](../../../concepts/low_level)\n",
|
||||
"\n",
|
||||
"Human-in-the-loop (HIL) interactions are crucial for [agentic systems](https://langchain-ai.github.io/langgraph/concepts/agentic_concepts/#human-in-the-loop). Manually updating the graph state a common HIL interaction pattern, allowing the human to edit actions (e.g., what tool is being called or how it is being called).\n",
|
||||
"\n",
|
||||
"We can implement this in LangGraph using a [breakpoint](https://langchain-ai.github.io/langgraph/how-tos/human_in_the_loop/breakpoints/): breakpoints allow us to interrupt graph execution before a specific step. At this breakpoint, we can manually update the graph state and then resume from that spot to continue. \n",
|
||||
@@ -554,7 +560,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.8"
|
||||
"version": "3.11.4"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@@ -11,7 +11,15 @@
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# How to use interrupt for human-in-the-loop workflows\n",
|
||||
"# How to use add breakpoints using interrupt?\n",
|
||||
"\n",
|
||||
"!!! tip \"Prerequisits\"\n",
|
||||
"\n",
|
||||
" This guide assumes familiarity with the following concepts:\n",
|
||||
"\n",
|
||||
" * [Breakpoints](../../../concepts/breakpoints)\n",
|
||||
" * [LangGraph Glossary](../../../concepts/low_level)\n",
|
||||
" \n",
|
||||
"\n",
|
||||
"An `interrupt` is a convenient way to support human-in-the-loop workflows.\n",
|
||||
"\n",
|
||||
|
||||
@@ -8,6 +8,15 @@
|
||||
"source": [
|
||||
"# How to Review Tool Calls\n",
|
||||
"\n",
|
||||
"!!! tip \"Prerequisits\"\n",
|
||||
"\n",
|
||||
" This guide assumes familiarity with the following concepts:\n",
|
||||
"\n",
|
||||
" * [Tool calling])(https://python.langchain.com/docs/concepts/tool_calling/)\n",
|
||||
" * [Human-in-the-loop](../../../concepts/human_in_the_loop)\n",
|
||||
" * [Breakpoints](../../../concepts/breakpoints\n",
|
||||
" * [LangGraph Glossary](../../../concepts/low_level) \n",
|
||||
"\n",
|
||||
"Human-in-the-loop (HIL) interactions are crucial for [agentic systems](https://langchain-ai.github.io/langgraph/concepts/agentic_concepts/#human-in-the-loop). A common pattern is to add some human in the loop step after certain tool calls. These tool calls often lead to either a function call or saving of some information. Examples include:\n",
|
||||
"\n",
|
||||
"- A tool call to execute SQL, which will then be run by the tool\n",
|
||||
@@ -674,7 +683,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.9"
|
||||
"version": "3.11.4"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@@ -7,6 +7,14 @@
|
||||
"source": [
|
||||
"# How to view and update past graph state\n",
|
||||
"\n",
|
||||
"!!! tip \"Prerequisits\"\n",
|
||||
"\n",
|
||||
" This guide assumes familiarity with the following concepts:\n",
|
||||
" \n",
|
||||
" * [Breakpoints](../../../concepts/breakpoints)\n",
|
||||
" * [LangGraph Glossary](../../../concepts/low_level)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"Once you start [checkpointing](../../persistence) your graphs, you can easily **get** or **update** the state of the agent at any point in time. This permits a few things:\n",
|
||||
"\n",
|
||||
"1. You can surface a state during an interrupt to a user to let them accept an action.\n",
|
||||
@@ -589,7 +597,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.9"
|
||||
"version": "3.11.4"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user