实战!用LangGraph搭建AI Agent,让它自主完成任务

实战!用LangGraph搭建AI Agent,让它自主完成任务 一、Agent 到底是什么 一句话定义Agent LLM大脑Tools手脚Loop反思循环普通 LLM 是一问一答用户 → LLM → 回答Agent 是多轮循环用户 → LLM 思考 → 调用工具 → 观察结果 → LLM 反思 → 继续调用 → … → 最终回答关键在循环这个字。LLM 一次没搞定没关系看下工具返回什么再来一次。这就是ReActReasoning Acting模式Agent 的核心范式。二、为什么选 LangGraph市面上搭 Agent 的框架不少框架特点适用LangChain老牌链式调用入门友好LangGraph图式结构可控性强生产环境首选AutoGen多 Agent 对话协作场景CrewAI角色扮演式团队模拟LlamaIndex数据侧强RAG 场景 为什么选 LangGraph它是 LangChain 团队推出的新一代 Agent 框架用状态图来描述工作流天然支持复杂逻辑、循环、条件分支、人机协作。生产级项目基本都在往这个上迁。三、我们要搭什么做一个真实能用的场景 ——技术资讯智能助手。用户输入一个技术话题Agent 会自动1联网搜索最新资讯用 Tavily 搜索 API 抓取最新内容2提取关键信息从搜索结果中筛选真正相关的内容3判断信息是否足够不够就继续搜索够了就总结4生成结构化报告输出带引用来源的最终报告整个过程不需要人干预Agent 自己规划、自己决策。四、环境准备pip install langgraph langchain-openai langchain-community tavily-python需要两个 API KeyOpenAI或替换成 DeepSeek/Qwen 等Tavily 搜索tavily.com 免费额度够用export OPENAI_API_KEYsk-xxx export TAVILY_API_KEYtvly-xxx五、代码实战三步搭建第一步定义状态StateLangGraph 用 State 记录整个流程中的信息。from typing import TypedDict, List, Annotated from langgraph.graph.message import add_messages class AgentState(TypedDict): topic: str # 用户输入的话题 search_results: List[dict] # 搜索到的内容 iteration: int # 已搜索轮数 is_enough: bool # 信息是否足够 final_report: str # 最终报告 messages: Annotated[list, add_messages] # 对话历史 关键点Annotated[list, add_messages] 表示 messages 字段会自动累加不会覆盖 —— 这是 LangGraph 的独门 trick。第二步定义节点Node每个节点就是一个函数输入 State输出更新后的 State。from langchain_openai import ChatOpenAI from langchain_community.tools.tavily_search import TavilySearchResults llm ChatOpenAI(modelgpt-4o-mini, temperature0) search_tool TavilySearchResults(max_results5) # 节点1搜索 def search_node(state: AgentState) - dict: print(f 第 {state[iteration]1} 轮搜索: {state[topic]}) results search_tool.invoke({query: state[topic]}) return { search_results: state[search_results] results, iteration: state[iteration] 1 } # 节点2判断信息是否足够 def evaluate_node(state: AgentState) - dict: prompt f基于以下搜索结果判断关于{state[topic]}的信息是否足够写一份深度报告。 搜索结果: {state[search_results][-5:]} 只回答 YES 或 NO。 response llm.invoke(prompt) is_enough YES in response.content.upper() print(f 信息是否足够: {is_enough}) return {is_enough: is_enough} # 节点3生成报告 def report_node(state: AgentState) - dict: prompt f基于以下资料为主题{state[topic]}写一份结构化报告。 要求: 1. 包含 3-5 个核心要点 2. 每个要点后标注来源URL 3. 结尾给出总体判断 资料: {state[search_results]} response llm.invoke(prompt) print( 报告已生成) return {final_report: response.content}第三步构建图Graph把节点连接起来定义流转逻辑。from langgraph.graph import StateGraph, END # 条件边根据状态决定下一步 def should_continue(state: AgentState) - str: if state[iteration] 3: # 最多搜3轮 return report if state[is_enough]: return report return search # 构建图 workflow StateGraph(AgentState) workflow.add_node(search, search_node) workflow.add_node(evaluate, evaluate_node) workflow.add_node(report, report_node) workflow.set_entry_point(search) workflow.add_edge(search, evaluate) workflow.add_conditional_edges( evaluate, should_continue, {search: search, report: report} ) workflow.add_edge(report, END) app workflow.compile()✅ 到这里Agent 就搭好了。整个流程可视化后是这样的START → search → evaluate → [is_enough?] → search / report → END第四步跑起来initial_state { topic: 2026年 AI Agent 最新进展, search_results: [], iteration: 0, is_enough: False, final_report: , messages: [] } result app.invoke(initial_state) print(\n *60) print(result[final_report])输出示例 第 1 轮搜索: 2026年 AI Agent 最新进展 信息是否足够: False 第 2 轮搜索: 2026年 AI Agent 最新进展 信息是否足够: True 报告已生成六、进阶让 Agent 更聪明技巧1动态改写搜索关键词第一次搜AI Agent太宽泛第二次可以缩窄到多Agent协作框架。def refine_query_node(state: AgentState) - dict: prompt f已经搜过 {state[iteration]} 次主题是 {state[topic]}。 基于已有结果给出一个更精准的搜索关键词扩展查询维度。 response llm.invoke(prompt) return {topic: response.content}技巧2加入人类反馈关键节点可以让人工审核 ——Human-in-the-Loop。from langgraph.checkpoint.memory import MemorySaver checkpointer MemorySaver() app workflow.compile( checkpointercheckpointer, interrupt_before[report] # 生成报告前暂停 )在关键节点暂停人工确认后再继续 —— 这是生产级 Agent 的标配。技巧3Tool 调用错误重试def search_node_with_retry(state, max_retry3): for attempt in range(max_retry): try: results search_tool.invoke({query: state[topic]}) return {search_results: state[search_results] results} except Exception as e: print(f⚠️ 第 {attempt1} 次失败: {e}) return {search_results: state[search_results]}七、真实案例Agent 帮我干过的活 案例1每周技术周报自动生成每周一早 8 点Agent 自动搜索过去 7 天 AI 领域大事件去重、分类、总结生成一份 markdown 报告发到我邮箱。节省了大约 2 小时/周。 案例2代码库自动 ReviewAgent 每天读取 GitHub 上的 PR跑静态检查、跑测试、给出改进意见评论。覆盖了 80% 的初级 review 工作。 案例3客户咨询自动分诊Agent 读取工单描述判断是产品问题还是技术问题自动路由到不同处理流程。响应时间从 4 小时降到 10 分钟。八、避坑指南⚠️ 坑1无限循环条件判断写错了Agent 一直搜索停不下来。必须加最大迭代次数限制。⚠️ 坑2Token 爆炸搜索结果全塞给 LLM几轮后 context window 就满了。要做摘要压缩只保留关键信息。⚠️ 坑3工具调用失败没兜底API 挂了 Agent 就崩了。每个工具都要加 try-except 和重试。⚠️ 坑4不做审计追踪Agent 决策一堆步骤出错了根本不知道哪一步。必须记录每个节点的输入输出。九、成本估算跑一次典型的资讯搜索 报告生成任务项目用量成本Tavily 搜索3 次免费额度内GPT-4o-mini 调用约 8 次¥0.05Token 消耗约 15K tokens-总耗时-约 30 秒一份深度报告 5 分钱。换算成人工——按 30 分钟 ¥50 的时薪算一次省¥25。十、下一步该学什么掌握基础 Agent 后进阶方向 多 Agent 协作研究员 编辑 审核三个 Agent 分工写文章。学习 AutoGen 或 CrewAI。 长期记忆给 Agent 加向量数据库做长期记忆让它记得过往任务。 自主浏览器用 Playwright 让 Agent 真正操作浏览器填表、点击、下单。 生产部署用 LangGraph Cloud 或自建 Kubernetes跑 24/7 Agent 服务。◆ ◆ ◆总结Agent 的本质不是模型是流程编排。LLM 只是其中一颗大脑真正让它能干活的是你怎么用状态图把它组织起来。2026 年做技术不会写 Agent 就像 2020 年不会用 Docker。门槛不高红利很大。今天就把上面代码跑一遍。看到 Agent 第一次自己想通问题的那一刻——你会理解为什么大家说这是新一代软件的开端。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】