// Package tools 提供共享的模型工具框架:工具定义、注册表与结构化返回。 // // 数据模型对齐 MCP 的 Tool 定义(name + description + inputSchema)。 // 工具是**给模型 function calling 用**的通用能力:模型在推理中动态决定是否调用, // 消费方依赖 Server 接口(List/Call)而非注册表本身,未来可无缝替换为远程 MCP Server 客户端。 // // # 分层 // // - tools(本包):Tool 定义 + 全局注册表 Register + Server 接口,纯框架,不依赖任何业务包 // - 业务侧:各服务在自身代码中定义**通用**工具(含执行实现 Func),通过 init() 注册进共享注册表; // 工具的"使用"(如 ReAct 执行循环)也由业务服务基于 Server.Call 自行编排 // // 非通用、绑定到固定业务场景的处理逻辑(如工作流节点的前后置钩子)**不属于工具**, // 应由各业务在自己的编排层维护,不进入本注册表。 // // # 消费路径 // // 注册表内工具由各业务服务的模型调用方消费:模型 function calling 模式下 // 经 Server.List 获取全部工具定义交给模型,按返回的 ToolCall 经 Server.Call 执行。 package tools