LangChain智能体工具全解析:内置工具与用法

📘 教程 2026-08-01 · 更新于 2026-08-24 约 7 分钟阅读

LangChain内置10多个Agent工具逐个解析:搜索、百科、论文、代码执行、数据库,含代码示例与自定义工具方法。

💡 你将学到

LangChain内置10多个Agent工具逐个解析:搜索、百科、论文、代码执行、数据库,含代码示例与自定义工具方法。

📜 目录

LangChain智能体工具全解析:内置工具与用法

大模型只会"想",不会"做":它不知道今天的新闻,不能执行代码,也查不了你的数据库。LangChain(GitHub 143k+ 星)的核心思路就是给模型接上工具——模型决定什么时候用、用什么工具,框架负责调度。本文把内置工具逐个讲清楚,附可直接抄的代码。

一、先理解:工具在 Agent 里怎么工作

Agent 循环:模型收到问题 → 判断"需要查资料" → 框架调用工具 → 结果拼回上下文 → 继续推理 → 给出最终答案。所以工具最重要的是描述清楚自己——模型靠 name 和 description 决定何时调用。

工具速查表

工具 需要Key 适用场景
TavilySearchResults 实时搜索、新闻、价格
WikipediaQueryRun 人物/事件/概念
ArxivQueryRun 论文检索
PythonREPLTool 代码执行、数据处理
SQLDatabaseToolkit 数据库问答
DuckDuckGoSearchRun 免key搜索

二、内置工具逐个说

1. TavilySearchResults——联网搜索

需要 Tavily API key,返回带来源链接的结果,适合实时信息场景(新闻、价格、最新文档)。免费档有月度额度,以官网为准。

from langchain_community.tools import TavilySearchResults
search = TavilySearchResults(max_results=3)

2. WikipediaQueryRun——百科查询

免费、无需 key,适合人物/事件/概念等事实型问题;内容有时效性,太新的信息查不到。

3. ArxivQueryRun——论文搜索

免费。按关键词搜 arXiv 论文,返回标题、摘要、链接,做文献调研很实用。

4. PythonREPLTool——代码执行

让模型写 Python 并直接执行:算数、数据处理、画图都能做。安全提示:相当于让模型在你机器上跑代码,只应在可信环境使用。

5. SQLDatabaseToolkit——数据库查询

把自然语言问题变成 SQL 查询,内置查表结构/执行查询/查错误等子工具,适合做数据库问答。

from langchain_community.agent_toolkits import SQLDatabaseToolkit
tools = SQLDatabaseToolkit(db=db, llm=llm).get_tools()

6. 其他常用内置工具

三、自定义工具:@tool 装饰器

自定义工具只需一个函数加装饰器:

from langchain_core.tools import tool

@tool
def get_stock_price(symbol: str) -> str:
    """查询股票的最新价格。symbol 是股票代码,如 AAPL。"""
    return f"{symbol}: $XXX"

关键:docstring 写清楚"是什么+参数含义+示例",模型靠它决定何时调用、传什么参数。类型注解会被自动转成模型需要的 JSON schema。

四、2026 年新趋势:MCP 集成

MCP(Model Context Protocol)成为工具生态的事实标准后,LangChain 可以直接加载任意 MCP 服务器:

from langchain_mcp_adapters.tools import load_mcp_tools

# 连接 MCP 服务器后直接加载成工具
tools = await load_mcp_tools(session)

只要对方提供 MCP 服务器,就能直接当工具用,无需为每个服务写适配器。GitHub 上现成的 MCP 服务器已有上千个。

五、最佳实践清单

  1. 工具描述要具体"查询股票价格,输入格式 AAPL" 好过 "股票工具"
  2. 加容错handle_tool_error=True 防止工具异常中断整个 Agent
  3. 绑定函数调用模型llm.bind_tools(tools) 原生 tool-calling 比解析 JSON 可靠
  4. 工具数量宁少勿多:5-8 个选得准,30 个频繁选错;敏感工具加人工确认

常见问题

Q:工具调用和"模型自己编答案"怎么区分? A:看是否配置了 tools 并绑定。绑定后模型先输出结构化"调用请求",框架执行后把真实结果喂回上下文。

Q:免费搜索工具够用吗? A:DuckDuckGo 免费无 key,适合低频;要稳定结果和更多配额用 Tavily 等搜索 API,额度以官网为准。

Q:自定义工具需要重新训练模型吗? A:不需要。工具是运行时注入的,模型通过描述理解工具,改描述即时生效,不用微调。

注:LangChain 的 API 与包名迭代较快(langchain / langchain-community / langchain-experimental 拆分),示例以官方文档最新版本为准。

相关文章

❓ 常见问题

Do I need a Tavily API key?

TavilySearchResults requires a free API key; DuckDuckGoSearchRun does not.

Can tools call other tools?

Yes, through agent routing or sub-agents in LangGraph.

相关文章
2026-07-16
AI Agent实时通信:用WebSocket让Agent实时推送通知
2026-08-05
2026年学生AI编程助手:Cline(6.6万星)对比 Continue(3.5万星),真正能教你的免费工具
2026-07-13
用Docker本地运行Ollama:2026完整部署指南

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论