【08】LangChain 入门:用 @tool 装饰器 5 分钟搭 Agent
LangChain 入门用 tool 装饰器 5 分钟搭 Agent基于 Lion-1209/AgentStudyhttps://github.com/Lion-1209/AgentStudy 仓库对应代码见stage2-langchain/task2.1_langchain_agent.py从 200 行到 100 行框架的价值上一篇你用手写了 200 行的最小 Agent。现在用 LangChain同样的功能只需要 100 行。框架不改变本质只是把重复的工作封装起来。LangChain Agent 的核心组件tool decorator define工具AgentExecutor wrap ReAct loopChatPromptTemplate prompt templateLLM model callfinal output三个组件 一个 Agent。5 分钟搭一个 Agent步骤 1定义工具用装饰器fromlangchain_core.toolsimporttooltooldefget_weather(city:str)-str:获取指定城市的天气信息。 Args: city: 城市名称如北京 weather_data{北京:晴天温度 25°C,上海:多云温度 28°C,}returnweather_data.get(city,f未找到{city}的天气数据)tooldefcalculate(expression:str)-str:计算数学表达式。 Args: expression: 数学表达式如 2 3 * 4 returnstr(eval(expression))tools[get_weather,calculate]装饰器的魔法tool自动从函数签名和 docstring 生成 JSON Schema。你不需要手写工具描述。步骤 2创建 Agentfromlangchain_openaiimportChatOpenAIfromlangchain.agentsimportcreate_agent llmChatOpenAI(modelgpt-4o-mini)agentcreate_agent(llm,toolstools)步骤 3运行resultagent.invoke({messages:[{role:user,content:北京天气怎么样}]})print(result[messages][-1].content)就这么简单。3 个步骤一个可用的 Agent。对比纯 Python vs LangChain维度纯 PythonLangChain工具定义手写字典 描述tool装饰器自动生成 SchemaReAct 循环自己写 while 循环AgentExecutor自动封装提示词管理字符串拼接ChatPromptTemplate模板化错误处理手动 try-except内置错误处理机制调试print 语句LangSmith 集成tool 装饰器原理你写函数 docstringtool decoratorauto提取function nameauto提取参数类型auto提取docstring作为description生成JSON SchemaLLM 能理解的工具define你只写业务逻辑框架帮你生成 Schema。学习检查清单能用 tool 装饰器定义一个工具吗知道 AgentExecutor 封装了什么吗能对比出 LangChain 相比纯 Python 省掉了哪些重复代码吗延伸阅读 完整代码stage2-langchain/task2.1_langchain_agent.py API 参考LANGCHAIN_REFERENCE.md️ 上一篇[07] 4 大框架横评手册️ 下一篇[09] 多工具 Agent 错误处理

相关新闻

如何彻底解决泰坦之旅装备管理难题:TQVaultAE完全指南

如何彻底解决泰坦之旅装备管理难题:TQVaultAE完全指南

如何彻底解决泰坦之旅装备管理难题:TQVaultAE完全指南 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE 还在为《泰坦之旅:周年纪念版》的背包空间不足…

2026/10/13 16:49:59 阅读更多 →
3个秘诀让二次元伙伴住进你的桌面:DyberPet桌面宠物框架全攻略

3个秘诀让二次元伙伴住进你的桌面:DyberPet桌面宠物框架全攻略

3个秘诀让二次元伙伴住进你的桌面:DyberPet桌面宠物框架全攻略 【免费下载链接】DyberPet Desktop Cyber Pet Framework based on PySide6 项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet 还在对着单调的桌面发呆吗?想象一下&#x…

2026/9/25 18:40:55 阅读更多 →
终极免费资源下载神器:3分钟解锁全网视频音频自由

终极免费资源下载神器:3分钟解锁全网视频音频自由

终极免费资源下载神器:3分钟解锁全网视频音频自由 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否曾为无法…

2026/10/13 7:07:57 阅读更多 →

最新新闻

SwiftUI中的Agent+Skill框架:摆脱if-else,构建可扩展的任务调度系统

SwiftUI中的Agent+Skill框架:摆脱if-else,构建可扩展的任务调度系统

项目名我起了个SwiftUI-Agent-Skill,翻译过来没啥歧义:一套跑在SwiftUI应用里的Agent技能框架。Agent在这里不是玄学,就是一个负责拆解用户意图、派发任务、汇总结果的调度核心;Skill则是挂在它下面的一个个独立能力模块&#xff…

2026/10/13 16:49:38 阅读更多 →
MySQL图书管理系统数据库设计:从库表建模到并发事务与故障排查

MySQL图书管理系统数据库设计:从库表建模到并发事务与故障排查

简介:一份基于MySQL的图书管理系统数据库设计完整文档,面向需要完成数据库课程设计、毕业设计或参与图书管理项目开发的人员。文档结构完整,从题目概述出发,依次展开需求分析、功能需求、数据需求、数据安全与约束、数据流图、概要…

2026/10/13 16:49:38 阅读更多 →
黎明杀机联动尼尔崩溃?小蓝熊EAC与UE5闪退完整修复指南

黎明杀机联动尼尔崩溃?小蓝熊EAC与UE5闪退完整修复指南

先说明一下,我不是什么专业程序调试员,就是个在黎明杀机里泡了上千小时的普通玩家。前两天《黎明杀机》和《尼尔》联动上线,我兴冲冲买了DLC准备开爽,结果一进游戏就遭遇了连环暴击——先是小蓝熊EAC无限转圈加载,好不…

2026/10/13 16:49:38 阅读更多 →
LiteLLM 实战:用统一模型网关解决多模型接入与治理难题

LiteLLM 实战:用统一模型网关解决多模型接入与治理难题

做 AI 应用开发这几年,模型接口这块我真没少折腾。早期项目只用一家模型供应商,代码里直接对接对方 SDK,写起来还算顺手。等产品上线、需求一变就傻眼了:A 模型偶尔限流、B 模型便宜但效果差一点、客户指定要用 C 模型的私有部署&…

2026/10/13 16:49:38 阅读更多 →
多模态Agent UI测试路径规划实战:从候选集到失败回溯

多模态Agent UI测试路径规划实战:从候选集到失败回溯

最近在折腾一套用多模态 Agent 跑 UI 测试的验证项目。我给它一个纯文字目标——“打开控制台,给默认项目创建一个新的 API Key”——它就得自己看懂页面、找到入口、填表单、提交,最后确认结果。最开始我以为难点在“怎么让模型能控制浏览器”&#xff…

2026/10/13 16:49:38 阅读更多 →
从套壳MCP到研究决策系统:AI工具如何演进成完整工作流

从套壳MCP到研究决策系统:AI工具如何演进成完整工作流

被同事问得最多的一句话是:“你不是说只做个套壳MCP吗?怎么越写越像一个研究决策系统了?”起先我还会解释几句,后来问的人多了,我干脆把整个演进过程重新捋了一遍,发现这事本身就挺有意思:明明一…

2026/10/13 16:48:36 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →