多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

远程 Skills 快速入门:为 edict 三省六部 Multi-Agent 系统按需装载外部技能

远程 Skills 快速入门:为 edict 三省六部 Multi-Agent 系统按需装载外部技能 人工智能大模型AI Agent多智能体Agent 编排后端【免费下载链接】edict️ 三省六部制 · OpenClaw Multi-Agent Orchestration System — 9 specialized AI agents with real-time dashboard, model config, and full audit trails项目地址https://gitcode.com/gh_mirrors/edic/edict点击查看免费下载本指南面向 edict三省六部 · OpenClaw Multi-Agent Orchestration System的使用者讲解如何在不手动复制文件的前提下通过网络为指定 Agent门下省、中书省、尚书省等动态添加、更新、移除远程 Skill并覆盖 CLI、看板 UI 与 REST API 三种操作方式。读完本文你将能在 5 分钟内完成一次远程 Skill 的完整生命周期管理添加 → 列表 → 查看 → 更新 → 移除并掌握自定义 Skills Hub 的构建与导入方法。快速体验5 分钟跑通一条远程 Skill远程 Skill 的完整链路由三部分组成看板服务器提供 UI 与 API、skill_manager.py 命令行工具提供 CLI与 OpenClaw 的 workspace 目录存储落地文件。下面从启动服务器开始逐步演示。1. 启动看板服务器# 确保你在项目根目录 python3 dashboard/server.py # 输出: 三省六部看板启动 → http://127.0.0.1:7891看板服务器默认监听7891端口启动入口位于 dashboard/server.py。如需更换端口可使用--port参数服务端代码在 dashboard/server.py 中解析--port默认值7891同时_DEFAULT_ORIGINS中已预置http://127.0.0.1:7891与http://localhost:7891两个默认 CORS 来源。2. 通过 CLI 添加默认 Skill# 为门下省添加 MiniMax CLI skill python3 scripts/skill_manager.py add-remote \ --agent menxia \ --name mmx_cli \ --source https://raw.githubusercontent.com/MiniMax-AI/cli/main/skill/SKILL.md \ --description MiniMax 多模态 CLI 技能 # 输出: # ⏳ 正在从 https://raw.githubusercontent.com/... 下载... # ✅ 技能 mmx_cli 已添加到 menxia # 路径: /Users/xxx/.openclaw/workspace-menxia/skills/mmx_cli/SKILL.md # 大小: 14655 字节add-remote命令的核心逻辑在 scripts/skill_manager.py 的add_remote()中先校验agent_id与name仅允许字母、数字、下划线、连字符与汉字见 utils.py 的 safe_name再以https://raw.githubusercontent.com/...为源下载 SKILL.md 内容写入~/.openclaw/workspace-agent/skills/name/SKILL.md并生成一份.source.json记录源 URL、描述、时间戳与校验和。下载支持最多 3 次重试、单次 30 秒超时、文件最大 10MB见 _download_file。路径说明~/.openclaw即 OpenClaw 的 Home 目录可通过环境变量OPENCLAW_HOME覆盖参考 utils.py。3. 列出所有远程 Skillspython3 scripts/skill_manager.py list-remote # 输出: # 共 1 个远程 skills # # Agent | Skill 名称 | 描述 | 添加时间 # ------------|----------------------|--------------------------------|---------- # menxia | mmx_cli | MiniMax 多模态 CLI 技能 | 2026-03-02list-remote会扫描~/.openclaw下所有workspace-*目录中的skills/name/.source.json仅列出带源信息的远程 Skill本地手工创建的 Skill 不会出现。实现见 list_remote。4. 通过 API 查看结构化响应curl http://localhost:7891/api/remote-skills-list | jq . # 输出: # { # ok: true, # remoteSkills: [ # { # skillName: mmx_cli, # agentId: menxia, # sourceUrl: https://raw.githubusercontent.com/..., # description: MiniMax 多模态 CLI 技能, # localPath: /Users/xxx/.openclaw/workspace-menxia/skills/mmx_cli/SKILL.md, # addedAt: 2026-03-02T14:30:00Z, # lastUpdated: 2026-03-02T14:30:00Z, # status: valid # } # ], # count: 1, # listedAt: 2026-03-02T14:35:00Z # }status字段由服务端实时判定SKILL.md文件存在即为valid否则为not-found实现见 get_remote_skills_list。常见操作一键导入默认 Skillspython3 scripts/skill_manager.py import-official-hub \ --agents menxia,shangshu这会为指定 Agent 添加默认可用的mmx_cliskill。旧的openclaw-ai/skills-hub仓库当前不可用因此不再作为默认官方源——这一点已有单元测试锁定tests/test_skill_manager.py 断言默认源不再包含openclaw-ai/skills-hub的 URL且mmx_cli仍在官方源清单中。默认源清单定义在 OFFICIAL_SKILLS_HUB。若你维护自己的 Skills Hub可以通过环境变量或本地配置指定export OPENCLAW_SKILLS_HUB_BASEhttps://your-hub/raw-base # 或 echo https://your-hub/raw-base ~/.openclaw/skills-hub-url设置后import-official-hub会按base/skill_name/SKILL.md的规则解析code_review、api_design、security_audit、data_analysis、doc_generation、test_framework等传统 skill 名称并按照内置的 SKILL_AGENT_MAPPING 推荐 Agent 组合例如code_review→ 兵部/刑部/门下省mmx_cli→ 门下省/尚书省。不指定--agents时将使用该映射的推荐 Agent。Hub 地址的读取逻辑见 _get_configured_hub_base对应的测试覆盖见 tests/test_skill_manager.py。更新某个 Skill 到最新版本python3 scripts/skill_manager.py update-remote \ --agent menxia \ --name mmx_cli # 输出: # ⏳ 正在从 https://raw.githubusercontent.com/... 下载... # ✅ 技能 mmx_cli 已添加到 menxia # ✅ 技能已更新 # 路径: /Users/xxx/.openclaw/workspace-menxia/skills/mmx_cli/SKILL.md # 大小: 14655 字节update-remote通过读取.source.json中的sourceUrl重新下载并覆盖 SKILL.md同时更新lastUpdated与新的checksum实现见 update_remote。注意更新前请确认源 URL 依然有效否则会保留旧版本并报错。移除某个 Skillpython3 scripts/skill_manager.py remove-remote \ --agent menxia \ --name mmx_cli # 输出: # ✅ 技能 mmx_cli 已从 menxia 移除移除操作会删除整个 skill 目录含 SKILL.md 与 .source.json不影响远程源实现见 remove_remote。只有带.source.json的远程 Skill 才能通过该命令移除。看板 UI 操作在看板中添加 Remote Skill打开 http://localhost:7891进入 技能配置面板对应前端 SkillsConfig.tsx路由入口见 store.ts点击➕ 添加远程 Skill按钮填写表单Agent: 从下拉列表选择如 menxiaSkill 名称: 输入内部 ID 如mmx_cli前端会自动将输入过滤为a-z0-9-字符见 SkillsConfig.tsx远程 URL: 粘贴 GitHub URL 如https://raw.githubusercontent.com/MiniMax-AI/cli/main/skill/SKILL.md中文描述: 可选如MiniMax 多模态 CLI 技能点击导入按钮等待 1-2 秒看到 ✅ 成功提示表单提交会调用api.addRemoteSkill最终 POST 到/api/add-remote-skill前端封装见 api.ts。从社区技能源一键导入技能配置面板还内置了“社区技能源”快选区定义于 SkillsConfig.tsx包括obra/superpowers与anthropics/skills等社区知名技能集。选择目标 Agent 后点击单个技能旁的导入按钮即可快速添加已导入的技能会显示 ✓ 已导入标记逻辑见 handleQuickImport。管理已添加的 Skills在看板 → 技能配置 →远程技能标签页查看: 点击 Skill 名称查看 SKILL.md 内容更新: 点击 重新从源 URL 下载最新版本删除: 点击 ✕ 移除本地副本不影响源复制 URL: 快速分享给他人以上操作分别对应前端handleUpdate/handleRemove与 API 封装 api.ts底层复用服务端的update_remote_skill/remove_remote_skill。创建自己的 Skill 库目录结构my-skills-hub/ ├── code_review/ │ └── SKILL.md # 代码审查能力 ├── api_design/ │ └── SKILL.md # API 设计审查 ├── data_analysis/ │ └── SKILL.md # 数据分析 └── README.md每个技能一个目录目录名即 skill 名称内部必须有一个SKILL.md文件。SKILL.md 模板--- name: my_custom_skill description: 简短描述 version: 1.0.0 tags: [tag1, tag2] --- # Skill 完整名称 详细描述... ## 输入 说明接收什么参数 ## 处理流程 具体步骤... ## 输出规范 输出格式说明格式是硬性要求通过 API 添加时服务端会校验内容以---开头、包含合法的 YAML frontmatter 且 frontmatter 内必须存在name字段见 add_remote_skill。CLI 方式的校验较宽松仅检查内容长度不少于 10 字节但仍建议遵循标准结构以兼容 OpenClaw runtime。上传到 GitHubgit init git add . git commit -m Initial commit: my-skills-hub git remote add origin https://github.com/yourname/my-skills-hub git push -u origin main导入自己的 Skillpython3 scripts/skill_manager.py add-remote \ --agent zhongshu \ --name my_skill \ --source https://raw.githubusercontent.com/yourname/my-skills-hub/main/my_skill/SKILL.md \ --description 我的定制技能也可在设置OPENCLAW_SKILLS_HUB_BASE后通过import-official-hub批量导入传统 skill 名称code_review、api_design、security_audit、data_analysis、doc_generation、test_framework无需逐条填写 URL。API 完整参考所有 API 由看板服务器提供路由分发位于 dashboard/server.py。POST /api/add-remote-skill添加远程 skill参数说明对应服务端实现 add_remote_skill参数类型必需说明agentIdstring是目标 Agent ID必须在agent_config.json中存在skillNamestring是skill 内部名称仅允许字母/数字/下划线/连字符/汉字sourceUrlstring是远程 URL仅 HTTPS或本地路径file://或绝对/相对路径descriptionstring否skill 的中文描述请求curl -X POST http://localhost:7891/api/add-remote-skill \ -H Content-Type: application/json \ -d { agentId: zhongshu, skillName: code_review, sourceUrl: https://raw.githubusercontent.com/..., description: 代码审查 }响应 (200):{ ok: true, message: 技能 code_review 已从远程源添加到 zhongshu, skillName: code_review, agentId: zhongshu, source: https://raw.githubusercontent.com/..., localPath: /Users/xxx/.openclaw/workspace-zhongshu/skills/code_review/SKILL.md, size: 2048, addedAt: 2026-03-02T14:30:00Z }响应失败 (400){ ok: false, error: URL 无效或无法访问, details: Connection timeout after 10s }常见失败场景Agent 不存在、skillName 含非法字符、URL 非 HTTPS、下载超时、文件格式缺少 YAML frontmatter、文件超过 10MB。GET /api/remote-skills-list列出所有远程 skills 及其源信息含status实时判定。curl http://localhost:7891/api/remote-skills-list响应{ ok: true, remoteSkills: [ { skillName: mmx_cli, agentId: menxia, sourceUrl: https://raw.githubusercontent.com/..., description: MiniMax 多模态 CLI 技能, localPath: /Users/xxx/.openclaw/workspace-menxia/skills/mmx_cli/SKILL.md, addedAt: 2026-03-02T14:30:00Z, lastUpdated: 2026-03-02T14:30:00Z, status: valid } ], count: 1, listedAt: 2026-03-02T14:35:00Z }POST /api/update-remote-skill更新远程 skill 为最新版本重新从源 URL 下载。curl -X POST http://localhost:7891/api/update-remote-skill \ -H Content-Type: application/json \ -d { agentId: zhongshu, skillName: code_review }响应{ ok: true, message: 技能已更新, skillName: code_review, newVersion: 2.1.0, updatedAt: 2026-03-02T15:00:00Z }实现会复用add_remote_skill重新下载并返回新的校验和作为newVersion见 update_remote_skill。POST /api/remove-remote-skill移除远程 skill仅限带.source.json的远程 Skill。curl -X POST http://localhost:7891/api/remove-remote-skill \ -H Content-Type: application/json \ -d { agentId: zhongshu, skillName: code_review }响应{ ok: true, message: 技能 code_review 已从 zhongshu 移除 }移除后服务端会同步调用 sync_agent_config.py 重新生成 Agent 配置确保看板与 OpenClaw runtime 的配置保持一致。数据存储与安全机制本地存储结构~/.openclaw/ ├── workspace-zhongshu/ │ └── skills/ │ ├── code_review/ │ │ ├── SKILL.md │ │ └── .source.json # 存储源 URL 和元数据 │ └── api_design/ │ ├── SKILL.md │ └── .source.json ├── ....source.json 格式{ skillName: code_review, sourceUrl: https://raw.githubusercontent.com/..., description: 代码审查专项技能, version: 2.1.0, addedAt: 2026-03-02T14:30:00Z, lastUpdated: 2026-03-02T14:30:00Z, lastUpdateCheck: 2026-03-02T15:00:00Z, checksum: sha256:abc123..., status: valid }checksum为内容 SHA-256 前 16 位实现见 server.py 的 _compute_checksum 与 skill_manager.py 的 _compute_checksum用于在更新时快速判断内容是否变化。安全防护要点从源码可确认以下防护服务端实现见 add_remote_skill工具函数见 validate_urlURL 校验仅允许https://与file:///本地路径http://、ftp://、ssh://均被拒绝validate_url还会拦截内网/环回地址防 SSRF。内容验证API 强制校验 YAML frontmatter 与name字段下载大小上限 10MB、超时保护 30 秒CLI 侧单次超时 10 秒并支持重试。路径遍历防护skillName/agentId经_SAFE_NAME_RE白名单校验禁止../本地路径必须位于~/.openclaw或项目目录内。对应安全测试见 tests/test_cwe22_file_url.py。隔离执行远程 skills 由 OpenClaw runtime 在沙箱中执行只能访问分配的 workspace 目录。故障排查Q: 下载失败提示 Connection timeoutA:检查网络连接和 URL 有效性curl -I https://raw.githubusercontent.com/... # 应该返回 HTTP/1.1 200 OK若在中国大陆访问 GitHub raw 失败CLI 会在重试 3 次后提示设置代理export https_proxyhttp://proxy:port见 _download_file。Q: 文件格式无效A:确保 SKILL.md 以 YAML frontmatter 开头--- name: skill_name description: 描述 --- # 正文开始...API 路径还会在 500 字节内检查name:字段是否存在并尝试用 PyYAML 严格解析 frontmatter。Q: 导入后看不到 SkillA:刷新看板或检查 Agent 是否配置正确# 检查 Agent 是否存在 python3 scripts/skill_manager.py list-remote # 检查本地文件 ls -la ~/.openclaw/workspace-zhongshu/skills/另外确认看板是否启用了认证dashboard/auth.py提供 JWT 认证API 请求需携带有效 token 才能通过_check_auth()检查见 server.py 的 do_POST。Q: 能否从私有 GitHub 仓库导入A:不支持安全考虑仅接受公开 URL。可以将仓库设为公开或在本地下载后通过file:///本地路径添加。最佳实践版本管理始终在 SKILL.md frontmatter 中标注版本号version: 2.1.0便于追踪变更。向后兼容更新 skill 时保持输入/输出格式兼容避免破坏既有任务流程三省六部各 Agent 依赖技能输出做流转判断。文档完整每个 SKILL.md 应包含功能描述、输入参数、处理流程、输出规范、依赖与限制让 Agent 能正确调用。定期更新可周期性执行update-remote拉取上游最新版本CLI 亦预留了check-updates --interval weekly命令当前版本尚未实现见 main。贡献社区成熟技能可沉淀到公开 Skills Hub并通过OPENCLAW_SKILLS_HUB_BASE或~/.openclaw/skills-hub-url分享给团队用一套 Hub 批量喂给中书省、门下省、尚书省等各个 Agent。更多信息 完整指南远程 Skill 的资源管理、存储结构与安全细节️ 架构文档三省六部任务分发流转架构与 API 设计 项目贡献赞分享人工智能大模型AI Agent多智能体Agent 编排后端【免费下载链接】edict️ 三省六部制 · OpenClaw Multi-Agent Orchestration System — 9 specialized AI agents with real-time dashboard, model config, and full audit trails项目地址https://gitcode.com/gh_mirrors/edic/edict点击查看免费下载相关推荐三省六部 Edict 快速上手指南5 分钟搭建 OpenClaw 多 Agent 协同系统三省六部 Edict 快速上手指南5 分钟搭建 OpenClaw 多 Agent 协同系统 本篇指南以 docs/getting started.md htt人工智能大模型AI Agent多智能体Agent 编排后端三省六部 · Edict基于 OpenClaw 的制度化多 Agent 编排系统实战指南三省六部 · Edict基于 OpenClaw 的制度化多 Agent 编排系统实战指南 本文以仓库根目录 README.md https://link.gi人工智能大模型AI Agent多智能体Agent 编排后端edict 六部执行角色实战指南三省六部制 Multi-Agent 中的户部、礼部、兵部、刑部、工部、吏部任务执行规则与看板操作规范edict 六部执行角色实战指南三省六部制 Multi Agent 中的户部、礼部、兵部、刑部、工部、吏部任务执行规则与看板操作规范 本指南以 agents/人工智能大模型AI Agent多智能体Agent 编排后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表