大模型 Tool Call 描述太占上下文的问题解决了?

大模型 Tool Call 描述太占上下文的问题解决了?


Manus的后端负责人刚在reddit上发的一篇帖子爆火, 我看完了赶紧给大家整理下他做了什么.

大家都知道大模型配置了 tool call 就可以使用本地工具了, 而且可以跟操作系统交互, 访问本地资源从而完成更复杂的任务. 比如你就可以把视频素材上传到部署了openclaw的电脑, 然后让它剪视频.

但是想要用工具就要把所有的工具都是干什么的写入到 system prompt 中. 一旦工具很多, 就会造成 prompt 失焦, 大模型会忙于选择工具而不是真正的解决问题.

于是这个作者提出了一个全新方法, 不是给AI一堆散的工具, 而是只给一个 `run(command="...")` 这样的调用模式. 文件操作也好, memory 也好, browser 也好, clip 调用也好, 最后都变成统一命令空间里的 command.

而且这个调用可以利用UNIX管道命令符实现复杂的调用, 最终就会变为 `run(command="cat 脚本.md | grep "分镜A" | find ./分镜A.* | ffmpeg ....")` 这样来剪辑视频

这样模型不再是在很多 API 之间跳来跳去, 而是在一个自己本来就很熟的 CLI 语境里, 直接表达“我要完成什么流程”.

为什么这么做效果会好呢? 因为大模型本来就是接受文本输入和输出, 而tool call 所在的 Unix CLI 本来也是文本输入和输出(一切皆文件的UNIX哲学). 而 shell 命令则是在所有大模型训练中先天已经训练好的. 所以对大模型来说, 命令行比一大坨 JSON schema 更自然.

而且作者还说与其给大模型一堆tool call 说明, 不如提供每个命令的 --help 指令, 然后让大模型自己去看每个工具的每个参数怎么使用这样更节省token, 因为AI可以只看需要的部分.

所以看懂了吗? 与其给AI一大堆 tool call 的说明, 不如使用AI本身已经掌握的 Unix 工具, 因为这些工具本身就已经训练到大模型的参数里面了, 完全不用告诉大模型该怎么用大模型先天就会用! (魔法往往就这么简单...)

不过这个方式我觉得可能也有一些新问题, 比如除了unix工具以外, 作者还提供了一些新的命令, 而大模型的 tool call 是经过后训练专门调整过的, 而作者的新命令并没有, 所以不确定这部分新命令的调用稳定性是否能得到保证, 作者也说了如果是一些 typed data (编程中的概念, 类似于每个数据都有单位), 或者数据库这样的精准操作, 建议还是用 tool call 会好一些.

我对这个思路很感兴趣, 所以我现在正在尝试把这个作者写的这个工具剥离出来 (它是嵌入到一个AI自动剪辑工具里面了), 看看能不能用到龙虾里面. 如果我测试完效果不错我会放出来个 skill 给大家.

#HOW I AI##上下文##toolcall##openclaw##AIAgent#














分类