《OpenClaw100讲》
14. OpenClaw,工具调用
有人问我,说OpenClaw和之前的AI工具,例如deepseek,豆包,有什么差异?不都是聊天,问问题,然后回复吗?
这里面的差别可大了,其中很重要的一点,就是OpenClaw可以调用工具去执行任务。比如,她会自动的调用exec,自动调用browser等工具,甚至自动调用SKILL去完成对应的工作。
好,那么问题来了,OpenClaw是怎么调用工具的?她怎么知道,要调用exec,browser,还是SKILL呢?
今天来聊聊工具调用原理。
什么是工具调用?
简单来说,就是OpenClaw根据对话内容,决定调用哪个工具、传入什么参数、怎么使用返回结果。
画外音:如果不能调用工具,OpenClaw就真的只能聊聊天,说说话了。
有了工具调用,OpenClaw就能帮我们查资料、整理文件、发送消息、写代码... 理论上,我们使用电脑能做的一切事情,她都能做了。
那么OpenClaw工具调用的过程是怎样的?
第一步,判断是否需要调用工具。
OpenClaw收到消息后,先判断这个问题,靠她自己现有的知识能否解答。
能,直接解答。
不能,就去找工具帮助自己解答。
第二步,选择工具。
首先,OpenClaw得知道自己有哪些工具,比如,上面说的:exec,browser,SKILL... 并且得知道哪个工具是干嘛。
其次,在需要使用工具时,OpenClaw会根据工具的描述,判断哪个工具适合当前任务。
比如说要系统调用,就去找exec。
比如说要访问网页,就去找browser。
比如说要寻找SKILL,就去使用find-skills去找。
第三步,执行并返回结果。
选好工具后,OpenClaw会根据任务需求,构造出合适的参数,执行工具并返回结果。工具执行完后,结果返回给OpenClaw,她再把结果组织成语言告诉我们。
那么问题来了,像exec,browser这种系统自带的工具,OpenClaw很容易知道它们的用途和参数,那第三方的SKILL,例如find-skills,OpenClaw怎么知道它是干嘛的,要传什么参数,什么时候来调用呢?仅仅凭借SKILL工具的名字find-skills吗?
并不是通过名字,SKILL是有标准,有规范的。
一个SKILL必须包含:
描述:告诉OpenClaw这个工具能干什么;
参数:告诉OpenClaw怎么传入参数;
执行逻辑:具体的实现代码。

如上图,find-skills在开头告诉了OpenClaw,自己是干嘛的,什么时候可以调用它完成任务。
这样,我们就不需要每次【明确】告诉OpenClaw:调用find-skills去查找技能。OpenClaw她能够自己理解,并选择正确的工具去调用。
你写过SKILL吗?
在今后我们自己写SKILL的过程中,描述是最重要的:描述写得好,OpenClaw才能准确判断什么时候该用这个工具;描述写得模糊,OpenClaw就会选错工具,或者干脆不知道该用哪个。
简单总结:
1. 工具调用让OpenClaw能做实事,不只是聊天;
2. 调用过程分三步:判断、选工具、构造参数执行返回;
3. SKILL描述决定了OpenClaw会不会用它;
4. 写好SKILL描述是关键。
下一讲和大家深入聊聊SKILL触发机制。
相关文章:
最近你也在玩OpenClaw吗?
夜雨聆风