首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >LangChain >LangChain 的工具调用(Tool Calling)机制是如何运作的?

LangChain 的工具调用(Tool Calling)机制是如何运作的?

词条归属:LangChain

1. Tool 的定义方式

LangChain 通过 @tool 装饰器将普通 Python 函数转化为 LLM 可调用的工具。装饰器自动提取函数的 docstring 作为工具描述,利用类型注解定义参数 schema,LLM 通过阅读工具描述来决定是否以及如何调用该工具:

代码语言:javascript
复制
from langchain_core.tools import tool

@tool
def get_weather(city: str, date: str = "today") -> str:
    """获取指定城市和日期的天气信息"""
    ...

2. 工具调用的执行流程

  • LLM 在推理阶段分析用户请求和工具描述,决定是否需要调用工具以及调用哪个工具
  • LLM 输出包含工具名称和参数的结构化消息(tool_calls)
  • AgentExecutor 解析 tool_calls,找到对应的 Python 函数并传入参数执行
  • 工具执行结果封装为 ToolMessage,回传给 LLM 作为下一轮推理的输入
  • LLM 根据工具返回结果生成最终回答或继续调用其他工具

3. 高级工具特性

  • 并行工具调用:LLM 可以在一条消息中同时发出多个 tool_calls,AgentExecutor 会并行执行这些独立工具调用,显著降低端到端延迟
  • 异步工具调用:支持 asyncio 实现的异步工具执行,进一步提升并发性能
  • 工具路由筛选:使用 RouterToolkit 或自定义 ToolSelector 根据用户意图预筛工具子集,避免 LLM 在大量工具中盲目尝试
  • 工具结果验证:在 Observation 后插入校验链(如 JSON Schema 解析器),过滤非法返回防止下游工具崩溃

4. 工具安全与权限控制

v1.x 版本增强了工具调用的安全机制,包括工具级别的权限控制和沙箱隔离。企业场景中可通过中间件在 wrap_tool_call 钩子中拦截工具执行结果,实施内容审查和数据脱敏

相关文章
Instagram的排名算法是如何运作的?
在这款应用于2016年7月抛弃了按时间顺序的算法之前,Instagram用户在所有帖子和好友的帖子中都有70%的丢失。尽管人们对排序的混乱反应强烈,但Instagram现在表示,相关性排序已经导致8亿
程序你好
2018-07-20
2.2K0
运输业的EDI是如何运作的?
今天开始讲解关于运输中的电子数据交换,也就是运输业使用EDI的案例。Cerasis——一家第三方物流公司开发了专有的基于网络的运输管理系统,为托运人提供技术解决方案,使他们可以保持尽可能高的效率,并可以随时获取信息。
知行软件EDI
2021-01-12
1.5K0
从Function Calling到MCP:AI工具调用的范式级变化
作者:HOS(安全风信子) 日期:2026-01-01 来源平台:GitHub 摘要: Function Calling曾经是AI工具调用的主流方式,但随着AI应用的复杂化和工具生态的壮大,其局限性日益凸显。MCP(Model Communication Protocol)v2.0的出现,带来了AI工具调用的范式级变化。本文深入分析Function Calling的局限,详解MCP如何通过动态能力协商、分布式架构和生态集成,实现从单一工具调用到AI工具生态中枢的转变。通过对比分析、架构设计和代码实现,揭示MCP如何解决Function Calling的核心痛点,并为未来Agent时代的工具调用奠定基础。
安全风信子
2026-01-03
8920
你知道Thread线程是如何运作的吗?
我们在Android开发过程中,几乎都离不开线程。但是你对线程的了解有多少呢?它完美运行的背后,究竟隐藏了多少不为人知的秘密呢?线程间互通暗语,传递信息究竟是如何做到的呢?Looper、Handler、MessageQueue究竟在这背后进行了怎样的运作。本期,让我们一起从Thread开始,逐步探寻这个完美的线程链背后的秘密。
陈宇明
2020-12-15
9950
slf4j中的桥接器是如何运作的?
阅读分析slf4j的日志源码,发现其中涵盖了许多知识点和优秀的设计,关键它们都是活生生的实践案例。写成系列文章与大家分享,欢迎持续关注。第4篇。
程序新视界
2020-12-01
1.4K0
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券