LangChain 实战:工具调用与结构化输出
工具调用(Tool Calling)和结构化输出是 LangChain 让 AI 从'聊天'走向'干活'的关键能力。前者允许模型调用外部函数或 API,后者则确保返回数据符合特定格式,便于程序处理。
工具调用(Tool Calling)
当 LLM 无法直接获取实时信息(如天气、数据库内容)时,我们可以借助工具完成查询。
创建工具的三种方式
- 直接用
@tool装饰函数 最简单,适合轻量级小工具。from langchain_core.tools import tool @tool
def add(a: int, b: int) -> int: """计算两个数的和""" return a + b
2. **用 `@tool` + 自定义参数结构(Pydantic)**
参数更清晰,能写详细说明。
```python
from pydantic import BaseModel, Field
class AddInput(BaseModel):
a: int = Field(description="第一个数")
b: int = Field(description="第二个数")
@tool(args_schema=AddInput)
def add(a: int, b: int) -> int:
return a + b
- 继承
BaseTool写类 最灵活,适合复杂逻辑或异步操作。from langchain_core.tools import BaseTool class AddTool(BaseTool): name = "add_tool" description = "用于加法运算的工具" def _run(self, a: int, b: int) -> int: a + b


