Skills Compat — 技能兼容性
v1.0.0确保OpenClaw skills.md 格式同时兼容 nanobot 和 overstory。加载技能,注册工具,并在系统之间进行映射。
运行时依赖
安装命令
点击复制技能文档
技能兼容层描述 确保 OpenClaw SKILL.md 格式在 nanobot、overstory 和 Ollama 中无缝工作。发现和加载技能,解析前置内容,构建统一工具注册表,并以每个系统的本地格式导出工具定义。 架构 ┌─────────────────┐ ┌───────────────┐ │ skill_loader.py │─────▶│ SkillLoader │──▶ 解析 SKILL.md + _meta.json └─────────────────┘ └───────────────┘ │ ▼ ┌─────────────────┐ ┌───────────────┐ │ tool_registry.py │─────▶│ ToolRegistry │──▶ 统一工具目录 └─────────────────┘ └───────────────┘ │ ┌───────────┼───────────┐ ▼ ▼ ▼ nanobot overstory Ollama 格式 skill_loader.py — 发现技能目录,解析 SKILL.md 文件中的 YAML 前置内容,从 _meta.json 中提取工具定义,返回结构化的 SkillDefinition 对象。 tool_registry.py — 单例工具注册表。从技能、MCP 服务器或手动定义中注册工具。以 nanobot、overstory 或 Ollama JSON 模式格式导出完整目录。 要求 Python 3.9+ 无外部依赖(仅使用 stdlib —— 使用 json、sqlite3、pathlib、re 进行 YAML 子集解析) 命令 发现技能 python3 scripts/skill_loader.py discover --dir /path/to/skills --json 加载单个技能 python3 scripts/skill_loader.py load --skill /path/to/skills/agent-swarm --json 列出已注册工具 python3 scripts/tool_registry.py list --json python3 scripts/tool_registry.py list --capability code --json 导出工具定义 python3 scripts/tool_registry.py export --format nanobot python3 scripts/tool_registry.py export --format overstory python3 scripts/tool_registry.py export --format ollama 从技能注册工具 python3 scripts/tool_registry.py register --skill agent-swarm --dir /path/to/skills 作为 Python 模块使用 from skill_loader import SkillLoader from tool_registry import ToolRegistry loader = SkillLoader() loader.load_all("/path/to/skills") skill = loader.get_skill("agent-swarm") print(skill.name, skill.version, skill.tools) registry = ToolRegistry.instance() registry.register_skill_tools("agent-swarm", "/path/to/skills") for tool in registry.list_tools(): print(tool["name"], tool["skill"]) nanobot_tools = registry.export_for_nanobot() overstory_tools = registry.export_for_overstory() ollama_tools = registry.export_for_ollama() 技能定义格式 技能通过查找包含 SKILL.md 文件的目录来发现。前置内容块(在 --- 分隔符之间)被解析为键值对: --- name: my-skill displayName: My Skill description: 该技能的作用 version: 1.0.0 --- 如果存在 _meta.json 文件,工具名称和其他元数据将从中提取。 导出格式 nanobot [{"name": "tool_name", "skill": "skill-name", "description": "...", "parameters": {...}}] overstory [{"tool": "tool_name", "source_skill": "skill-name", "description": "...", "input_schema": {...}}] Ollama [{"type": "function", "function": {"name": "tool_name", "description": "...", "parameters": {...}}}]