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 是一个 智能决策者,根据用户输入:
- 思考(LLM分析问题)
- 决定调用哪个 Tool
- 执行 Tool
- 收集结果并继续思考
-
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 | 封装外部能力 | ✅ 可以多工具注册 |
| Agent | LLM + 工具决策者 | ✅ 自动选择工具 |
| 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/相关文章智能推荐
1
LangChain Agent 入门:LLM + 工具集 + 推理策略
AI 与 AgentAgent 的组成部分、Zero-shot / ReAct / Plan-and-Act 策略对比,以及工具设计、内存、token 控制方面的注意事项。
2
LangChain VectorStore 的几种检索方式
AI 与 Agentsimilarity_search、带分数检索、MMR 等几种向量检索方式的差异和适用场景。
3
LangChain PromptTemplate 详解:把 Prompt 当代码管理
AI 与 Agent用模板把 Prompt 从字符串常量升级为可复用、可组合、可结构化输出的模块:占位符、FewShot、ChatPromptTemplate 与输出解析器的配合。
4
Windows 11 上封锁 Claude Code 出网:防火墙 + DNS + hosts 三层实战
运维与工具用防火墙规则、DNS 重定向和 hosts 三层手段封锁 Claude Code 的出网流量,并给出一套可验证、可回滚的完整脚本与自检流程。
5
React 学习 Day1:基础语法与整体框架(含 JS 关键基础)
前端建立对 React 的整体认识,并补齐编写 React 所必需的 JavaScript 语法基础:组件化、Props/State、JSX 与常用概念。
随机文章随机推荐














