Skip to content

Commit 7cb2833

Browse files
committed
fix links
1 parent b6f7af0 commit 7cb2833

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+320
-320
lines changed
File renamed without changes.

src/oss/get-started/2-add-tools.mdx renamed to src/oss/2-add-tools.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Add tools
44
To handle queries that your chatbot can't answer "from memory", integrate a web search tool. The chatbot can use this tool to find relevant information and provide better responses.
55

66
<Note>
7-
This tutorial builds on [Build a basic chatbot](./1-build-basic-chatbot).
7+
This tutorial builds on [Build a basic chatbot](/oss/1-build-basic-chatbot).
88
</Note>
99

1010
## Prerequisites
@@ -152,11 +152,11 @@ The results are page summaries our chat bot can use to answer questions:
152152
## 4. Define the graph
153153

154154
:::python
155-
For the `StateGraph` you created in the [first tutorial](./1-build-basic-chatbot), add `bind_tools` on the LLM. This lets the LLM know the correct JSON format to use if it wants to use the search engine.
155+
For the `StateGraph` you created in the [first tutorial](/oss/1-build-basic-chatbot), add `bind_tools` on the LLM. This lets the LLM know the correct JSON format to use if it wants to use the search engine.
156156
:::
157157

158158
:::js
159-
For the `StateGraph` you created in the [first tutorial](./1-build-basic-chatbot), add `bindTools` on the LLM. This lets the LLM know the correct JSON format to use if it wants to use the search engine.
159+
For the `StateGraph` you created in the [first tutorial](/oss/1-build-basic-chatbot), add `bindTools` on the LLM. This lets the LLM know the correct JSON format to use if it wants to use the search engine.
160160
:::
161161

162162
Let's first select our LLM:
@@ -698,4 +698,4 @@ To inspect all the steps your agent just took, check out this [LangSmith trace](
698698

699699
## Next steps
700700

701-
The chatbot cannot remember past interactions on its own, which limits its ability to have coherent, multi-turn conversations. In the next part, you will [add **memory**](./3-add-memory) to address this.
701+
The chatbot cannot remember past interactions on its own, which limits its ability to have coherent, multi-turn conversations. In the next part, you will [add **memory**](/oss/3-add-memory) to address this.

src/oss/get-started/3-add-memory.mdx renamed to src/oss/3-add-memory.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
---
22
title: Add memory
33
---
4-
The chatbot can now [use tools](./2-add-tools) to answer user questions, but it does not remember the context of previous interactions. This limits its ability to have coherent, multi-turn conversations.
4+
The chatbot can now [use tools](/oss/2-add-tools) to answer user questions, but it does not remember the context of previous interactions. This limits its ability to have coherent, multi-turn conversations.
55

66
LangGraph solves this problem through **persistent checkpointing**. If you provide a `checkpointer` when compiling the graph and a `thread_id` when calling your graph, LangGraph automatically saves the state after each step. When you invoke the graph again using the same `thread_id`, the graph loads its saved state, allowing the chatbot to pick up where it left off.
77

88
We will see later that **checkpointing** is _much_ more powerful than simple chat memory - it lets you save and resume complex state at any time for error recovery, human-in-the-loop workflows, time travel interactions, and more. But first, let's add checkpointing to enable multi-turn conversations.
99

1010
<Note>
11-
This tutorial builds on [Add tools](./2-add-tools).
11+
This tutorial builds on [Add tools](/oss/2-add-tools).
1212
</Note>
1313

1414
## 1. Create a `MemorySaver` checkpointer
@@ -414,4 +414,4 @@ const graph = new StateGraph(State)
414414
415415
## Next steps
416416
417-
In the next tutorial, you will [add human-in-the-loop to the chatbot](./4-human-in-the-loop) to handle situations where it may need guidance or verification before proceeding.
417+
In the next tutorial, you will [add human-in-the-loop to the chatbot](/oss/4-human-in-the-loop) to handle situations where it may need guidance or verification before proceeding.

src/oss/get-started/4-human-in-the-loop.mdx renamed to src/oss/4-human-in-the-loop.mdx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ title: Add human-in-the-loop controls
33
---
44
Agents can be unreliable and may need human input to successfully accomplish tasks. Similarly, for some actions, you may want to require human approval before running to ensure that everything is running as intended.
55

6-
LangGraph's [persistence](../../concepts/persistence) layer supports **human-in-the-loop** workflows, allowing execution to pause and resume based on user feedback. The primary interface to this functionality is the [`interrupt`](../../how-tos/human_in_the_loop/add-human-in-the-loop) function. Calling `interrupt` inside a node will pause execution. Execution can be resumed, together with new input from a human, by passing in a [Command](../../concepts/low_level#command).
6+
LangGraph's [persistence](.././persistence) layer supports **human-in-the-loop** workflows, allowing execution to pause and resume based on user feedback. The primary interface to this functionality is the [`interrupt`](.././human_in_the_loop/add-human-in-the-loop) function. Calling `interrupt` inside a node will pause execution. Execution can be resumed, together with new input from a human, by passing in a [Command](.././low_level#command).
77

88
:::python
9-
`interrupt` is ergonomically similar to Python's built-in `input()`, [with some caveats](../../how-tos/human_in_the_loop/add-human-in-the-loop).
9+
`interrupt` is ergonomically similar to Python's built-in `input()`, [with some caveats](.././human_in_the_loop/add-human-in-the-loop).
1010
:::
1111

1212
:::js
13-
`interrupt` is ergonomically similar to Node.js's built-in `readline.question()` function, [with some caveats](../../how-tos/human_in_the_loop/add-human-in-the-loop).
14-
`interrupt` is ergonomically similar to Node.js's built-in `readline.question()` function, [with some caveats](../../how-tos/human_in_the_loop/add-human-in-the-loop).
13+
`interrupt` is ergonomically similar to Node.js's built-in `readline.question()` function, [with some caveats](.././human_in_the_loop/add-human-in-the-loop).
14+
`interrupt` is ergonomically similar to Node.js's built-in `readline.question()` function, [with some caveats](.././human_in_the_loop/add-human-in-the-loop).
1515
:::
1616

1717
<Note>
@@ -150,7 +150,7 @@ async function chatbot(state: z.infer<typeof MessagesZodState>) {
150150
:::
151151
152152
<Tip>
153-
For more information and examples of human-in-the-loop workflows, see [Human-in-the-loop](../../concepts/human_in_the_loop).
153+
For more information and examples of human-in-the-loop workflows, see [Human-in-the-loop](.././human_in_the_loop).
154154
</Tip>
155155
156156
## 2. Compile the graph
@@ -353,7 +353,7 @@ snapshot.next;
353353
return human_response["data"]
354354
```
355355
356-
Similar to Python's built-in `input()` function, calling `interrupt` inside the tool will pause execution. Progress is persisted based on the [checkpointer](../../concepts/persistence#checkpointer-libraries); so if it is persisting with Postgres, it can resume at any time as long as the database is alive. In this example, it is persisting with the in-memory checkpointer and can resume any time if the Python kernel is running.
356+
Similar to Python's built-in `input()` function, calling `interrupt` inside the tool will pause execution. Progress is persisted based on the [checkpointer](.././persistence#checkpointer-libraries); so if it is persisting with Postgres, it can resume at any time as long as the database is alive. In this example, it is persisting with the in-memory checkpointer and can resume any time if the Python kernel is running.
357357
:::
358358
359359
:::js
@@ -394,12 +394,12 @@ snapshot.next;
394394
395395
```
396396

397-
Calling `interrupt` inside the tool will pause execution. Progress is persisted based on the [checkpointer](../../concepts/persistence#checkpointer-libraries); so if it is persisting with Postgres, it can resume at any time as long as the database is alive. In this example, it is persisting with the in-memory checkpointer and can resume any time if the JavaScript runtime is running.
397+
Calling `interrupt` inside the tool will pause execution. Progress is persisted based on the [checkpointer](.././persistence#checkpointer-libraries); so if it is persisting with Postgres, it can resume at any time as long as the database is alive. In this example, it is persisting with the in-memory checkpointer and can resume any time if the JavaScript runtime is running.
398398
:::
399399

400400
## 5. Resume execution
401401

402-
To resume execution, pass a [`Command`](../../concepts/low_level#command) object containing data expected by the tool. The format of this data can be customized based on needs.
402+
To resume execution, pass a [`Command`](.././low_level#command) object containing data expected by the tool. The format of this data can be customized based on needs.
403403

404404
:::python
405405

src/oss/get-started/5-customize-state.mdx renamed to src/oss/5-customize-state.mdx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Customize state
44
In this tutorial, you will add additional fields to the state to define complex behavior without relying on the message list. The chatbot will use its search tool to find specific information and forward them to a human for review.
55

66
<Note>
7-
This tutorial builds on [Add human-in-the-loop controls](./4-human-in-the-loop).
7+
This tutorial builds on [Add human-in-the-loop controls](/oss/4-human-in-the-loop).
88
</Note>
99

1010
## 1. Add keys to the state
@@ -49,7 +49,7 @@ Adding this information to the state makes it easily accessible by other graph n
4949
## 2. Update the state inside the tool
5050

5151
:::python
52-
Now, populate the state keys inside of the `human_assistance` tool. This allows a human to review the information before it is stored in the state. Use [`Command`](../../concepts/low_level#using-inside-tools) to issue a state update from inside the tool.
52+
Now, populate the state keys inside of the `human_assistance` tool. This allows a human to review the information before it is stored in the state. Use [`Command`](.././low_level#using-inside-tools) to issue a state update from inside the tool.
5353

5454
```python
5555
from langchain_core.messages import ToolMessage
@@ -97,7 +97,7 @@ def human_assistance(
9797
:::
9898

9999
:::js
100-
Now, populate the state keys inside of the `humanAssistance` tool. This allows a human to review the information before it is stored in the state. Use [`Command`](../../concepts/low_level#using-inside-tools) to issue a state update from inside the tool.
100+
Now, populate the state keys inside of the `humanAssistance` tool. This allows a human to review the information before it is stored in the state. Use [`Command`](.././low_level#using-inside-tools) to issue a state update from inside the tool.
101101

102102
```typescript
103103
import { tool } from "@langchain/core/tools";
@@ -454,7 +454,7 @@ const updatedRelevantState = Object.fromEntries(
454454
```
455455
:::
456456

457-
Manual state updates will [generate a trace](https://smith.langchain.com/public/7ebb7827-378d-49fe-9f6c-5df0e90086c8/r) in LangSmith. If desired, they can also be used to [control human-in-the-loop workflows](../../how-tos/human_in_the_loop/add-human-in-the-loop). Use of the `interrupt` function is generally recommended instead, as it allows data to be transmitted in a human-in-the-loop interaction independently of state updates.
457+
Manual state updates will [generate a trace](https://smith.langchain.com/public/7ebb7827-378d-49fe-9f6c-5df0e90086c8/r) in LangSmith. If desired, they can also be used to [control human-in-the-loop workflows](.././human_in_the_loop/add-human-in-the-loop). Use of the `interrupt` function is generally recommended instead, as it allows data to be transmitted in a human-in-the-loop interaction independently of state updates.
458458

459459
**Congratulations!** You've added custom keys to the state to facilitate a more complex workflow, and learned how to generate state updates from inside tools.
460460

@@ -651,4 +651,4 @@ const graph = new StateGraph(State)
651651
652652
## Next steps
653653
654-
There's one more concept to review before finishing the LangGraph basics tutorials: connecting `checkpointing` and `state updates` to [time travel](./6-time-travel).
654+
There's one more concept to review before finishing the LangGraph basics tutorials: connecting `checkpointing` and `state updates` to [time travel](/oss/6-time-travel).

src/oss/get-started/6-time-travel.mdx renamed to src/oss/6-time-travel.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
---
22
title: Time travel
33
---
4-
In a typical chatbot workflow, the user interacts with the bot one or more times to accomplish a task. [Memory](./3-add-memory) and a [human-in-the-loop](./4-human-in-the-loop) enable checkpoints in the graph state and control future responses.
4+
In a typical chatbot workflow, the user interacts with the bot one or more times to accomplish a task. [Memory](/oss/3-add-memory) and a [human-in-the-loop](/oss/4-human-in-the-loop) enable checkpoints in the graph state and control future responses.
55

66
What if you want a user to be able to start from a previous response and explore a different outcome? Or what if you want users to be able to rewind your chatbot's work to fix mistakes or try a different strategy, something that is common in applications like autonomous software engineers?
77

88
You can create these types of experiences using LangGraph's built-in **time travel** functionality.
99

1010
<Note>
11-
This tutorial builds on [Customize state](./5-customize-state).
11+
This tutorial builds on [Customize state](/oss/5-customize-state).
1212
</Note>
1313

1414
## 1. Rewind your graph
@@ -602,6 +602,6 @@ The graph resumed execution from the `tools` node. You can tell this is the case
602602
603603
Take your LangGraph journey further by exploring deployment and advanced features:
604604
605-
* **[LangGraph Server quickstart](../../tutorials/langgraph-platform/local-server)**: Launch a LangGraph server locally and interact with it using the REST API and LangGraph Studio Web UI.
605+
* **[LangGraph Server quickstart](../../langgraph-platform/local-server)**: Launch a LangGraph server locally and interact with it using the REST API and LangGraph Studio Web UI.
606606
* **[LangGraph Platform quickstart](../../cloud/quick_start)**: Deploy your LangGraph app using LangGraph Platform.
607-
* **[LangGraph Platform concepts](../../concepts/langgraph_platform)**: Understand the foundational concepts of the LangGraph Platform.
607+
* **[LangGraph Platform concepts](../../langgraph-platform/concepts)**: Understand the foundational concepts of the LangGraph Platform.

src/oss/INVALID_CONCURRENT_GRAPH_UPDATE.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: INVALID_CONCURRENT_GRAPH_UPDATE
44
A LangGraph [`StateGraph`](https://langchain-ai.github.io/langgraph/reference/graphs/#langgraph.graph.state.StateGraph) received concurrent updates to its state from multiple nodes to a state property that doesn't
55
support it.
66

7-
One way this can occur is if you are using a [fanout](https://langchain-ai.github.io/langgraph/how-tos/map-reduce/)
7+
One way this can occur is if you are using a [fanout](/oss/graph-api#map-reduce-and-the-send-api)
88
or other parallel execution in your graph and you have defined a graph like this:
99

1010
:::python

src/oss/MULTIPLE_SUBGRAPHS.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ The following may help resolve this error:
1717
* If you don't need to interrupt/resume from a subgraph, pass `checkpointer: false` when compiling it like this: `.compile({ checkpointer: false })`
1818
:::
1919

20-
* Don't imperatively call graphs multiple times in the same node, and instead use the [`Send`](https://langchain-ai.github.io/langgraph/concepts/low_level/#send) API.
20+
* Don't imperatively call graphs multiple times in the same node, and instead use the [`Send`](/oss/low-level#send) API.

0 commit comments

Comments
 (0)