是使用 openai api 的 tools 参数,还是自己写提示词

82 天前
 connecting

各位大佬,请问你们聊天调用工具,是使用 openai api 的 tools 参数,还是自己写提示词呢?

哪个效果好?我看到 cursor 的提示词自己描述了 functions ,好像效果也不错。

1740 次点击
所在节点    程序员
13 条回复
wentx
82 天前
tools + prompt
connecting
82 天前
@wentx openai 的 tools ,是不是只会返回一个 tools_call? 我发现理应调用 N 个的,一次次给我。这样 token 多算了很多。
wentx
82 天前
@connecting #2 这个跟模型有关系,还有 prompt 也有一定的关系,如果你是要让他一次返回多个 tools 的话,可以在 prompt 里面描述一下你的具体需求
razertory
82 天前
典型的非 tool call 的实现比如 cline 的这段代码 https://github.com/cline/cline/blob/main/src/core/prompts/system.ts#L27

如果真需要返回多个,前提是你的多个 tool-call 没有先后依赖关系。这种情况下要么走 cline 这种方式,通过魔改 prompt 也能实现,要么把这些 tools 合并成一个方法,前提是工具提供方配合。
connecting
82 天前
@razertory 懂了,感谢,研究一下,应该会合并一下看看,写 prompt 应该要调很久
chairuosen
82 天前
自己写提示词协议,自己解析。对接豆包 1.6 发现它不小的概率不按照 openai 的格式返回导致解不出 tools_call ,只能一个模型写一个对应的 adaptor ,豆包大概率会返回<|FunctionCallBegin|><|FunctionCallEnd|> 这个格式,可能是它训练时加进去的私有协议,只能跟它写一样的不会出错
zuou
82 天前
可以试试 Qwen3-235B-A22B-2507 ,这个模型会“疯狂”调用工具,批量调用和多轮调用效果都挺好,应该是专门训练的
@connecting
blakezhaothinks
82 天前
我们这边是 tools 定义严格的 schema ,在 prompt 中告诉模型什么场景调用什么工具。
NizumaEiji
82 天前
tools 也就是 function call 吧
这个现在主流的 llm api 都应该是支持的吧 手写 prompt 再解析交互就有点复杂了
mmdsun
81 天前
模型不支持 tools call 可以这么来。
SSang
81 天前
先用默认的呀,哪个你觉得不满意再去调整他
EscYezi
81 天前
最好两个都有,提示词里引导 llm 何时/如何调用工具,定义写在 tools 里。
Seulgi
80 天前
用的框架是把 tools 按 schema 组装到 prompt 里。react 那种模型。我觉得有点垃圾,因为一次 tool call ,tool 结果会再次组装到 prompt ,每次 tool call 都会把整个 prompt 重新发一次。我觉得这个好像是不是不太对,太浪费 token 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1149236

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX