编辑 - 现在我明白了,内置的 tags AI 工具也会出现这种情况,而不仅仅是我的自定义工具。请跳到我的第二篇帖子。
我有两个自定义 AI 工具 - 一个带参数,一个不带参数。两者都通过“运行测试”按钮通过。但是,当机器人尝试使用这些工具时,第一个工具有效,第二个工具则失败并出现以下错误:
我看到了故障排除技巧:https://meta.discourse.org/t/ai-bot-custom-tools/314103。
Discourse:
使用测试界面确保它能按预期处理您的输入。
确保您的群组在 ai_bot_debugging_allowed_groups 中。此群组的成员可以完全访问机器人记录;您可以在那里查看 AI 日志。
如果发生任何意外情况,请访问 https://SITENAME/logs 查看错误。
测试界面显示成功。
我的群组在 ai_bot_debugging_allowed_groups 中,但我不知道机器人记录在哪里。
/logs 只显示上面显示的相同错误。
我尝试添加一个虚拟参数,结果相同。
已更新至 3.5.0.beta1-dev。使用 Gemini 2.0 Flash。
function invoke(params) {
const url = `https://example.com/investments/sponsors`;
let result = http.get(url);
return result;
}
function details() {
return "返回赞助商。";
}
经过大量实验,我发现内置的 tags 工具也出现了同样的错误,所以我的自定义工具没有问题。所有接受参数的工具都能正常工作。tags 和我的自定义工具的共同点是它们都不接受任何参数 。
我相信机器人需要非常智能才能调用一个不带参数的函数。gpt-4o 能够毫无问题地使用这些工具。但 flash 1.5 和 2.0 以及 haiku 总是失败。Sonnet 通常会失败,但有一次成功了。
错误总是以下之一:
或者:
空字符串不是有效的 JSON 字符串。
我的感觉是,机器人不确定该传递什么给一个不带参数的函数——null?空字符串?空对象?空 JSON {}?
sam
(Sam Saffron)
2025 年2 月 24 日 05:37
4
我有一个关于无参数工具的评估:
并且它通过了:
sam@arch evals % ./run -e no_params_tool
Running evaluation 'no_params_tool'
GPT-4o: Passed 🟢
GPT-4o-mini: Passed 🟢
Claude 3.5 Haiku: Passed 🟢
Claude 3.5 Sonnet: Passed 🟢
Gemini 2.0 Flash: Passed 🟢
Gemini 2.0 pro: Passed 🟢
你是在最新版本上测试的吗?
1 个赞
我使用的是 3.5.0.beta1-dev。为我的自定义工具添加一个虚拟参数可以“修复”它,所以我仍然认为没有参数存在问题。
这些日志在哪里?