LangGraph入门教程:用Python构建你的第一个AI Agent

AI教程 2026-06-11

2026年被称为"AI Agent元年",越来越多的开发者开始学习如何构建自主AI代理。LangGraph是LangChain团队推出的一个强大的Python框架,专门用于构建有状态、多步骤的AI Agent工作流。本文将带你从零开始创建一个简单的智能助手Agent。

环境准备

首先安装所需依赖:

pip install langgraph langchain-openai python-dotenv

定义工具函数

Agent需要工具来执行任务。我们定义一个简单的天气查询工具:

from langchain_core.tools import tool

@tool
def get_weather(location: str) -> str:
    """根据城市名查询天气信息"""
    weather_data = {
        "北京": "晴,25°C",
        "上海": "多云,28°C",
        "深圳": "雷阵雨,30°C",
    }
    return weather_data.get(location, f"无法获取{location}的天气信息")

tools = [get_weather]

构建Agent图

LangGraph的核心是状态图(StateGraph)。我们创建一个简单的对话Agent:

from typing import TypedDict, Sequence
from langgraph.graph import StateGraph, END
from langgraph.prebuilt import ToolExecutor
from langchain_openai import ChatOpenAI

class AgentState(TypedDict):
    messages: Sequence

model = ChatOpenAI(model="gpt-4o", temperature=0)
tool_executor = ToolExecutor(tools)

workflow = StateGraph(AgentState)

def call_model(state):
    messages = state["messages"]
    response = model.invoke(messages)
    return {"messages": [response]}

def call_tool(state):
    messages = state["messages"]
    last_message = messages[-1]
    tool_calls = last_message.additional_kwargs.get("tool_calls", [])
    results = []
    for tc in tool_calls:
        result = tool_executor.invoke(tc)
        results.append(result)
    return {"messages": results}

workflow.add_node("agent", call_model)
workflow.add_node("action", call_tool)
workflow.set_entry_point("agent")
workflow.add_conditional_edges("agent", ...)
workflow.add_edge("action", "agent")

app = workflow.compile()

运行Agent

编译完成后,用以下代码执行Agent:

result = app.invoke({
    "messages": [{"role": "user", "content": "北京的天气怎么样?"}]
})
print(result["messages"][-1].content)

核心概念解析

LangGraph的关键概念包括:StateGraph(状态图定义)用于描述Agent的工作流结构;Node(处理节点)代表每个执行步骤;Edge(连接边)定义执行顺序;Conditional Edge(条件跳转)根据当前状态决定下一步走向。Agent通过"思考→执行→观察→再思考"的循环来完成任务,每次循环都会更新状态,直到满足终止条件。

掌握了这些基础后,你可以进一步学习添加记忆机制(MemorySaver)、多Agent协作(Send API)、Human-in-the-loop(中断与恢复)等进阶功能。LangGraph的最新版本还支持流式输出和分布式执行,适合构建复杂的生产级AI应用。

参考资源:LangGraph官方文档 | LangChain GitHub | Towards Data Science教程

©️版权声明:若无特殊声明,本站所有文章版权均归AI工具集原创和所有,未经许可,任何个人、媒体、网站、团体不得转载、抄袭或以其他方式复制发表本站内容,或在非我站所属的服务器上建立镜像。否则,我站将依法保留追究相关法律责任的权利。

相关文章