ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenHuman Skill Setup Agent 深度解析:从社区技能发现、安装到安全审批的完整实战指南

OpenHuman Skill Setup Agent 深度解析:从社区技能发现、安装到安全审批的完整实战指南 OpenHuman Skill Setup Agent 深度解析从社区技能发现、安装到安全审批的完整实战指南【免费下载链接】openhumanOpenHuman is an open source personal AI for Mac, Windows and Linux — local-first memory, agent orchestration, and deep research.项目地址: https://gitcode.com/GitHub_Trending/op/openhuman导读Skill Setup Agent 是 OpenHuman 内置的一名技能管理专员它负责在 OpenHuman Community、HermesHub 与 ClawHub 三大社区技能仓库之间检索、浏览、安装、列出与卸载 Agent 技能Skill并以内联审批卡片的形式让用户在对话中直接确认安装。阅读本文后你将掌握 Skill Setup Agent 的完整角色定义、三大技能来源与检索策略、端到端安装工作流以及它背后由ApprovalGate审批网关、SSRF 防护与原子写入构成的技能安装安全机制并能直接使用仓库中的 CLI 命令和 Agent 配置复现整套流程。一、Skill Setup Agent 是什么Skill Setup Agent 是 OpenHuman 内置built-in的子代理worker agent专门承担技能发现、安装与生命周期管理职责。其系统提示词位于 prompt.md核心定位是一名从社区仓库中发现、安装并管理 Agent 技能的专家specialist in discovering, installing, and managing agent skills from community registries。它是一个专职代理意味着当用户需要查找、安装、更新或移除技能时编排代理orchestrator会将任务委派给它而不是让主代理自己处理——这正是 agent.toml 中delegate_name setup_skills与when_to_use描述的含义id skill_setup display_name Skill Setup Agent delegate_name setup_skills when_to_use Skill discovery and installation specialist — browses community skill registries (OpenHuman, HermesHub, ClawHub), searches for skills by keyword or category, installs skills from remote sources, and manages installed skills. Use when the user wants to find, install, update, or remove agent skills.该 Agent 在 catalog/agent/mod.rs 中被声明为skill_setup模块其提示词构建器位于 prompt.rsARCHETYPE常量通过include_str!(prompt.md)把提示词原文件嵌入二进制然后在运行时依次拼接用户文件上下文render_user_files、可用工具列表render_tools、安全前言render_safety与工作区上下文render_workspace最终组成发给模型的实际系统提示词。这意味着prompt.md只是骨架最终生效的提示词会随当前会话上下文动态扩展。关键运行参数agent.toml 中除身份信息外还定义了以下运行时行为理解这些参数有助于判断该 Agent 在真实会话中的行为边界配置项值含义temperature0.3较低采样温度让技能安装这类对确定性要求高的任务尽量输出稳定结果max_iterations10单个任务最多允许 10 轮工具调用循环防止在检索/安装上无限空转sandbox_modenone不启用沙箱执行技能安装本身由审批网关与路径校验保护agent_tierworker属于工人层级接受编排代理的委派执行具体任务omit_identitytrue不注入主代理身份信息保持专职代理的独立角色omit_memory_contexttrue不注入长期记忆上下文专注技能目录检索omit_safety_preamblefalse仍保留安全前言[model] hintchat模型提示偏好 chat 型交互该 Agent 被授予的命名工具named tools包括[tools] named [ list_workflows, describe_workflow, skill_registry_browse, skill_registry_search, skill_registry_sources, skill_registry_install, skill_registry_uninstall, install_workflow_from_url, uninstall_workflow, ask_user_clarification, ]二、三大技能来源RegistrySkill Setup Agent 从三个社区仓库发现技能OpenHuman Community— OpenHuman 官方精选技能托管于tinyhumansai/skill-registryHermesHub— Hermes 生态的社区技能内置 built-in 与可选 optional 两类ClawHub— OpenClaw 技能市场提示词中标注其规模为13,000 技能。从源码实现看这三个来源并不需要分别请求三个接口。 ops.rs 的注释明确指出目录数据来自HermesHub 聚合 JSON API单端点该端点同时聚合了 HermesHubbuilt-in optional、ClawHub、skills.sh、LobeHub 与 browse.sh 的技能条目。默认目录地址为https://hermes-agent.nousresearch.com/docs/api/skills.json也就是说Skill Setup Agent 提示词中列出的三大注册表最终通过一个聚合端点统一提供而 tools.rs 中的skill_registry_sources工具会在运行时列出当前目录中实际存在的所有上游来源如built-in、ClawHub、skills.sh、LobeHub、browse.sh等。目录条目的数据结构每个目录条目CatalogEntry见 types.rs包含以下字段id唯一 slug如apple-notes、docker-managername展示名称description简介source上游来源built-in/optional/ClawHub/skills.sh/LobeHub/browse.shcategory分类标签author/version/license作者、版本与许可证可选tags/platforms用于检索的标签与平台提示download_url可直接下载SKILL.md的 URL无直接下载时为空字符串source_url人类可访问的来源页面GitHub blob/tree、LobeHub、ClawHub 等docs_pathHermes 目录中的文档路径commands/env_vars技能依赖的 CLI 命令与环境变量。值得注意的实现细节download_url的推导遵循明确优先级见 ops.rs优先使用OPENHUMAN_SKILL_REGISTRY_DOWNLOAD_BASE_URL环境变量覆盖测试场景其次使用docsPath针对 Hermes 官方 bundled/optional 技能映射到NousResearch/hermes-agent仓库的skills/与optional-skills/目录再次使用sourceUrl若指向 GitHub blob/tree 页面则改写为raw.githubusercontent.com对应的SKILL.md地址非 GitHub 的 portal 页ClawHub/LobeHub/skills.sh 等无法推导出直接下载地址。对无法直接下载的 portal-only 社区技能install_from_catalog会返回可操作的错误信息附上source_url供用户自行查看而不是请求一个必然 404 的 URL——这一行为源于 issue #3741 的历史教训早期实现把所有社区技能都强制模板化到NousResearch/hermes-agent路径上导致几乎全部社区安装请求都 404。三、六项核心能力Skill Setup Agent 的系统提示词明确列出了六项能力Browse跨所有注册表浏览可用技能Search按关键词、分类或标签检索技能Install从远程SKILL.mdURL 安装技能List列出当前已安装技能Uninstall卸载不再需要的技能Describe详细描述已安装技能。这些能力与 agent.toml 授予的工具一一对应其中skill_registry_*系列工具由 tools.rs 实现属于 LLM 可调用的技能注册表领域工具。各工具的关键语义如下skill_registry_browse浏览聚合技能目录返回全部技能及其元数据。支持force_refresh布尔参数默认false设为true时绕过缓存、强制从 Hermes API 重新拉取。该工具被标记为并发安全is_concurrency_safe返回true。skill_registry_search按关键词检索匹配范围为技能名称、描述、标签、分类和作者并可选地按source或category过滤{ query: git, source: ClawHub, category: devops }从 ops.rs 的实现看query会统一转小写后对name、description、tags、category与author做子串包含匹配source与category过滤器使用大小写不敏感的比较。重要的是搜索/过滤读取永远不会使用过期缓存走browse_catalog_fresh路径以保证检索结果反映最新目录。skill_registry_install按entry_idslug从目录安装技能先从缓存目录中查找该条目再调用ops::install_from_catalog下载SKILL.md并安装到本地。该工具的permission_level为Write且external_effect返回true——这意味着它会经过全局ApprovalGate审批网关详见第五节。安装成功后的返回结果包含url实际下载地址、stdout、stderr与new_skills本次新增的技能 slug 列表。skill_registry_sources列出目录中存在的不同上游来源集合built-in、ClawHub、skills.sh、LobeHub、browse.sh等无参数。底层实现ops.rs会浏览目录并按来源去重排序。skill_registry_uninstall按技能 slug 卸载已安装的**用户作用域user-scope**技能。底层复用 ops_install_part_01.rs 中的uninstall_workflow它只支持用户级卸载会做路径规范化、拒绝符号链接、要求目标目录中存在SKILL.md并依次在~/.openhuman/workflows/、~/.openhuman/skills/与旧版~/.agents/skills/三个根目录中解析实际安装位置。返回name、removed_path实际删除的绝对路径与scope。四、标准工作流从检索到安装确认系统提示词定义了一套清晰的端到端工作流这是 Skill Setup Agent 在真实对话中必须遵守的交互协议检索当用户要求查找技能时跨注册表执行搜索呈现结果清晰展示每个候选技能的名称、描述、来源注册表与安装数确认选择若多个技能匹配询问用户希望安装哪一个或哪几个安装并确认安装所选技能并确认其已添加。安装会触发内联审批卡片inline approval card用户直接在聊天界面中批准即可——Agent不会跳转到其他页面也不会丢给用户一堆手动安装步骤处理拒绝或失败如果用户拒绝审批卡片或安装失败Agent 应当如实承认并建议替代方案。不得静默重试同一安装——一次被拒绝或失败就足够了。这套先检索 → 展示 → 询问 → 审批 → 一次性执行的协议刻意避免了两类常见错误一是绕过审批直接执行安装二是在失败后反复重试同一操作造成骚扰。从 Agent 架构角度看这一工作流与skill_registry_search→skill_registry_install→ 审批卡片的调用链完全对应并且ask_user_clarification工具的存在见 agent.toml 的[tools]列表保证了在多候选场景下 Agent 能主动向用户澄清意图。五、安全机制审批网关与安装防护ApprovalGate安装前的内联审批提示词强调安装会触发内联审批卡片其底层实现是 OpenHuman 的ApprovalGate。根据 security/approval/README.md 的说明ApprovalGate是运行在 Agent 与任何external_effect true工具之间的异步中间件issue #1339它拦截工具调用、检查用户的 Always allow 允许列表、在 SQLite 中持久化一条 pending 记录、发布ApprovalRequested事件让 UI 弹出提示、将工具调用 future 挂起在 oneshot 通道上等用户通过 UI或聊天中键入 yes/no经由approval_decideRPC 作出决定后再继续执行。拒绝与超时10 分钟 TTL都会 fail-closed——即默认不执行。tools.rs 的SkillRegistryInstallTool注释进一步揭示了细节issue #3993在交互式聊天会话中用户会看到内联审批卡片批准后才真正写入磁盘在后台/定时cron任务中没有APPROVAL_CHAT_CONTEXT任务局部变量审批网关会被绕过——这与所有其他外部副作用工具的行为保持一致。测试 tools_tests.rs 明确断言了这一行为#3993: installs must raise an inline approval card before writing.ApprovalGate的实现位于 security/approval/gate.rs包含init_global/try_global、intercept/intercept_audited、decide、list_pending、list_recent_decisions等接口当ApprovalGate::try_global()返回None未安装网关时工具/执行框架会把其视为无审批与整个系统的行为约定一致。安装管道的多层防护技能安装走的是经过加固的workflowsURL 安装器ops_install_part_01.rs 的install_workflow_from_url。仓库注释catalog/README.md明确指出Production installs still go through the hardenedworkflowsURL installer.该安装器内置了多层防护URL 校验安装前对 URL 进行校验与规范化SSRF 第二层防护即使 URL 主机名看起来是公网的也会提前解析主机若解析出的任何 IP 是回环/私网/链路本地地址则拒绝DNS-to-private-IP 攻击面已知局限是未完全阻断 DNS rebinding需要固定SocketAddr并传给 reqwest 自定义 resolver超时控制安装超时默认 60 秒目录安装传参timeout_secs: Some(60)请求客户端按超时时间构建响应体限制与双重校验下载前检查Content-Length下载完成后再次校验缓冲长度防止撒谎的响应头Frontmatter 校验SKILL.md的 frontmatter 必须包含name与description符合 agentskills.io 规范slug 派生与幂等优先使用metadata.id作为 slug否则取净化后的name目标目录已有SKILL.md时视为幂等成功其他目录冲突则直接失败绝不静默覆盖已有文件原子写入先在目标目录写SKILL.md.tmp成功后再rename为最终文件安装后重发现成功后重新发现整个技能目录返回本次新增的技能 slug 列表本地 HTTP 限制仅当设置OPENHUMAN_SKILL_INSTALL_ALLOW_LOCAL_HTTP1时允许从 localhost 安装且仅用于本地测试夹具。卸载的防御性处理uninstall_workflowops_install_part_01.rs同样有防御逻辑拒绝包含路径分隔符/、\或..的技能名、限制名称最大长度、解析真实主目录、规范化路径、拒绝符号链接、要求SKILL.md存在并在三个历史根目录中按顺序解析实际位置。六、目录缓存与启动刷新底层性能设计由于聚合目录包含数万条目源码注释提及约 9 万条记录、单次下载约 80 秒ops.rs 做了精细的缓存与并发设计这些设计直接决定了 Skill Setup Agent 的响应体验single-flight 锁FETCH_LOCK同一时刻只允许一个目录拉取请求React StrictMode 双调用、skills 浏览器挂载时的多次读取等并发请求会合并到同一次网络请求上其余调用者复用刚落盘的缓存fresh / stale 双状态缓存新鲜缓存直接返回过期缓存browse 场景立即返回旧数据并后台单次 revalidatestale-while-revalidate速度优先搜索/过滤场景拒绝过期数据回落到 fresh 拉取准确性优先启动后台刷新核心启动时通过start_boot_catalog_refresh异步强制刷新目录不阻塞核心就绪可用OPENHUMAN_SKILL_REGISTRY_REFRESH_ON_BOOT0关闭支持0/false/no/off等取值。环境变量速查环境变量作用OPENHUMAN_SKILL_REGISTRY_CATALOG_URL覆盖目录 JSON 端点地址默认 HermesHub 聚合 APIOPENHUMAN_SKILL_REGISTRY_DOWNLOAD_BASE_URL覆盖技能下载基址测试场景模板为{base}/{name}/SKILL.mdOPENHUMAN_SKILL_REGISTRY_REFRESH_ON_BOOT设为0关闭启动时的后台目录刷新OPENHUMAN_SKILL_INSTALL_ALLOW_LOCAL_HTTP设为1允许从 localhost HTTP 安装仅限本地测试这些变量的具体读取与默认值逻辑可参见 ops.rs 与 ops_install_part_01.rs。七、命令行快速上手虽然日常使用中 Skill Setup Agent 通过对话完成技能管理但技能注册表领域也提供了等价的 CLI 入口见 catalog/README.md 的 production smoke 示例便于脚本化与调试# 查看 skill_registry 域支持的子命令 schema openhuman skill_registry schemas # 浏览全部技能--force_refresh true 绕过缓存强制拉取 openhuman skill_registry browse --force_refresh true # 按关键词搜索如 git 相关技能 openhuman skill_registry search --query git # 列出目录中所有上游来源 openhuman skill_registry sources # 按 entry_id 安装技能 openhuman skill_registry install --entry_id git-helper # 卸载已安装技能用户作用域 openhuman skill_registry uninstall --name git-helper八、重要规则速览系统提示词的最后一部分是 Agent 必须遵守的硬性规则无论是接入方集成还是使用者理解其行为边界都值得逐条关注始终展示来源注册表每个技能都要标明来自 OpenHuman、HermesHub 还是 ClawHub警告未经验证的技能社区技能可能未经安全审计Agent 必须向用户提示风险未经用户确认绝不安装任何安装都必须经过用户确认配合审批卡片ClawHub 无直连安装时的替代方案对无法直接安装的 ClawHub 技能要解释 OpenClaw CLI 这一替代途径列出已安装技能时标明作用域区分 user 作用域与 project 作用域。九、从源码到实践如何把 Skill Setup Agent 接入你的会话综合以上分析Skill Setup Agent 的实际工作链路可以概括为用户请求 → orchestrator 委派(delegate_namesetup_skills) → skill_setup Agentprompt.md 骨架 动态 tools/safety/workspace 上下文 → skill_registry_searchfresh 目录→ 展示结果并 ask_user_clarification → skill_registry_installApprovalGate 内联审批卡 → 用户批准 → install_workflow_from_urlURL 校验 → SSRF 防护 → 下载 → frontmatter 校验 → 原子写入 → 重发现技能目录返回 new_skills想深入阅读源码的读者推荐按以下路径继续探索系统提示词本体prompt.mdAgent 配置与工具授权agent.toml提示词动态构建器prompt.rs注册表工具实现tools.rs 与对应的单元测试 tools_tests.rs目录获取/缓存/搜索/安装业务逻辑ops.rs 与 ops_tests.rs目录条目数据模型types.rs加固的 URL 安装器与卸载实现ops_install_part_01.rs审批网关机制security/approval/README.md 与 security/approval/gate.rs。结语Skill Setup Agent 是 OpenHuman 技能生态的前台导购它把三大社区注册表的数万技能统一到一次聚合检索中用搜索 → 展示 → 询问 → 审批 → 一次性执行的克制工作流替代了粗暴的自动安装同时由ApprovalGate审批网关与多层加固的 URL 安装器兜底安全底线。理解它的提示词、工具授权与底层实现不仅有助于你高效地通过对话管理技能也能为在自研 Agent 中设计受审批约束的外部副作用工具提供一份可参考的工程范式。【免费下载链接】openhumanOpenHuman is an open source personal AI for Mac, Windows and Linux — local-first memory, agent orchestration, and deep research.项目地址: https://gitcode.com/GitHub_Trending/op/openhuman创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表