OpenClaw(以及类似的基于 LLM 的代理框架如 OpenHands/OpenDevin)能够高效运行得益于两个方面所用的云端智能体(chatGPT、Gmini、Claude或国内的)和本地的技能(Skills,养龙虾的主要工作就是之一就是编辑调试各种Skills),其中Skills根据其来源、作用范围、优先级和修改权限被划分为不同的层级。BUILT_IN SKILLSWORKSPACE SKILLSEXTRA SKILLS(通常指用户自定义或社区安装的扩展技能)构成了 OpenClaw 的能力金字塔。以下是它们的详细区别、联系及最佳使用场景:

一、核心区别对比表

特性 BUILT_IN SKILLS (内置技能) WORKSPACE SKILLS (工作区技能) EXTRA SKILLS (扩展/自定义技能)
定义 系统核心自带的通用能力,随软件安装默认存在。 当前项目专属的技能,仅在当前打开的项目目录中生效。 用户全局安装或从社区下载的第三方技能,位于用户主目录。
存储位置 系统安装目录 (如 /usr/lib/openclaw/skills 或包内资源) 当前项目根目录下的 .openclaw/skills/ 文件夹 用户主目录 ~/.openclaw/skills/
作用范围 全局。对所有项目都可用。 局部。仅对当前打开的特定项目(Workspace)有效。 全局。对所有项目可用,但优先级低于工作区技能。
修改权限 只读。不建议直接修改,升级时会覆盖。 完全可控。随项目代码一起版本控制 (Git)。 可编辑。用户可自由修改、删除或更新。
典型用途 基础文件操作、Shell 执行、代码搜索、基础 Git 命令。 项目特有的构建脚本、内部 API 调用规范、特定测试流程。 行业专用工具(如 SQL 优化器)、个人偏好模板、社区热门插件。
优先级 最低 (作为兜底能力)。 最高 (覆盖同名内置或扩展技能)。 中等 (高于内置,低于工作区)。

二、详细解析与联系

1. BUILT_IN SKILLS (内置技能)

  • 角色:这是 OpenClaw 的“本能”。没有它们,AI 甚至无法读取文件或运行基本命令。
  • 特点:
    • 稳定性极高:经过官方严格测试,保证基础功能不报错。
    • 不可见性:通常不需要用户关心,除非你想查看底层实现逻辑。
    • 示例:read_file, write_file, run_shell_command, search_code。
联系:它们是其他所有技能的基石。自定义技能(Extra/Workspace)往往是在调用这些内置技能的基础上封装更复杂的逻辑。

2. WORKSPACE SKILLS (工作区技能)

  • 角色:这是项目的“私有知识库”或“项目特定规则”。
  • 核心价值:上下文隔离。
    • 假设你在开发项目 A(一个 Django 网站)和项目 B(一个 React 前端)。
    • 项目 A 需要一个技能叫 run_migrations (执行 Django 迁移)。
    • 项目 B 需要一个技能叫 build_bundle (打包 React)。
    • 如果你把这两个都放在全局(Extra),AI 可能会混淆。放在 Workspace Skills 中,当你打开项目 A 时,AI 只知道 run_migrations;打 开项目 B 时,只知道 build_bundle。
  • 最佳实践:
    • 将项目的部署脚本、特定的代码风格指南、内部文档查询逻辑定义为 Workspace Skills。
    • 将这些技能文件提交到 Git 仓库,这样团队成员克隆项目后,OpenClaw 自动拥有该项目的专属能力,无需手动配置。

3. EXTRA SKILLS (扩展/自定义技能)

  • 角色:用户的“个人工具箱”或“社区插件”。
  • 来源:
    • 用户自己编写并放在 ~/.openclaw/skills/ 的通用技能。
    • 通过 openclaw skills install 从 ClawHub 安装的社区技能。
  • 特点:
    • 复用性强:比如你写了一个“将代码转换为中文注释”的技能,你希望它在所有项目中都能用,就放在这里。
    • 易于管理:可以独立于任何项目进行升级或卸载。
联系:它是连接“通用能力”和“项目特需”的桥梁。如果某个 Workspace Skill 变得非常通用,你可以把它移动到 Extra 目录供所有项目使用。

三、加载优先级与冲突解决机制

当 AI 需要执行一个任务时,OpenClaw 按以下顺序查找技能(就近原则):

  • 检查 WORKSPACE SKILLS:
    • 如果在当前项目 .openclaw/skills/ 下找到了名为 X 的技能,立即使用它,忽略其他所有同名技能。
    • 场景:项目 A 定制了特殊的 test 命令,项目 B 使用标准的。
  • 检查 EXTRA SKILLS:
    • 如果工作区没找到,去用户主目录 ~/.openclaw/skills/ 找。
    • 场景:你安装了一个通用的 github-pr-creator 技能,所有项目都能用,除非某个项目有自己特殊的 PR 流程(被步骤 1 覆盖)。
  • 检查 BUILT_IN SKILLS:
    • 如果前两者都没找到,最后使用系统内置的基础技能。
    • 场景:基础的 ls 或 cat 操作。

💡 技巧:如何利用优先级进行“覆写” (Override)

如果你想临时改变某个全局技能的行为(例如,全局的 commit 技能是标准的,但在当前项目中你想强制加上特定的 Commit Message 格式):

  • 只需在当前项目的 .openclaw/skills/ 目录下创建一个同名的 commit 技能文件。
  • OpenClaw 会自动优先使用这个本地版本,而不会影响其他项目。

四、总结与建议

  • 不要动 Built-in:除非你是开发者在贡献代码,否则永远不要尝试修改内置技能。
  • 项目特有逻辑 -> Workspace:凡是跟当前代码库强相关的(构建、测试、部署、内部规范),一定要放在 Workspace Skills 里,并纳入版本控制。
  • 个人通用工具 -> Extra:凡是你希望“走到哪用到哪”的工具(如翻译、格式化、通用爬虫),放在 Extra Skills 里。
  • 调试思路:如果技能行为不符合预期,先检查是不是在 Workspace 里有一个旧的同名技能覆盖了你的全局新技能。

理解这三者的分层,是掌握 OpenClaw 高级用法、实现团队协作标准化以及构建复杂 Agent 工作流的关键。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐