news 2026/9/9 16:09:05

LangChain.js 智能代理实战指南:快速搭建能调用工具的 AI 应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LangChain.js 智能代理实战指南:快速搭建能调用工具的 AI 应用

LangChain.js 智能代理实战指南:快速搭建能调用工具的 AI 应用

【免费下载链接】langchainjsThe agent engineering platform项目地址: https://gitcode.com/GitHub_Trending/la/langchainjs

当你想让 AI 不只是聊天,还要查数据、调接口、记住多轮上下文时,LangChain.js 的智能代理(Agent)能力能帮你用极少的配置把这些环节串成一条能跑的流程。今天我们不讲概念,直接以实践者的角度,一起看看它到底怎么把模型变成会干活的智能代理。

一句话:它替你解决了什么

它替你省掉"模型和外部世界之间的所有胶水代码"——你声明好模型和工具,它负责让模型自己决定何时调用什么工具、按什么参数调用,再把结果喂回给模型继续推理。你只需要关注业务规则,不用手写轮询、解析和重试。

三步把 LangChain.js 装进项目

上手路径很短,核心改动就两处:

  1. 装包:在 Node.js(20.x 及以上)项目里执行npm install -S langchain,再按你用的模型装一个 provider 包,比如 OpenAI 对应@langchain/openai,仓库里 libs/providers/ 目录下可以看到全部支持的 provider 包,Anthropic、Google、Ollama、Groq 等都在其中。
  2. 配模型:在代码里用一个 Chat 模型实例指定 provider 和模型名,这一步就是"配置驱动"的全部——换一个模型,通常只是换一行实例化。
  3. 建代理:用主包导出的createAgent,把模型和工具列表交给它,就能invoke发消息。没有链式调用样板,没有初始化仪式。

它能替你完成的四件事

让模型用上实时数据:连接外部数据源

大模型训练截止后的世界,它一无所知。LangChain.js 把向量库、检索器、HTTP 接口、数据库等接成统一的数据源接口,模型在推理过程中可以主动去查。下面这张图就是一个典型的场景:搜索结果页这类实时信息,正是模型自己"够不着"、必须由框架帮它取回来的东西。

让模型记得上文:会话内存与状态管理

多轮对话里"它"指谁、"上次"是哪次,靠的是状态。createAgent支持挂一个 store(如InMemoryStore),工具读写它,模型就能跨会话引用之前存下的信息——记忆不再是一段段字符串拼接,而是结构化的键值存取。

让模型输出可控:工具调用与结构化结果

用 zod schema 给每个工具声明参数结构,模型给出的调用参数会先过校验再执行,脏参数进不了你的业务函数。最终答复也可以声明responseFormat,让代理直接返回符合 schema 的结构化对象,而不是让你再去正则解析一段自然语言。

换模型不用改业务代码:多模型互操作

所有 provider 的 Chat 模型都实现同一套接口,你在业务层写的工具、提示、流程与具体模型解耦。今天用 GPT-4o 验证逻辑,明天换 Claude 或 Gemini 压成本,业务代码基本不动——这在模型迭代飞快的阶段是很实在的保险。

完整走读:一个带记忆的工具代理

以仓库里的 examples/src/createAgent/tools.ts 为例,把它拆开看就是"输入 → 处理 → 输出"三步:

  • 输入:第一次调用agent.invoke,消息是一句自然语言:"Save the following user: userid: abc123, name: Foo, age: 25, email: foo@langchain.dev"。
  • 处理:代理把这句话解析为对saveUserInfo工具的调用,参数经 zod 校验后写入挂着的InMemoryStore,工具返回 "Successfully saved user info."。
  • 输出:另起一次invoke(模拟新会话),问 "Get user info for user with id 'abc123'",模型这次选择调用getUserInfo,从 store 里读回数据,最终消息输出姓名、年龄、邮箱的结构化摘要。

整个过程你没写任何"如果用户说保存就写库"的分支——路由决策是模型做的,你只提供工具和存储。这就是智能代理和普通"模型 + if 判断"脚本的分界线。

进阶与避坑:两个容易踩的地方

  1. 分清 langchain 和 langchain-classic:仓库里同时存在 libs/langchain/ 和 libs/langchain-classic/。新版createAgent、中间件(middleware)等代理 API 在主包里;chains、memory、classic prompts 那套传统写法在 langchain-classic 里,示例集中在 examples/src/langchain-classic/。网上大量旧教程的代码是 classic 版本,和新代理 API 的导入路径不通用,照抄会拿到不存在的导出。新代码建议直接走主包。
  2. 注意 zod 版本对齐:工具 schema 全部基于 zod,仓库专门有 environment_tests/test-zod-compat/ 目录,分别验证 zod v3、v4 以及版本不匹配的场景。如果你的项目里已有别的库锁定了 zod 版本,安装前先确认版本是否落在 provider 包的兼容范围内,否则类型校验会在运行时悄悄失效。

生态与延伸阅读

想动手跑代码,仓库自带一套可直接执行的示例:examples/src/createAgent/ 下有工具调用、中间件(限流、摘要、人工介入)、多智能体(handoffs、supervisor)等几十个小而完整的案例,每个文件独立成篇,比长文档更适合边读边改。另外两处值得翻一翻:internal/standard-tests/ 展示了官方如何给 LLM 集成写标准化测试,对你评估"某个模型接入是否靠谱"很有参考价值;internal/model-profiles/ 则是一套模型特性档案工具,帮你判断某个模型到底支不支持工具调用、流式等能力。如果想拿到完整源码在本地跑,可以克隆仓库:

git clone https://gitcode.com/GitHub_Trending/la/langchainjs

落地建议:从哪一步开始

  • 如果你是初学者:先别碰 RAG 和多智能体,从 examples/src/createAgent/tools.ts 这个最简工具代理跑通起,把"一个工具、一次存储、两次 invoke"完整复现一遍,代理的循环机制你就理解了。
  • 如果你已有项目要接入:优先评估你现有系统里哪些"固定流程"其实是"决策流程"——比如需要根据用户措辞分派到不同接口的那段 switch-case,那是第一个适合换成带工具代理的点,改动面小、收益立竿见影。

【免费下载链接】langchainjsThe agent engineering platform项目地址: https://gitcode.com/GitHub_Trending/la/langchainjs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 16:08:50

rBergomi模型C++实现:从分数阶布朗运动到Monte Carlo定价

简介:rBergomi 模型是当前粗糙波动率研究中的代表性模型,该资源是其 C 实现,面向对冲基金、券商自营及衍生品领域的量化研究者和期权定价开发人员。代码使用蒙特卡洛方法完成欧式期权定价,并通过混合方案高效生成分数布朗运动&…

作者头像 李华
网站建设 2026/9/9 16:06:48

PHP程序员的内卷困境:以庖丁解牛之道找回技术初心

这两年聊到PHP,很多人的第一反应是“PHP是不是不行了”“还在写PHP是不是有点过时了”。每次在技术群里看到类似的讨论,我都觉得有点哭笑不得。我接触PHP已经有十年左右,从PHP 5.2一路写到现在,经历过ThinkPHP 3.2.3那个“国产框架…

作者头像 李华
网站建设 2026/9/9 16:03:10

SpringBoot+Vue前后端分离交友系统:从设计到部署全解析

前后端分离的实战项目,网上一抓一大把,但我见过太多人下载了源码却根本跑不起来,更别提部署上线了。今天分享的这个“志同道合交友网站系统”,是我花了不少业余时间打磨出来的一套完整作品,技术栈就是最主流的 SpringB…

作者头像 李华
网站建设 2026/9/9 16:03:09

从DAG到四方向网格:最短路径算法选型与工程实践

最近在做一个任务编排引擎的时候,遇到了一个特别典型的路径问题:一批任务之间存在先后依赖,整体构成一张有向无环图(DAG),我需要从中找到一条最低成本路径。但需求里加了一条让人头疼的限制——路径上允许向…

作者头像 李华
网站建设 2026/9/9 16:02:41

SpringBoot+Vue+MySQL前后端分离新闻资讯系统源码实操解析

市面上打着“可直接运行”旗号的新闻资讯系统源码很多,但真正下载下来能一次跑通的其实不多。这套SpringBoot Vue MySQL的前后端分离项目算是我见过完成度比较高的,从管理员发布新闻、分类管理到前端门户展示、用户浏览,整个业务闭环是完整…

作者头像 李华