基于 LangGraph 的 Python 记忆机器人:支持搜索工具与人工干预
前言
本文介绍如何使用 Python 和 LangGraph 框架搭建一个具备记忆功能的聊天机器人。该机器人支持调用 Tavily 搜索引擎获取实时信息,并集成了人工干预机制,在特定场景下可请求专家协助。
前置准备
环境配置
确保安装 Python 3.9+ 版本。
pip install langgraph langchain-community langchain-openai tavily-python python-dotenv langsmith
python-dotenv 用于读取根目录 .env 中的配置。
工具介绍
Tavily
Tavily 是为 AI 和大模型设计的搜索引擎,提供实时联网能力。注册后可在后台获取 API Key。
LangSmith
LangSmith 是 LangChain 团队开发的观测平台,用于调试、测试和监控 LLM 应用。开启链路追踪功能有助于可视化跟踪执行步骤。
密钥配置
在根目录创建 .env 文件,填入以下密钥:
# 大模型 API Key (示例使用智谱)
ZHIPUAI_API_KEY=你的 apikey
# Tavily 智能体搜索工具
TAVILY_API_KEY=Tavily APIKEY
# LangSmith
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT=https://api.smith.langchain.com
LANGCHAIN_API_KEY=LangSmith 的 APIKEY
LANGSMITH_PROJECT="langgraph-agent"
核心代码实现
1. 导入依赖与环境加载
from typing import Annotated
from typing_extensions import TypedDict
from langgraph.graph import StateGraph, START, END
from langgraph.graph.message import add_messages
import os
from dotenv import load_dotenv
from pathlib import Path
from langgraph.types Command, interrupt
langchain_core.tools tool
langchain_tavily TavilySearch
langchain.chat_models init_chat_model
langchain_core.messages SystemMessage
langgraph.prebuilt ToolNode, tools_condition
langgraph.checkpoint.memory InMemorySaver
env_path = Path(__file__).parent.parent /
load_dotenv(dotenv_path=env_path)


