news 2026/4/16 14:18:57

【AI Agent】【10】LangChain Agent 入门 - 实现一个联网搜索的agent

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【AI Agent】【10】LangChain Agent 入门 - 实现一个联网搜索的agent

AI Agent 系列文章10, 后续会更新 LangGraph、RAG、MCP等内容,最后全栈开发一个 Agent 智能体并部署上线。

本篇主要介绍

1)Agent 创建

2)ReAct Agent

3)调用“联网搜索”工具的Agent

  1. Agent创建

之前的功能都是一次性调用llm返回结果,或者需要多次询问,或者二次加工处理。

如果需要自动多次调用llm,自动调用工具等等,就需要agent智能体。

import { ChatDeepSeek } from '@langchain/deepseek' import { createAgent, tool } from 'langchain' import * as z from 'zod' import 'dotenv/config' const llm = new ChatDeepSeek({ model: 'deepseek-chat', apiKey: process.env.DEEPSEEK_API_KEY }) const getWeather = tool( input => `${input.city}一直天气晴朗`, { name: 'query-weather', description: '查询指定城市的天气情况', schema: z.object({ city: z.string().describe('要查询天气的城市') }) } ) const agent = createAgent({ model: llm, tools: [getWeather] }) const res = await agent.invoke({ messages: [{ role: 'user', content: '广州的天气怎么样?' }] }) console.log(res);

代码中定义了一个查询天气的工具,它是模拟的,不过不影响 agent 的执行流程。

agent 绑定了 llm 和 tools ,它会根据用户输入的提示词,自动判断需要调用什么。

执行结果:

{ messages: [ HumanMessage { "id": "20422a89-da0e-4e6f-9e8d-ed34900df1f0", "content": "广州的天气怎么样?", "additional_kwargs": {}, "response_metadata": {} }, AIMessage { "id": "5246393a-bd50-4cdf-95e4-c89935bfab01", "content": "我来帮您查询广州的天气情况。", "name": "model", "additional_kwargs": { "tool_calls": [ { "index": 0, "id": "call_00_9IfbfrGjSe8XgfXtGwxQE9zq", "type": "function", "function": "[Object]" } ] }, "response_metadata": { "tokenUsage": { "promptTokens": 337, "completionTokens": 52, "totalTokens": 389 }, "finish_reason": "tool_calls", "model_provider": "openai", "model_name": "deepseek-chat", "usage": { "prompt_tokens": 337, "completion_tokens": 52, "total_tokens": 389, "prompt_tokens_details": { "cached_tokens": 0 }, "prompt_cache_hit_tokens": 0, "prompt_cache_miss_tokens": 337 }, "system_fingerprint": "fp_eaab8d114b_prod0820_fp8_kvcache" }, "tool_calls": [ { "name": "query-weather", "args": { "city": "广州" }, "type": "tool_call", "id": "call_00_9IfbfrGjSe8XgfXtGwxQE9zq" } ], "invalid_tool_calls": [], "usage_metadata": { "output_tokens": 52, "input_tokens": 337, "total_tokens": 389, "input_token_details": { "cache_read": 0 }, "output_token_details": {} } }, ToolMessage { "id": "ca6dc481-e79e-4eb1-9635-67d0e660914b", "content": "广州一直天气晴朗", "name": "query-weather", "additional_kwargs": {}, "response_metadata": {}, "tool_call_id": "call_00_9IfbfrGjSe8XgfXtGwxQE9zq" }, AIMessage { "id": "bce04c5b-5edb-4d42-acd6-dc6971132155", "content": "根据查询结果,广州目前天气晴朗。如果您需要更详细的天气信息,比如温度、湿度或未来几天的天气预报,请告诉我,我 可以为您提供更多帮助。", "name": "model", "additional_kwargs": {}, "response_metadata": { "tokenUsage": { "promptTokens": 402, "completionTokens": 35, "totalTokens": 437 }, "finish_reason": "stop", "model_provider": "openai", "model_name": "deepseek-chat", "usage": { "prompt_tokens": 402, "completion_tokens": 35, "total_tokens": 437, "cached_tokens": 320 }, "prompt_cache_hit_tokens": 320, "prompt_cache_miss_tokens": 82 }, "system_fingerprint": "fp_eaab8d114b_prod0820_fp8_kvcache" }, "tool_calls": [], "invalid_tool_calls": [], "usage_metadata": { "output_tokens": 35, "input_tokens": 402, "total_tokens": 437, "input_token_details": { "cache_read": 320 }, "output_token_details": {} } } ] }

上述结果就是 agent 多次调用 llm 和 tool 返回的信息。

第一个是 HumanMessage,用户的提问,然后第二个是 AI 分析后的结果,需要调用 tool,然后是 tool 返回的结果,然后 AI 再根据用户提问和 tool 返回的结果,整合后返回最终的结果。

  1. ReAct Agent

ReAct(Reasoning 推理 + Acting 行动),agent 根据情况自动多次调用 llm 和 tool。

ReAct Agent 的工作流程是一个典型的 “推理-行动-观察”循环,其核心在于让大模型能够通过多轮工具调用来解决复杂问题。

ReAct 可以体现到 agent 中的所有元素,不仅仅是 llm 和 tool,一个 agent 一般也包括:

  • llm
  • tools
  • memory
  • system prompt
  • workflow
  • structured output

它可以自动执行这些元素,来达到解决问题的目的。

  1. 调用“联网搜索”工具的Agent
import { ChatDeepSeek } from '@langchain/deepseek' import { createAgent } from 'langchain' import { TavilySearch } from '@langchain/tavily' import 'dotenv/config' const llm = new ChatDeepSeek({ model: 'deepseek-chat', apiKey: process.env.DEEPSEEK_API_KEY }) // 联网搜索的工具 const tavilyTool = new TavilySearch({ maxResults: 2, topic: 'general', tavilyApiKey: process.env.TAVILY_API_KEY }) const agent = createAgent({ model: llm, tools: [tavilyTool] }) const res = await agent.invoke({ messages: [{ role: 'user', content: '电影《疯狂动物城2》今年什么时间上映的' }] }) console.log(res);

比如问 “电影《疯狂动物城2》今年什么时间上映的”:

最终回答是 2025年11月26日,agent 调用了 tavily_search 工具进行 联网搜索。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

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

中国版ChatGPT崛起之路(Open-AutoGLM火爆内幕首次曝光)

第一章:中国版ChatGPT崛起之路近年来,随着人工智能技术的迅猛发展,中国科技企业纷纷投身大模型研发浪潮,推动“中国版ChatGPT”的快速崛起。从百度的文心一言到阿里的通义千问,再到讯飞星火与智谱AI的GLM系列&#xff…

作者头像 李华
网站建设 2026/4/16 9:17:49

运维现在最吃香的 10 个运维方向,你站对赛道了吗?

写给所有还在迷茫的运维同学: 不是你不努力,而是你可能站在一个正在被淘汰的方向上。 这几年我经常听到同事、朋友甚至新人问我几个问题: “运维是不是快没前途了?” “为什么感觉运维工资涨不动?” “公司说要上云、要 DevOps,但我们每天还是在加班修故障?” “学了这么…

作者头像 李华
网站建设 2026/4/16 10:53:01

Fusion_lora:AI图像融合新突破,轻松搞定产品光影透视

Fusion_lora:AI图像融合新突破,轻松搞定产品光影透视 【免费下载链接】Fusion_lora 项目地址: https://ai.gitcode.com/hf_mirrors/dx8152/Fusion_lora 导语:AI图像编辑领域再添新工具,Fusion_lora作为一款专注于图像融合…

作者头像 李华
网站建设 2026/4/16 10:54:06

学长亲荐9个AI论文软件,继续教育学生轻松写论文!

学长亲荐9个AI论文软件,继续教育学生轻松写论文! AI工具如何让论文写作更高效 在当前的学术环境中,继续教育学生面临着越来越高的论文写作要求。无论是本科、硕士还是博士阶段,撰写高质量的论文已成为一项重要任务。而随着人工智能…

作者头像 李华
网站建设 2026/4/16 11:01:05

AI“博学多才“却“一问三不知“?RAG技术让它秒变“业务专家“!小白程序员也能轻松上手的企业AI解决方案!

为什么AI“很聪明”,却连自家公司的事都不知道? 想象一个场景。 一家制造企业花费了数十万的预算,接入了市面上最先进的大语言模型(LLM)。员工们兴奋地尝试让这个“无所不知”的AI助手来处理日常工作。 有人问道&am…

作者头像 李华