package tools import "context" // Tool 对应 MCP 的 Tool 数据结构:name + description + inputSchema。 // 模型 function calling 通过 InputSchema 感知入参,推理中按需调用 Func。 // 若未来接远程 MCP Server,Func 由客户端统一实现,本结构不变。 type Tool struct { Name string // 工具唯一标识 Description string // 用途说明(模型必读,用于决定何时调用) Parameters map[string]any // 入参 JSON Schema Func func(ctx context.Context, args map[string]any) (ToolResult, error) } // registry 工具注册表 var registry = make(map[string]*Tool) // Register 注册工具,同名覆盖 func Register(list ...*Tool) { for _, t := range list { if t == nil || t.Name == "" { continue } registry[t.Name] = t } }