LangChain 1.0 Agent开发:从创建到部署的完整指南
玄同 765大语言模型 (LLM) 开发工程师 | 中国传媒大学 · 数字媒体技术智能交互与游戏设计CSDN · 个人主页 | GitHub · Follow关于作者深耕领域大语言模型开发 / RAG 知识库 / AI Agent 落地 / 模型微调技术栈Python | RAG (LangChain / Dify Milvus) | FastAPI Docker工程能力专注模型工程化部署、知识库构建与优化擅长全流程解决方案「让 AI 交互更智能让技术落地更高效」欢迎技术探讨与项目合作解锁大模型与智能交互的无限可能一、Agent 概述1.1 Agent 核心概念LangChain 1.0 Agents系统实现从碎片化到标准化升级以create_agent为核心接口基于LangGraph构建统一Agent抽象10行代码即可创建基础Agent封装模型调用→工具选择→执行→结束闭环流程。Agent是LangChain 1.0的核心创新之一使智能体开发变得更加简单和标准化。核心组件核心APIcreate_agent() - 简化Agent创建执行引擎LangGraph Runtime - 提供状态管理和持久化中间件Middleware - 如HITL人工干预、压缩、路由状态管理AgentState - 统一的状态结构1.2 Agent 执行流程是否用户输入create_agent模型分析需要工具?选择工具执行工具获取结果模型总结返回答案1.3 Agent 类型对比Agent类型特点适用场景实现方式优势基础Agent简单的工具调用单步骤任务create_agent()开发简单部署快规划Agent多步骤规划复杂任务create_planning_agent()任务分解执行有序协作Agent多Agent协作复杂项目LangGraph多节点分工明确效率高检索增强Agent结合RAG知识密集型任务create_retrieval_agent()知识丰富准确性高工具使用Agent复杂工具调用工具密集型任务create_tool_agent()工具使用能力强1.4 Agent 系统架构用户层Agent接口层执行引擎层工具层记忆层模型层外部系统二、Agent 创建与配置2.1 基本创建方法使用create_agentAPI 创建智能体fromlangchain.agentsimportcreate_agentfromlangchain_openaiimportChatOpenAIfromlangchain_core.toolsimporttool# 1. 定义工具tooldefmultiply(a:int,b:int)-int:Multiplies a and b.returna*btooldefdivide(a:int,b:int)-float:Divides a by b.ifb0:raiseValueError(除数不能为零)returna/b# 2. 初始化模型modelChatOpenAI(modelgpt-4o-mini)# 3. 创建智能体agentcreate_agent(model,[multiply,divide])# 4. 执行任务resultagent.invoke({messages:[{role:user,content:345乘以678等于多少}]})print(result[messages][-1][content])2.2 高级配置选项create_agent支持多种高级配置选项fromlangchain.agentsimportcreate_agentfromlangchain.agentsimportAgentStatefromlangchain_core.runnablesimportRunnablePassthrough# 高级配置示例agentcreate_agent(model,tools,# 自定义状态处理state_modifierRunnablePassthrough.assign(extra_infolambdax:{user_id:123}),# 自定义输出解析output_parserNone,# 中间件middleware[],# 最大步数max_steps10,# verbose模式verboseTrue)三、Agent 状态管理3.1 AgentState 结构AgentState 是智能体的核心状态结构包含以下字段字段类型描述messagesList[BaseMessage]对话历史tool_callsList[ToolCall]工具调用记录tool_resultsList[ToolResult]工具执行结果is_finishedbool任务是否完成outputstr最终输出3.2 状态持久化LangGraph 提供了状态持久化功能支持任务中断后恢复fromlanggraph.checkpoint.memoryimportMemorySaverfromlangchain.agentsimportcreate_agent# 1. 创建检查点存储checkpoint_saverMemorySaver()# 2. 创建智能体agentcreate_agent(model,tools,checkpoint_savercheckpoint_saver,namemy_agent)# 3. 执行任务带会话IDresultagent.invoke({messages:[{role:user,content:345乘以678等于多少}]},config{configurable:{thread_id:thread_1}})# 4. 继续执行使用相同会话IDresultagent.invoke({messages:[{role:user,content:结果除以2是多少}]},config{configurable:{thread_id:thread_1}})四、中间件与钩子4.1 内置中间件LangChain 提供了多种内置中间件用于增强智能体的功能中间件功能用途HumanInTheLoop人工干预关键决策时暂停等待人工确认RetryMiddleware自动重试工具调用失败时自动重试TimeoutMiddleware超时控制限制工具执行时间RateLimitMiddleware速率限制控制API调用频率4.2 自定义中间件fromlangchain_core.runnablesimportRunnablefromlangchain_core.agentsimportAgentStateclassLoggingMiddleware(Runnable):def__init__(self,next_runnable):self.next_runnablenext_runnabledefinvoke(self,input,configNone):# 执行前日志print(f执行前:{input})# 执行下一个组件resultself.next_runnable.invoke(input,config)# 执行后日志print(f执行后:{result})returnresult# 使用中间件agentcreate_agent(model,tools,middleware[LoggingMiddleware])五、实战案例5.1 构建一个客服机器人fromlangchain.agentsimportcreate_agentfromlangchain_openaiimportChatOpenAIfromlangchain_core.toolsimporttoolimportrequests# 1. 定义工具tooldefget_product_info(product_id:str)-str:获取产品信息# 模拟API调用products{p1:产品名称智能手表\n价格1999元\n库存100件,p2:产品名称无线耳机\n价格999元\n库存200件,p3:产品名称智能音箱\n价格599元\n库存50件}returnproducts.get(product_id,产品不存在)tooldefcreate_order(product_id:str,quantity:int)-str:创建订单# 模拟创建订单returnf订单创建成功产品ID:{product_id}, 数量:{quantity}# 2. 初始化模型modelChatOpenAI(modelgpt-4o-mini)# 3. 创建智能体agentcreate_agent(model,[get_product_info,create_order])# 4. 测试对话conversations[我想了解产品p1的信息,帮我创建一个订单购买2件产品p1,产品p3的价格是多少]formsginconversations:resultagent.invoke({messages:[{role:user,content:msg}]})print(f用户:{msg})print(f助手:{result[messages][-1][content]})print(*50)5.2 构建一个数据分析助手fromlangchain.agentsimportcreate_agentfromlangchain_openaiimportChatOpenAIfromlangchain.toolsimportPythonREPLToolimportpandasaspdimportnumpyasnp# 1. 初始化工具python_replPythonREPLTool()# 2. 初始化模型modelChatOpenAI(modelgpt-4o-mini)# 3. 创建智能体agentcreate_agent(model,[python_repl])# 4. 测试数据分析任务task生成100个正态分布的随机数计算均值和标准差然后绘制直方图resultagent.invoke({messages:[{role:user,content:task}]})print(result[messages][-1][content])六、Agent 性能优化6.1 优化策略优化维度策略实现方法工具选择减少工具数量只包含必要工具提示词优化系统提示明确任务目标和约束模型选择合适的模型复杂任务使用更强大的模型执行步骤限制步数设置 max_steps错误处理增加重试机制使用 RetryMiddleware6.2 监控与评估使用 LangSmith 监控 Agent 执行情况importos# 设置 LangSmith 环境变量os.environ[LANGSMITH_TRACING]trueos.environ[LANGSMITH_PROJECT]my-agent-projectos.environ[LANGSMITH_API_KEY]your-api-key# 创建并执行 Agentagentcreate_agent(model,tools)resultagent.invoke({messages:[{role:user,content:测试任务}]})七、部署与集成7.1 使用 LangServe 部署LangServe 可以将 Agent 部署为 REST API# app.pyfromfastapiimportFastAPIfromlangchain.serveimportadd_routesfromlangchain.agentsimportcreate_agentfromlangchain_openaiimportChatOpenAIfromlangchain_core.toolsimporttool# 1. 创建工具tooldefmultiply(a:int,b:int)-int:Multiplies a and b.returna*b# 2. 创建 AgentmodelChatOpenAI(modelgpt-4o-mini)agentcreate_agent(model,[multiply])# 3. 创建 FastAPI 应用appFastAPI()# 4. 添加路由add_routes(app,agent,path/agent)if__name____main__:importuvicorn uvicorn.run(app,host0.0.0.0,port8000)7.2 客户端调用importrequests# 调用部署的 Agentresponserequests.post(http://localhost:8000/agent/invoke,json{input:{messages:[{role:user,content:345乘以678等于多少}]}})print(response.json())八、应用场景分析8.1 适合使用 Agent 的场景复杂任务需要多步骤完成的任务工具依赖需要调用外部工具的任务决策需求需要根据情况做出决策的任务知识密集需要检索和整合知识的任务自动化流程需要自动执行一系列操作的任务8.2 Agent 系统的局限性计算成本多次模型调用增加成本执行时间多步骤执行可能较慢可靠性工具调用失败可能影响整体任务复杂性调试和监控较为复杂九、总结LangChain 1.0 的 Agent 系统通过 create_agent API 和 LangGraph 运行时为开发者提供了构建智能体应用的强大工具。通过本文的介绍开发者可以掌握 Agent 的创建、配置、状态管理和部署等核心功能实现复杂任务的自动执行与决策。在后续的博客中我们将介绍如何通过 LangGraph 实现更复杂的工作流以及如何构建完整的智能体应用系统。

相关新闻

简单理解:CAN

简单理解:CAN

1.标准帧仲裁段由11位ID和1位RTR位组成,RTR用来区分数据帧(显性电平)和遥控帧2.扩展帧仲裁段由29位ID,1位RTR位,1位SRR位和1位IDE位,RTR用来区分数据帧和遥控帧SRR用来代替标准帧中的RTR位,由于SRR是隐形电平,可以区分11位ID相同的标准帧和扩展帧IDE用来区分标准帧和扩展帧,显性…

2026/7/3 14:10:03 阅读更多 →
Gemini驱动的新Siri将在谷歌服务器运行:隐私担忧加剧

Gemini驱动的新Siri将在谷歌服务器运行:隐私担忧加剧

自苹果确认谷歌Gemini将为新Siri功能提供支持以来,外界对库克所称的两家公司"合作"在隐私方面的考量一直存疑。虽然许多人认为谷歌将获得用户数据访问权,但苹果以其惯有的隐私至上论调模糊地反驳了这一观点。苹果在合作方面的原始声明如下&…

2026/7/3 14:10:07 阅读更多 →
35 岁才开始学 Python+AI?我见过的几个“半路出家”案例,哪些是真的能成

35 岁才开始学 Python+AI?我见过的几个“半路出家”案例,哪些是真的能成

摘要: “35 岁危机”是悬在每个打工人头上的达摩克利斯之剑。在焦虑的驱使下,无数大龄职场人涌入 Python 和 AI 的培训班,试图抓住这根救命稻草。然而,现实是残酷的:和 22 岁的计算机专业毕业生拼手速、拼加班&#xf…

2026/7/3 14:10:09 阅读更多 →

最新新闻

电机控制中的高频注入技术实现与优化

电机控制中的高频注入技术实现与优化

1. 高频注入技术概述高频注入技术是电机控制领域实现无传感器低速/零速运行的核心方法之一。我在实际电机控制项目中多次应用这项技术,特别是在需要精确位置控制的伺服系统中。高频注入的基本原理是通过向电机注入特定高频信号,利用电机转子的凸极效应产…

2026/7/4 9:01:27 阅读更多 →
HPL1Engine场景管理指南:高效加载与渲染3D世界的10个技巧

HPL1Engine场景管理指南:高效加载与渲染3D世界的10个技巧

HPL1Engine场景管理指南:高效加载与渲染3D世界的10个技巧 【免费下载链接】HPL1Engine A real time 3D engine. 项目地址: https://gitcode.com/gh_mirrors/hp/HPL1Engine HPL1Engine是一款功能强大的实时3D引擎,为游戏开发者提供了创建沉浸式3D世…

2026/7/4 8:57:26 阅读更多 →
Elm-platform安装教程:Windows、macOS、Linux三大平台详细步骤

Elm-platform安装教程:Windows、macOS、Linux三大平台详细步骤

Elm-platform安装教程:Windows、macOS、Linux三大平台详细步骤 【免费下载链接】elm-platform Bundle of all core development tools for Elm 项目地址: https://gitcode.com/gh_mirrors/el/elm-platform 想要开始 Elm 编程之旅吗?Elm-platform …

2026/7/4 8:55:25 阅读更多 →
量子增强侧信道与迭代攻击:后量子密码(如McEliece)的混合威胁与防御实践

量子增强侧信道与迭代攻击:后量子密码(如McEliece)的混合威胁与防御实践

1. 项目概述:当量子计算遇上经典密码 最近在密码学圈子里,一个听起来有点“缝合怪”但又极具前瞻性的概念被反复提及——“量子相关密钥攻击迭代EM密码”。乍一看,这标题融合了“量子”、“密钥攻击”、“迭代”和“EM密码”几个硬核词汇&…

2026/7/4 8:55:25 阅读更多 →
Linux/WSL终端美化指南:gh_mirrors/do/dotfiles-archive的zsh与Hyper配置技巧

Linux/WSL终端美化指南:gh_mirrors/do/dotfiles-archive的zsh与Hyper配置技巧

Linux/WSL终端美化指南:gh_mirrors/do/dotfiles-archive的zsh与Hyper配置技巧 【免费下载链接】dotfiles-archive Dotfiles for all :D 项目地址: https://gitcode.com/gh_mirrors/do/dotfiles-archive gh_mirrors/do/dotfiles-archive项目提供了一套完整的终…

2026/7/4 8:55:25 阅读更多 →
高速PCB阻抗设计3大误区:线宽、铜厚与阻焊对±10%公差的实际影响

高速PCB阻抗设计3大误区:线宽、铜厚与阻焊对±10%公差的实际影响

高速PCB阻抗设计实战:破解线宽、铜厚与阻焊的10%公差迷思1. 阻抗设计的基础认知误区在高速PCB设计中,阻抗控制绝非简单的理论计算问题。许多工程师习惯将IPC标准中的公式直接套用,却忽略了实际制造环节中至少12个关键变量对最终阻抗值的影响。…

2026/7/4 8:55:25 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻