LangChain Agent 入门:为什么直接调大模型 API 远远不够?

📅 2026/7/15 17:42:34
LangChain Agent 入门:为什么直接调大模型 API 远远不够?
LangChain Agent 入门为什么直接调大模型 API 远远不够摘要你是不是也以为 Agent 就是调个 OpenAI API本文从一个真实场景出发带你理解 Agent 的本质 —— 给大模型装上记忆、工具和知识库让它从只会说变成能做事。 前言上周有个朋友问我我想做个能帮我写代码的 AI 助手直接调 OpenAI 的 API 不就行了我反问了他几个问题你上周和它聊过的代码它还记得吗让它帮你创建一个 React 项目它能做到吗你们公司的内部技术文档它知道吗他沉默了。这就是为什么我们需要 Agent。 本文适合谁用过 ChatGPT / OpenAI API但想更进一步的同学听过 Agent 但不太清楚它和普通 API 调用有什么区别的同学想用 JavaScript/Node.js而非 Python做 AI 开发的前端/全栈工程师 一、直接调 LLM API 的五大痛点很多人做 AI 应用的第一步就是import OpenAI from openai; const client new OpenAI(); const response await client.chat.completions.create({ model: gpt-4, messages: [{ role: user, content: 你好 }] });能跑通但很快你会遇到这些问题痛点 1无记忆Stateless大模型是无状态的。每次调用都是独立的它不记得你上一轮说了什么。用户我叫张三 AI你好张三 用户我叫什么 AI抱歉我不知道你叫什么。解决方案Memory 模块 —— 把历史消息存下来每次调用时带上。痛点 2不能执行只能想不能做你让大模型帮我读一下 src/index.mjs 的内容它会给你一段思路你可以用 Node.js 的 fs.readFile 方法来读取文件……但它不会真的去读。它只能告诉你怎么做不能帮你做。解决方案Tool 模块 —— 给大模型装上手脚让它能调用函数。痛点 3知识有限不知道你的私有数据大模型的训练数据是公开的。你们公司的内部文档、私有的 API 接口、项目的配置文件 —— 它一概不知。解决方案RAG检索增强生成—— 让大模型先查知识库再回答。痛点 4信息过时训练数据有截止日期2026 年世界杯冠军是谁 —— 如果模型的训练数据截止到 2024 年它就答不上来。解决方案MCPModel Context Protocol—— 让大模型能调用第三方工具搜索、API 等获取实时信息。痛点 5不会规划复杂任务一步到位你让它帮我创建一个 React 项目添加 TodoList 功能安装依赖启动开发服务器它可能直接给你一坨代码但不会分步骤执行。解决方案Skills / Planning —— 让大模型能拆解任务、分步执行。 二、Agent 的本质把上面的解决方案组合起来就是 Agent 的公式Agent LLM Memory Tool RAG MCP Skills用一张图来理解用户提出复杂任务 ↓ ┌─────────────────────────────────┐ │ Agent智能体 │ │ │ │ LLM → 大脑思考/推理 │ │ Memory → 记忆上下文 │ │ Tool → 手脚执行操作 │ │ RAG → 知识库私有数据 │ │ MCP → 外部接口第三方 │ │ ⚡ Skills → 技能任务编排 │ │ │ └─────────────────────────────────┘ ↓ 返回结果给用户一句话总结Agent 就是给大模型装上记忆、工具和知识库让它从只会说变成能做事。 三、Agent 的工作流程用户提交任务Prompt ↓ Agent 接收任务 ↓ LLM 规划/推理Planning/Reasoning ↓ ┌──────────────────────────────────┐ │ 需要加载 Memory → 加载历史上下文 │ │ 需要调用 Tool → 执行工具获取结果 │ │ 需要查询 RAG → 检索知识库 │ └──────────────────────────────────┘ ↓ 组装结果 → 返回给用户关键点LLM 负责想Tool 负责做。LLM 决定我需要调用哪个工具传什么参数Tool 执行读文件、写代码、调 API……LLM 再决定拿到结果后下一步做什么这个想 → 做 → 想 → 做的循环就是后面我们要讲的ReAct 模式。 四、LangChain.js —— Agent 开发框架为什么需要框架你可以从零手写 Agent直接调 OpenAI API 自己管理消息 自己处理 tool_calls但会很痛苦要自己拼 messages 数组要自己解析 tool_calls覣自己处理工具执行结果要自己做错误处理和重试LangChain 帮你封装了这些脏活累活。框架对比框架语言定位适合场景LangChainPython / JS单智能体开发框架Agent、Chain、Tool 开发LangGraphPython / JS多智能体开发框架复杂工作流、多 Agent 协作Vercel AI SDKTypeScript前端 AI SDK前端集成、流式输出Semantic KernelC# / Python / Java微软 AI 框架企业级应用我们选LangChain.js原因前端工程师用 JS/TS 更顺手Tool 抽象做得非常好社区生态最完善 五、LangChain.js 快速上手安装依赖pnpm add langchain/core langchain/openai zod dotenv包作用langchain/coreLangChain 核心提供 Tool、Message、Chain 等抽象langchain/openaiOpenAI 兼容的 LLM 封装支持自定义 baseURLzodTypeScript 优先的参数校验库给 Tool 定义 schemadotenv环境变量管理读取 .env 文件环境变量配置创建.env文件MIMO_MODELgpt-4 MIMO_API_KEYsk-xxxx MIMO_API_BASE_URLhttps://api.openai.com/v1提示MIMO_API_BASE_URL可以改成任何 OpenAI 兼容的 API 地址比如 DeepSeek、Moonshot、本地 Ollama 等。这就是 LangChain 模型无关的优势。第一次调用 LLMimport { ChatOpenAI } from langchain/openai; import dotenv/config; // 创建模型实例 const model new ChatOpenAI({ modelName: process.env.MIMO_MODEL, apiKey: process.env.MIMO_API_KEY, configuration: { baseURL: process.env.MIMO_API_BASE_URL, } }); // 调用模型 const response await model.invoke(你好请介绍一下你自己); console.log(response.content);model.invoke()返回了什么{ content: 你好我是一个AI助手..., // 文本内容 tool_calls: [], // 工具调用列表后面会讲 response_metadata: { ... }, // 元数据 usage_metadata: { ... }, // token 使用量 }现在tool_calls是空的因为我们还没给模型绑定工具。下一篇讲 Tool 的时候你就会看到它有值了。 六、LangChain 的 Message 体系LangChain 定义了 4 种消息类型对应 OpenAI API 的roleimport { SystemMessage, // role: system → 系统提示词定义 AI 的行为 HumanMessage, // role: user → 用户消息 AIMessage, // role: assistant → AI 回复可能包含 tool_calls ToolMessage, // role: tool → 工具执行结果 } from langchain/core/messages;消息类型对应 role谁发的用途SystemMessagesystem开发者定义 AI 的角色、行为规则HumanMessageuser用户用户的输入AIMessageassistantAIAI 的回复可能包含 tool_callsToolMessagetool开发者工具执行的结果回传给 AI使用示例const messages [ new SystemMessage(你是一个代码助手可以使用工具读取文件), new HumanMessage(请帮我读取 src/index.mjs 文件), ]; const response await model.invoke(messages);为什么要用 LangChain 的 Message 类而不是直接传{ role: user, content: ... }因为 LangChain 的 Message 类提供了类型安全、额外的元数据支持以及和 Tool 系统的无缝集成。 重点总结直接调 API 的五大痛点无记忆、不能执行、知识有限、信息过时、不会规划。Agent 的本质Agent LLM Memory Tool RAG MCP Skills给大模型装上能力扩展。Agent 的核心逻辑LLM 负责想规划、推理Tool 负责做执行操作。LangChain.js 的价值封装了消息管理、Tool 调用、错误处理等脏活累活让你专注于业务逻辑。模型无关通过baseURL可以对接任何 OpenAI 兼容的 API不被某个模型绑定。