ResolveShellTool 找到 tools 列表里第一个 shell 工具,返回 (name, param)。 没找到就返回 ("", "")。
(tools []official.Tool)
| 22 | // ResolveShellTool 找到 tools 列表里第一个 shell 工具,返回 (name, param)。 |
| 23 | // 没找到就返回 ("", "")。 |
| 24 | func ResolveShellTool(tools []official.Tool) (string, string) { |
| 25 | for _, t := range tools { |
| 26 | if t.Type != "function" { |
| 27 | continue |
| 28 | } |
| 29 | name := strings.ToLower(t.Function.Name) |
| 30 | if !contains(ShellToolNames, name) { |
| 31 | continue |
| 32 | } |
| 33 | param := pickShellParam(t.Function.Parameters) |
| 34 | return t.Function.Name, param |
| 35 | } |
| 36 | return "", "" |
| 37 | } |
| 38 | |
| 39 | func pickShellParam(paramsJSON json.RawMessage) string { |
| 40 | if len(paramsJSON) == 0 { |