
各位大佬,请问你们聊天调用工具,是使用 openai api 的 tools 参数,还是自己写提示词呢?
哪个效果好?我看到 cursor 的提示词自己描述了 functions ,好像效果也不错。
1 wentx 2025 年 8 月 1 日 tools + prompt |
2 connecting OP @wentx openai 的 tools ,是不是只会返回一个 tools_call? 我发现理应调用 N 个的,一次次给我。这样 token 多算了很多。 |
3 wentx 2025 年 8 月 1 日 @connecting #2 这个跟模型有关系,还有 prompt 也有一定的关系,如果你是要让他一次返回多个 tools 的话,可以在 prompt 里面描述一下你的具体需求 |
4 razertory 2025 年 8 月 1 日 典型的非 tool call 的实现比如 cline 的这段代码 https://github.com/cline/cline/blob/main/src/core/prompts/system.ts#L27 。 如果真需要返回多个,前提是你的多个 tool-call 没有先后依赖关系。这种情况下要么走 cline 这种方式,通过魔改 prompt 也能实现,要么把这些 tools 合并成一个方法,前提是工具提供方配合。 |
5 connecting OP @razertory 懂了,感谢,研究一下,应该会合并一下看看,写 prompt 应该要调很久 |
6 chairuosen 2025 年 8 月 1 日 自己写提示词协议,自己解析。对接豆包 1.6 发现它不小的概率不按照 openai 的格式返回导致解不出 tools_call ,只能一个模型写一个对应的 adaptor ,豆包大概率会返回<|FunctionCallBegin|><|FunctionCallEnd|> 这个格式,可能是它训练时加进去的私有协议,只能跟它写一样的不会出错 |
7 zuou 2025 年 8 月 1 日 可以试试 Qwen3-235B-A22B-2507 ,这个模型会“疯狂”调用工具,批量调用和多轮调用效果都挺好,应该是专门训练的 @connecting |
8 blakezhaothinks 2025 年 8 月 1 日 我们这边是 tools 定义严格的 schema ,在 prompt 中告诉模型什么场景调用什么工具。 |