七、LangChain Tool类参数对接机制解析:基于Pydantic的类型安全与流程实现
LangChain 的 Tool
类(包括 BaseTool
和 StructuredTool
)通过 参数校验、输入解析、函数调用 的流程,将外部函数与 Agent 的逻辑对接。以下是其内部逻辑的详细解析:
1. 工具与函数对接的核心机制
(1) 工具的定义方式
LangChain 提供了两种主要方式定义工具:
- 继承
BaseTool
:手动实现_run
方法。 - 使用
StructuredTool
或装饰器:通过函数类型注解自动生成参数校验。
(2) 参数校验的核心:args_schema
无论是哪种方式,工具的参数校验均依赖 args_schema
属性,它通常是一个 Pydantic 模型,定义了参数的类型、名称和验证规则。
2. 具体对接流程
步骤 1:定义参数校验模型
通过 Pydantic 定义参数结构,确保输入参数的类型和格式正确。
from pydantic import BaseModel, Fieldclass MultiplyInput(BaseModel):a: float