最近整理了一下 Biny Agent 的工具系统。
给 Agent 增加一个工具其实不难:定义参数 Schema,注册工具,再实现执行函数。但接入 MCP、插件和各种扩展以后,工具数量越来越多,问题就变了。
只读一个文件,有必要把上百个工具的定义都交给模型吗?缺少能力时,模型能不能自己找到工具?不同来源的调用,能不能共用一套权限和执行机制?如果一次写入中途断线,又该不该重试?
我现在更关心的是,工具从被发现到真正产生副作用,中间的每一步能不能说清楚。
这篇文章就沿着这条链路,聊聊我在 Biny 中的实现和取舍。