LangChain 的 Tools 体系:给 LLM 装上手和脚

750 字
4 分钟
LangChain 的 Tools 体系:给 LLM 装上手和脚

LangChain 的核心之一是 Agent + Tools。
它的理念是:LLM 本身是生成文本的能力,但很多任务需要调用外部工具/系统,比如搜索、计算、数据库查询、API 调用。


1. 基本概念#

(1)Tool#

  • 定义:一个 Python 对象,封装了外部能力(函数、API、数据库等)。

  • 接口:至少包含两个属性:

    • ​name​:工具名
    • ​func​:执行函数
    • ​description​:给 LLM 说明工具做什么
  • LLM 会根据 prompt + description 决定调用哪个工具。

示例:

from langchain.tools import Tool
def calculator(query: str) -> str:
return str(eval(query))
calc_tool = Tool(
name="Calculator",
func=calculator,
description="用于执行数学运算,例如 2+2"
)

(2)Agent#

  • Agent 是一个 智能决策者,根据用户输入:

    1. 思考(LLM分析问题)
    2. 决定调用哪个 Tool
    3. 执行 Tool
    4. 收集结果并继续思考
  • LangChain 内置多种 agent 类型:

    • ​ZeroShotAgent​
    • ​ReActAgent​
    • ​ConversationalAgent​
    • ​StructuredToolAgent​(结合输出解析器)

2. 工具使用方式#

(1)简单工具调用#

from langchain.agents import initialize_agent
tools = [calc_tool]
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
agent.run("计算 123 * 456")

输出:

56088

(2)结合多工具#

  • 可以同时注册 搜索、计算、数据库查询、API。
  • LLM 会选择最合适的工具:
from langchain.agents import Tool
search_tool = Tool(
name="Search",
func=lambda x: "搜索结果: xxx",
description="搜索互联网以获取最新信息"
)
agent = initialize_agent([calc_tool, search_tool], llm, agent="zero-shot-react-description")
agent.run("查找今天的天气并计算温度差")

LLM 会先调用 Search​,然后 Calculator​,再返回答案。


3. 多步骤工具链 (MCP / Multi-Tool Chain)#

你提到 MCP(Multi-Chain / Multi-Tool Pipeline)概念,其实 LangChain 的 Agent + Tools + Chains 就可以实现类似功能:

  • Multi-Step Chain(SequentialChain / RouterChain)可以串联多个工具调用流程。

  • Agent + Tools 可以动态选择工具和顺序,形成“多工具任务处理管线”。

  • 目前 LangChain 官方没有叫“MCP”的模块,但完全可以通过:

    • RouterChain + Agents + Tool
    • SequentialChain + Multi-Tool Agent
      来实现多工具并行或串行调用。

(3)示意:MCP 风格工作流#

from langchain.chains import SequentialChain
# 假设有三个工具
tools = [calc_tool, search_tool]
# Step1: 查询问题相关背景
search_chain = LLMChain(
llm=llm,
prompt=PromptTemplate.from_template("请搜索问题背景: {query}"),
output_key="search_result"
)
# Step2: 计算结果
calc_chain = LLMChain(
llm=llm,
prompt=PromptTemplate.from_template("根据背景 {search_result} 计算结果: {query}"),
output_key="calc_result"
)
workflow = SequentialChain(chains=[search_chain, calc_chain], input_variables=["query"], output_variables=["calc_result"])
workflow.invoke({"query": "计算今天的温差"})
  • 这里每一步都可以调用不同的工具。
  • 实际上就是 多工具、多步骤执行管线,可以视作 MCP 的实现方式。

4. 特点总结#

功能描述MCP 实现可能性
Tool封装外部能力✅ 可以多工具注册
AgentLLM + 工具决策者✅ 自动选择工具
SequentialChain串联工具/LLM链✅ 可以做多步骤 MCP
RouterChain输入路由选择不同工具✅ 可实现条件分支 MCP
StructuredToolAgent输出解析 + 多工具✅ 更稳定 MCP

✅ 小结#

  • LangChain 原生不叫 MCP,但其架构完全可以实现多工具、多步骤、多分支的 Multi-Tool Pipeline。

  • MCP 在 LangChain 中可通过 Agent + Tools + Chain 实现:

    • 多工具注册 → Agent 决策调用 → 链式或分支流程执行 → 输出聚合。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

LangChain 的 Tools 体系:给 LLM 装上手和脚
https://guoxin.wiki/posts/langchain-tools/
作者
Guoxin
发布于
2026-09-08
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Guoxin
写代码,也写思考。
公告
博客初建,笔记陆续搬家中。所有文章均经脱敏检查后发布。
分类
标签
最新动态
站点统计
文章
12
分类
6
标签
24
总字数
13,485
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Unknown CI
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录