OpenClaw(龙虾)的核心机制不仅仅是 Function Calling,它比 Function Calling 更进了一步。

准确地说,OpenClaw 采用的是 “基于自然语言定义的 Skill(技能)” 机制,而 Function Calling 只是它底层实现的一部分。

为了让你彻底明白这两者的区别,我们可以从定义方式执行逻辑灵活性三个维度来对比:

1. 核心定义的区别

  • Function Calling (OpenAI 标准):
    • 是“死”的接口契约。
    • 你需要用严格的 JSON Schema 来定义函数。比如:name: "get_weather", parameters: { "location": "string" }
    • 模型只能在你规定的框框里填空。如果你没定义这个参数,模型就填不了。
  • OpenClaw (龙虾) 的 Skill:
    • 是“活”的说明书。
    • 它是用 Markdown (自然语言) 写的。你告诉模型:“这是一个关于 GitHub 的技能,你可以用 gh 命令行工具来操作,如果遇到报错就重试...”。
    • 模型是“读”懂了这份说明书,然后自己决定怎么用底层的工具(如 exec)去执行。

2. 执行逻辑的对比

维度 Function Calling OpenClaw (Skill)
定义格式 JSON Schema (机器可读,严格类型) Markdown (人类可读,自然语言)
谁在控制 代码驱动。模型只负责填参数,具体执行逻辑完全在你的代码里写死。 模型驱动。模型读取说明书后,自主决定调用哪些底层工具、按什么顺序调用。
灵活性 。只能处理预定义好的场景,参数必须匹配。 。模型可以根据说明书灵活应对未预料的场景(比如处理报错)。
底层实现 你的 Python/JS 代码直接执行。 模型调用底层的通用工具(如 execweb_fetch),这些底层工具才用了 Function Calling。

3. 形象的比喻

  • Function Calling 就像“自动贩卖机”
    • 你(模型)只能按按钮(A1, A2),机器(代码)吐出对应的货。你不能要求它卖说明书里没写的东西,也不能教它怎么找零钱。
  • OpenClaw 的 Skill 就像“给实习生一本操作手册”
    • 你给实习生(模型)一本《GitHub 操作指南》(Skill.md)。
    • 你说:“帮我把这个 PR 合并了。”
    • 实习生读懂了手册,自己拿起键盘(底层工具 exec),输入命令,如果报错了,它还会根据手册里的提示自己修。

总结

OpenClaw 的架构其实是两层抽象

  1. 底层(Tool):使用了类似 Function Calling 的机制,暴露出 exec(执行命令)、file_read(读文件)等原子能力。
  2. 上层(Skill):这是 OpenClaw 的创新。它用自然语言把这些原子能力包装成“业务场景”。

所以,OpenClaw 不是简单的 Function Calling,它是“用自然语言编程”来指挥 Function Calling。 这也是为什么 OpenClaw 能比传统 API 更灵活地处理复杂任务的原因。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐