Skills(Moltbot)
技能即自定义工具;放入 ~/clawd/skills/ 即可。Moltbot 使用 AgentSkills 兼容的技能目录,教代理如何使用工具。每个技能是一个包含带 YAML frontmatter 的 SKILL.md 及说明的目录。Moltbot 加载内置技能与可选本地覆盖,并在加载时根据环境、配置与二进制存在情况过滤。
位置与优先级
技能从三处加载:
- 内置技能:随安装提供(npm 包或 Moltbot.app)
- 托管/本地技能:
~/.clawdbot/skills - 工作区技能:
<workspace>/skills
同名冲突时优先级:<workspace>/skills(最高)→ ~/.clawdbot/skills → 内置技能(最低)。此外可通过 ~/.clawdbot/moltbot.json 中的 skills.load.extraDirs 配置额外技能目录(优先级最低)。
每代理与共享技能
在多代理场景下,每个代理有独立工作区,因此:
- 每代理技能位于该代理的
<workspace>/skills,仅对该代理可见。 - 共享技能位于
~/.clawdbot/skills(托管/本地),对同一机器上所有代理可见。 - 也可通过
skills.load.extraDirs(最低优先级)添加共享目录。
同名技能多处存在时,按上述优先级解析。
插件与技能
插件可通过在 moltbot.plugin.json 中列出 skills 目录(相对于插件根路径)随插件提供技能。插件启用时加载这些技能,并参与正常技能优先级。可通过插件配置条目上的 metadata.moltbot.requires.config 做门控。发现与配置见 Plugins,工具表面见 Tools。
ClawdHub(安装与同步)
ClawdHub 是 Moltbot 的公共技能注册表。浏览 https://clawdhub.com 。用于发现、安装、更新与备份技能。完整指南:ClawdHub。常用流程:将技能安装到工作区:clawdhub install <skill-slug>;更新已安装技能:clawdhub update --all;同步(扫描 + 发布更新):clawdhub sync --all。默认 clawdhub 安装到当前工作目录下的 ./skills(或回退到已配置的 Moltbot 工作区),Moltbot 在下一会话中从 <workspace>/skills 加载。
安全说明
- 将第三方技能视为可信代码;启用前请阅读。
- 对不可信输入与高风险工具优先使用沙箱运行。见 沙箱。
skills.entries.*.env与skills.entries.*.apiKey将秘密注入该代理当次运行的主机进程(非沙箱)。请勿将秘密放入提示或日志。- 更全面的威胁模型与检查清单见 安全。
格式(AgentSkills + Pi 兼容)
SKILL.md 至少需包含:
---
name: nano-banana-pro
description: Generate or edit images via Gemini 3 Pro Image
---说明:遵循 AgentSkills 的布局与意图。内嵌代理使用的解析器仅支持单行 frontmatter 键。metadata 应为单行 JSON 对象。在说明中用 {baseDir} 引用技能目录路径。可选 frontmatter 键:homepage、user-invocable、disable-model-invocation、command-dispatch、command-tool、command-arg-mode 等。
门控(加载时过滤)
Moltbot 在加载时使用 metadata(单行 JSON)过滤技能。metadata.moltbot 下字段:always: true、emoji、homepage、os、requires.bins、requires.anyBins、requires.env、requires.config、primaryEnv、install 等。沙箱说明:requires.bins 在主机上于技能加载时检查。若代理处于沙箱,二进制也须在容器内存在;可通过 agents.defaults.sandbox.docker.setupCommand(或自定义镜像)安装。setupCommand 在容器创建后运行一次。包安装还需网络出口、可写根文件系统与沙箱内 root 用户。
配置覆盖(~/.clawdbot/moltbot.json)
内置/托管技能可开关并注入 env:
{
skills: {
entries: {
"nano-banana-pro": {
enabled: true,
apiKey: "GEMINI_KEY_HERE",
env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" },
config: { endpoint: "https://example.invalid", model: "nano-pro" }
},
peekaboo: { enabled: true },
sag: { enabled: false }
}
}
}规则:enabled: false 可禁用已内置/安装的技能。env 仅在进程未设置该变量时注入。apiKey 为声明了 metadata.moltbot.primaryEnv 的技能提供便利。config 为可选的自定义每技能字段袋。allowBundled 为仅内置技能的可选白名单;若设置,仅列表中的内置技能可用(托管/工作区技能不受影响)。
环境注入(每次代理运行)
代理运行开始时,Moltbot:1. 读取技能元数据;2. 将 skills.entries.<key>.env 或 skills.entries.<key>.apiKey 应用到 process.env;3. 用符合条件的技能构建系统提示;4. 运行结束后恢复原环境。作用域为单次代理运行,非全局 shell 环境。
会话快照(性能)
Moltbot 在会话开始时对符合条件的技能做快照,并在同一会话的后续轮次复用。技能或配置变更在下一新会话生效。启用技能监视器或出现新的符合条件的远程节点时,也可在会话中途刷新(热重载:下次代理轮次使用刷新后的列表)。
远程 macOS 节点(Linux 网关)
若网关在 Linux 上运行但已连接 macOS 节点且允许 system.run(Exec 审批安全未设为 deny),当该节点上存在所需二进制时,Moltbot 可将仅 macOS 技能视为符合条件。代理应通过 nodes 工具(通常 nodes.run)在该节点执行这些技能。这依赖节点上报其命令支持及通过 system.run 的 bin 探测。若 macOS 节点之后离线,技能仍显示;调用可能失败直到节点重连。
技能监视器(自动刷新)
默认 Moltbot 监视技能目录,在 SKILL.md 变更时更新技能快照。在 skills.load 下配置:
{
skills: {
load: {
watch: true,
watchDebounceMs: 250
}
}
}Token 影响(技能列表)
当技能符合条件时,Moltbot 向系统提示注入紧凑的 XML 技能列表(通过 pi-coding-agent 的 formatSkillsForPrompt)。开销确定:基础开销(仅当 ≥1 个技能时):195 字符。每技能:97 字符 + XML 转义后的 <name>、<description>、<location> 长度。公式(字符):total = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(location_escaped))。XML 转义会扩大 & < > " ' 等,增加长度。Token 数因模型分词器而异;粗略按 OpenAI 风格约 4 字符/token,即每技能约 97 字符 ≈ 24 token 再加实际字段长度。
托管技能生命周期
Moltbot 随安装提供一组内置技能。~/.clawdbot/skills 用于本地覆盖(例如在不改内置副本的情况下固定或修补某技能)。工作区技能归用户所有,同名时覆盖上述两者。
配置参考
完整配置结构见 Skills 配置。
寻找更多技能?
浏览 https://clawdhub.com 。