没有参数的任何AI工具中的错误,例如“tags”

编辑 - 现在我明白了,内置的 tags AI 工具也会出现这种情况,而不仅仅是我的自定义工具。请跳到我的第二篇帖子。

我有两个自定义 AI 工具 - 一个带参数,一个不带参数。两者都通过“运行测试”按钮通过。但是,当机器人尝试使用这些工具时,第一个工具有效,第二个工具则失败并出现以下错误:

我看到了故障排除技巧:https://meta.discourse.org/t/ai-bot-custom-tools/314103。

  • 测试界面显示成功。
  • 我的群组在 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 {}?

我会在这里写一个评估,感谢您的提出!

1 个赞

我有一个关于无参数工具的评估:

并且它通过了:

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。为我的自定义工具添加一个虚拟参数可以“修复”它,所以我仍然认为没有参数存在问题。

这些日志在哪里?

如果启用,帖子操作底部会有一个(i)图标