跳到内容

快速入门:启动本地 LangGraph 服务器

本指南旨在帮助您快速在本地启动并运行 LangGraph 应用。

安装 LangGraph CLI

$ npx @langchain/langgraph-cli@latest

# Or install globally, will be available as `langgraphjs`
$ npm install -g @langchain/langgraph-cli

🌱 创建 LangGraph 应用

创建一个新的应用并按照说明操作,选择 ReAct Agent 作为模板。此模板是一个简单的智能体,可以灵活地扩展到多种工具。

$ npm create langgraph

安装依赖

在新的 LangGraph 应用的根目录下,以编辑模式安装依赖项,以便服务器使用您的本地更改

$ yarn

创建 .env 文件

您将在新的 LangGraph 应用的根目录下找到一个 .env.example 文件。在新的 LangGraph 应用的根目录下创建一个 .env 文件,将 .env.example 文件的内容复制进去,并填写必要的 API 密钥

LANGSMITH_API_KEY=lsv2...
TAVILY_API_KEY=tvly-...
ANTHROPIC_API_KEY=sk-
OPENAI_API_KEY=sk-...
获取 API 密钥

🚀 启动 LangGraph 服务器

$ npx @langchain/langgraph-cli@latest dev

这将在本地启动 LangGraph API 服务器。如果成功运行,您应该会看到类似以下内容:

内存模式

`langgraphjs dev` 命令以内存模式启动 LangGraph 服务器。此模式适用于开发和测试目的。对于生产用途,您应该部署 LangGraph Cloud 并访问持久存储后端。

如果您想使用持久存储后端测试您的应用,可以使用 `langgraphjs up` 命令代替 `langgraphjs dev`。您需要在机器上安装 Docker 才能使用此命令。

LangGraph Studio Web UI

LangGraph Studio Web 是一个专门的 UI,您可以连接到 LangGraph API 服务器,以在本地启用应用的可视化、交互和调试。通过访问 `langgraph dev` 命令输出中提供的 URL,在 LangGraph Studio Web UI 中测试您的图。

连接到具有自定义主机/端口的服务器

如果您正在使用自定义主机/端口运行 LangGraph API 服务器,可以通过更改 `baseUrl` URL 参数将 Studio Web UI 指向它。例如,如果您的服务器运行在端口 8000 上,您可以将上面的 URL 更改为以下内容

https://smith.langchain.com/studio/baseUrl=http://localhost:8000

Safari 兼容性

当前,LangGraph Studio Web 在本地运行服务器时不支持 Safari。

测试 API

安装 LangGraph Python SDK

$ pip install langgraph-sdk

向助手发送消息 (无线程运行)

from langgraph_sdk import get_client

client = get_client(url="http://localhost:2024")

async for chunk in client.runs.stream(
    None,  # Threadless run
    "agent", # Name of assistant. Defined in langgraph.json.
    input={
        "messages": [{
            "role": "human",
            "content": "What is LangGraph?",
        }],
    },
    stream_mode="updates",
):
    print(f"Receiving new event of type: {chunk.event}...")
    print(chunk.data)
    print("\n\n")

安装 LangGraph Python SDK

$ pip install langgraph-sdk

向助手发送消息 (无线程运行)

from langgraph_sdk import get_sync_client

client = get_sync_client(url="http://localhost:2024")

for chunk in client.runs.stream(
    None,  # Threadless run
    "agent", # Name of assistant. Defined in langgraph.json.
    input={
        "messages": [{
            "role": "human",
            "content": "What is LangGraph?",
        }],
    },
    stream_mode="updates",
):
    print(f"Receiving new event of type: {chunk.event}...")
    print(chunk.data)
    print("\n\n")

安装 LangGraph JS SDK

$ yarn add @langchain/langgraph-sdk

向助手发送消息 (无线程运行)

const { Client } = await import("@langchain/langgraph-sdk");

// only set the apiUrl if you changed the default port when calling langgraph dev
const client = new Client({ apiUrl: "http://localhost:2024"});

const streamResponse = client.runs.stream(
    null, // Threadless run
    "agent", // Assistant ID
    {
        input: {
            "messages": [
                { "role": "user", "content": "What is LangGraph?"}
            ]
        },
        streamMode: "messages",
    }
);

for await (const chunk of streamResponse) {
    console.log(`Receiving new event of type: ${chunk.event}...`);
    console.log(JSON.stringify(chunk.data));
    console.log("\n\n");
}
curl -s --request POST \
    --url "http://localhost:2024/runs/stream" \
    --header 'Content-Type: application/json' \
    --data "{
        \"assistant_id\": \"agent\",
        \"input\": {
            \"messages\": [
                {
                    \"role\": \"human\",
                    \"content\": \"What is LangGraph?\"
                }
            ]
        },
        \"stream_mode\": \"updates\"
    }" 

认证

如果您连接到远程服务器,您需要提供 LangSmith API 密钥进行授权。请参阅客户端的 API 参考以获取更多信息。

下一步

现在您已经在本地运行了 LangGraph 应用,通过探索部署和高级功能来进一步深入学习

🌐 部署到 LangGraph Cloud

📚 了解更多关于 LangGraph 平台

利用这些资源扩展您的知识

🛠️ 开发者参考

查阅详细的开发和 API 使用文档