2026 AI Agent实战教程:使用LangGraph从零构建智能代理

AI教程 2026-05-12

2026年,AI Agent(人工智能代理)已成为开发者最热门的技术方向之一。本文将手把手教你使用LangGraph框架在Python中构建一个功能完整的AI Agent,无需从零开始。


什么是AI Agent?


AI Agent是一种能够自主感知环境、制定计划并执行动作的智能程序。与传统的LLM调用不同,Agent具备工具使用、记忆管理和多步推理能力。2026年,从Google到OpenAI,各大厂商都在全力推进Agentic AI的发展。


环境准备


首先,安装所需的依赖库:


pip install langgraph langchain langchain-openai

需要Python 3.10以上版本,以及一个可用的OpenAI API密钥(或其他兼容的LLM提供商)。


第一步:定义工具


Agent的核心能力来自于它可以调用的工具。以下是一个简单的搜索工具和计算器工具的例子:


from langchain.tools import tool

@tool
def search_web(query: str) -> str:
    """搜索网络获取最新信息"""
    # 这里集成你选择的搜索引擎API
    return f"搜索结果: {query}的相关信息"

@tool
def calculator(expression: str) -> str:
    """执行数学计算"""
    try:
        return str(eval(expression))
    except Exception as e:
        return f"计算错误: {e}"

tools = [search_web, calculator]

第二步:构建Agent图


LangGraph使用有向图(Graph)来定义Agent的执行流程。每个节点代表一个步骤,边代表状态流转:


from langgraph.graph import StateGraph, END
from typing import TypedDict, List
from langchain_openai import ChatOpenAI

class AgentState(TypedDict):
    messages: List
    next_step: str

llm = ChatOpenAI(model="gpt-4o", temperature=0)

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

def should_continue(state: AgentState):
    last_msg = state["messages"][-1]
    if "FINAL_ANSWER" in last_msg.content:
        return END
    return "tools"

graph = StateGraph(AgentState)
graph.add_node("agent", call_model)
graph.set_entry_point("agent")

第三步:添加工具执行节点


Agent决定调用哪个工具后,需要由工具节点实际执行:


def execute_tools(state: AgentState):
    last_msg = state["messages"][-1]
    tool_calls = last_msg.additional_kwargs.get("tool_calls", [])
    results = []
    for tc in tool_calls:
        func_name = tc["function"]["name"]
        args = json.loads(tc["function"]["arguments"])
        for t in tools:
            if t.name == func_name:
                result = t.run(args)
                results.append(result)
    return {"messages": [{"role": "tool", "content": str(results)}]}

graph.add_node("tools", execute_tools)
graph.add_conditional_edges("agent", should_continue, {"tools": "tools", END: END})
graph.add_edge("tools", "agent")

app = graph.compile()

第四步:运行Agent


现在可以运行你的AI Agent了:


result = app.invoke({
    "messages": [{"role": "user", "content": "计算 256 * 32 的结果,并告诉我今天AI行业的最新动态"}]
})
print(result["messages"][-1].content)

进阶技巧


1. 添加记忆功能


使用LangGraph内置的持久化支持,可以让Agent记住历史对话:


from langgraph.checkpoint import MemorySaver

memory = MemorySaver()
app = graph.compile(checkpointer=memory)
# 现在Agent会记住之前的对话上下文

2. 人机协作(Human-in-the-Loop)


在关键决策点加入人工审核,确保Agent的行为安全可控:


graph.add_node("human_review", human_review_function)
graph.add_edge("tools", "human_review")
graph.add_edge("human_review", "agent")

总结


2026年是AI Agent爆发的一年。从Google的Agent Bake-Off到NVIDIA的AI-Q Agent平台,从Spring AI到LangGraph,构建AI Agent的框架和工具已经非常成熟。本文介绍的LangGraph方案因其灵活性和对复杂工作流的支持,已成为目前最受欢迎的Agent开发框架之一。


通过本文的四个简单步骤,你可以在15分钟内搭建一个具备工具调用、多步推理能力的AI Agent。下一步,你可以尝试接入自定义API、数据库查询、文件处理等更丰富的工具集,让你的Agent处理更复杂的实际业务场景。


参考资源:LangGraph官方文档、LangChain官方教程、Google Agent Bake-Off 2026

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

相关文章