Files
19904408334 a66a38e074 feat: 新增通用工具框架与WebSocket服务
* 新增 tools 包:统一工具定义、注册表与 Server 接口,对齐 MCP 规范
* 新增 websocket 包:泛化连接管理、心跳、并发写锁与优雅关闭
* 新增参数读取工具函数,避免类型断言静默失败
* 新增 OSS 路径识别与 JSON 扁平映射还原工具
* 修复租户 SQL 条件插入位置,正确处理 GROUP BY 与 ORDER BY 同时出现的场景
2026-08-21 09:26:35 +08:00

30 lines
982 B
Go

package tools
import "fmt"
// ToolResult 工具统一返回结构。Code=0 表示成功,非 0 为业务/内部错误码;
// 调用方(工作流前置/后置钩子、模型 function calling)统一按 Code 判断结果。
type ToolResult struct {
Code int `json:"code"` // 0=成功,非 0=失败
Message string `json:"message"` // 成功说明或错误信息
Data any `json:"data,omitempty"`
}
// 标准错误码。业务工具可自定义扩展 >500 的错误码。
const (
CodeOK = 0 // 成功
CodeInvalidArgs = 400 // 入参缺失或格式错误
CodeNotFound = 404 // 工具/数据不存在
CodeInternal = 500 // 内部执行错误
)
// OK 构造成功结果
func OK(data any) ToolResult {
return ToolResult{Code: CodeOK, Data: data}
}
// Fail 构造失败结果,message 支持 fmt 格式化
func Fail(code int, format string, args ...any) ToolResult {
return ToolResult{Code: code, Message: fmt.Sprintf(format, args...)}
}