数据截至 (上游 commit e3a5b8994b30)
工具抽象:一个函数的两副面孔
工具(tool)是 agent 的「手脚」——模型说「我要搜」,真正上网的是工具。本章讲 smolagents 怎么把「一个 Python 函数」包装成 agent 能理解、能校验、能跨来源共享的东西,以及它如何同时服务两种 agent。
1. 它要解决的小问题
agent 要用工具,得先「认识」工具:名字叫什么、干什么、要什么参数、返回什么类型。这套元数据既要塞进提示词给模型看,又要在调用时校验参数对不对。手工维护「文档字符串 + 校验代码 + 提示词」三处一致很痛。smolagents 用一个 Tool 类把它们收拢到一处。