IronClaw Skills 系统深度指南:SKILL.md 格式、信任模型与确定性激活管线
IronClaw Skills 系统深度指南SKILL.md 格式、信任模型与确定性激活管线【免费下载链接】ironclawIronClaw is an Agent OS focused on privacy, security and extensibility项目地址: https://gitcode.com/gh_mirrors/iro/ironclaw本指南系统讲解 IronClawAgent OS中 Skills 系统的完整工作机制SKILL.md 如何以 YAML frontmatter 元数据 Markdown 正文的形式向 LLM 注入领域指令Trusted / Installed 两级信任模型如何约束工具权限以及 Gating → Scoring → Budget → Attenuation 四阶段选择管线背后的确定性计分逻辑。读完本文你将能够为 IronClaw 编写可被自动激活的技能、正确配置激活条件与预算上限并理解从技能发现、评分到上下文注入的完整链路。什么是 Skills System在 IronClaw 中SKILL.md 文件将领域专属指令扩展进 Agent 的提示词prompt。每个技能skill由两部分组成YAML frontmatter 元数据块声明名称、版本、激活条件activation criteria与所需工具required toolsMarkdown 正文技能指令本体会被注入 LLM 上下文。系统定位由 .claude/rules/skills.md 定义其作用域覆盖crates/domains/ironclaw_skills/**、crates/extensions/ironclaw_extension_host/src/bundled_skills.rs与仓库根目录的skills/**仓库内已内置 coding、commit、delegation、security-review 等 15 个技能目录见 skills/。从源码结构看技能从磁盘到上下文的完整旅程由 crates/domains/ironclaw_skills/ 与 crates/loop/ironclaw_loop_host/src/skill_activation/activation.rs 共同完成前者负责解析、校验与确定性预筛后者负责按回合turn把选中的技能正文渲染进模型上下文。信任模型两级信任决定内容暴露与工具上限IronClaw 将技能按来源划分为两个信任等级核心区别在于内容暴露content exposure与工具访问tool access信任等级来源工具访问Trusted用户放置于~/.ironclaw/skills/或工作区skills/目录Agent 可用的全部工具Installed从 ClawHub 注册表或 HTTPS 技能 URL 下载~/.ironclaw/installed_skills/或在 Reborn 作用域技能存储中记录 URL 来源元数据仅只读工具无 shell、无文件写入、无 HTTP在 crates/domains/ironclaw_skills/src/types.rs 中SkillTrust枚举通过判别值定义顺序Installed 0Trusted 1。源码注释明确警告Ord派生自判别值安全模型依赖Installed Trusted的大小关系不得重排变体顺序。SkillSource则区分四种加载位置Workspace工作区skills/、User用户目录~/.ironclaw/skills/、Installed注册表安装目录~/.ironclaw/installed_skills/与Bundled随应用内置。值得强调的是信任等级直接决定模型能看到什么ironclaw_loop_contracts::skill_context::SkillTrustLevel依据信任等级决定模型是看到技能的完整 prompt 正文还是仅看到安全描述而真正的工具权限归ironclaw_authorization/ironclaw_capabilities所有见 types.rs 中的类型注释。选择管线末端的Attenuation衰减阶段会取当前激活技能中的最低信任等级作为工具上限Installed 技能因此自动失去危险工具。SKILL.md 格式详解frontmatter 元数据与正文标准结构示例--- name: my-skill version: 0.1.0 description: Does something useful activation: patterns: - deploy to.*production keywords: - deployment exclude_keywords: - rollback tags: - devops max_context_tokens: 2000 requires: bins: [docker, kubectl] env: [KUBECONFIG] --- # Skill instructions here...关键字段与解析约束name/version/description技能标识与人类可读描述version缺省为0.0.0见 types.rs 中default_version。activation激活条件包含keywords精确/子串匹配、patterns正则、exclude_keywords否决词、tags宽泛分类标签、max_context_tokens默认 2000以及setup_marker一次性安装标记见下文。requires加载门控输入支持binsPATH 上的可执行文件、env环境变量、config配置文件路径与skills伴生技能。重要兼容性说明仅支持顶层的requires:块。历史遗留的嵌套写法metadata.openclaw.requires不被支持当前解析器会直接忽略因此旧的外部技能必须显式迁移而不能依赖静默兼容。静默截断上限Silent truncation capsenforce_limits见 types.rs在加载时对激活元数据强制实施以下硬性上限超出的部分静默丢弃、不报错字段上限说明keywordsMAX_KEYWORDS_PER_SKILL 20同时过滤长度 3 的短词exclude_keywordsMAX_KEYWORDS_PER_SKILL 20同上patternsMAX_PATTERNS_PER_SKILL 5—tagsMAX_TAGS_PER_SKILL 10同时过滤长度 3 的短标签requires.skillsMAX_REQUIRED_SKILLS_PER_MANIFEST 10防止恶意清单令链式安装队列无界增长setup_markerMAX_SETUP_MARKER_LENGTH 256字节含..路径穿越或超长时直接置为None源码对短词过滤的动机有明确注释长度不足 3 的 token如 a、is匹配过宽会被用来操纵评分系统。此外正则编译在加载期完成且对编译后的正则状态施加 64 KiB 的大小限制MAX_REGEX_SIZE以防范病态正则导致的 ReDoS无效正则会打 warning 并跳过LoadedSkill::compile_patterns。技能 prompt 文件本身的上限为MAX_PROMPT_FILE_SIZE 64 KiB。凭证声明credentials技能可在 frontmatter 中声明 API 凭证需求SkillCredentialSpec系统据此注册 host→凭证映射并管理 OAuth 流程无需 WASM 模块介入。凭证值永不进入 LLM 上下文加载时只解析元数据。支持的位置类型包括Bearer、BasicAuthusername、Header自定义头 可选前缀与QueryParamOAuth 刷新策略支持standard/reauthorize_only/custom见 types.rs 的SkillCredentialLocation与ProviderRefreshStrategy。选择管线Gating → Scoring → Budget → Attenuation技能激活是确定性deterministic的——不依赖 LLM 参与预筛防止已加载技能影响哪些技能被加载的循环操纵见 selector.rs 模块注释。整条管线分四步1. Gating门控检查技能声明的requires.bins/requires.env/requires.config是否满足前置条件缺失的技能被直接跳过。实现位于 gating.rsbins通过whichUnix/whereWindows探测env检查环境变量是否已设置config检查路径是否存在。异步封装check_requirements会把阻塞的which调用通过spawn_blocking卸载且当三项都为空时立即返回通过常见场景避免每次技能加载都起子进程。requires.skills属咨询性元数据不参与门控——缺失伴生技能不会阻止父技能加载。2. Scoring确定性计分计分规则定义于 selector.rs 的score_skill对用户消息做小写化后逐技能评分信号分值上限关键词精确匹配整词按空白切分10 分30 分关键词子串匹配5 分30 分标签匹配子串3 分15 分正则模式匹配20 分40 分exclude_keywords命中一票否决总分归 0—上限设计防止关键词填充keyword stuffing操纵评分即使一个技能声明满 20 个关键词最多也只能拿 30 分正则即使命中全部 5 条理论上 100 分也被压到 40 分无法压过关键词标签组合。此外正则匹配仅对 ≤ 64 KiB 的消息执行MAX_REGEX_MATCH_MESSAGE_BYTES避免热路径上的 O(n) 开销。正则激活开关patterns正则评分受配置项[skills] regex_activation_enabled门控默认true配置为false时正则贡献 0 分只有关键词/标签/显式提及能选中技能。该配置由SkillsSection定义于 crates/app/ironclaw_config/src/config_file.rs没有对应的环境变量。配置文件中以regex_activation_enabled false形式使用见同文件测试样例。显式提及explicit mention用户在消息任意位置写/skill-name或$name可强制激活技能。extract_skill_mentions会把消息中的/github之类提及替换为技能描述如 GitHub API使句子对 LLM 仍然通顺同时将技能强制纳入选择。该解析仅在/位于消息开头或前导空白/标点之后is_skill_mention_boundary时生效技能名接受[a-zA-Z0-9._-]字符集。激活策略回退默认策略为CriteriaOnly纯条件计分。ActivationStrategy::NameAndDescription允许在条件计分为 0 时回退到技能name/description的整词匹配名称命中 8 分、描述命中 2 分、回退总上限 20 分见 activation_strategy.rs。该策略的动机是实测 SkillsBench 31 项任务子集中Agent 为自己编写的技能0/30 携带activation块纯条件策略下这些技能永远无法再次被选中回退策略让 Agent 自产技能仅凭名称/描述即可被复用同时刻意让显式策划的关键词永远压过名称碰撞NAME_WORD_SCORE 8 10。策略通过[skills] activation绑定解析如name_and_description、disabled、ext:extension_id。3. Budget预算按分数从高到低选择技能受两个约束限制候选数量上限DEFAULT_MAX_ACTIVE_SKILLS 8以及上下文 token 预算DEFAULT_MAX_SKILL_CONTEXT_TOKENS 4000。二者均定义于 crates/loop/ironclaw_loop_host/src/skill_activation/activation.rs旧的SKILLS_MAX_TOKENS环境变量已无任何代码读取可通过SkillActivationSelectorConfig::set_max_context_tokens等方法覆盖。token 成本估算skill_token_cost优先采用技能声明的max_context_tokens但当正文实际估算约 0.25 token/字节超过声明值的 2 倍时会改用实际估算并告警max_context_tokens: 0也会被强制按 1 token 计费防止绕过预算。链式加载chain-loading被选中技能的requires.skills伴生技能会随父技能一并拉入若可用绕过评分过滤但共享同一预算并受候选上限约束链式加载是非传递的深度 1伴生技能不会再加载自己的伴生技能保证行为可预测。预算不足或 setup 已完成的伴生会被跳过并给出说明性 note。一次性安装标记setup_markeractivation.setup_marker将技能门控在工作区 setup-marker 文件是否存在上。*-setup技能家族首次引导时激活并写入标记文件此后该技能不再参与激活预算竞争要重新触发删除工作区中的标记文件即可典型标记如commitments/.developer-setup-complete。4. Attenuation衰减取所有激活技能中的最低信任等级作为本回合工具上限Installed 技能因此自动降级为只读工具集。技能管理工具集Skill ToolsIronClaw 为 Agent 提供一组内置工具来发现、安装与管理技能工具作用skill_list列出所有已发现技能含信任等级与状态skill_search在 ClawHub 注册表搜索可用技能skill_install从原始 SKILL.md 内容或 ClawHub 安装技能skill_install_url从 HTTPS 原始 SKILL.md、ZIP 包或受支持的 GitHub 仓库/目录 URL 拉取并安装skill_remove移除已安装技能需要说明的是ClawHub 是文档中提到的技能注册表概念对应~/.ironclaw/installed_skills/安装目录HTTPS URL 安装路径会在 Reborn 作用域技能存储中记录来源元数据用于溯源与信任判定。仓库内技能实践与验证内置技能集仓库根目录 skills/ 提供 15 个开箱即用的技能目录覆盖编码coding、提交commit、委托delegation、安全审查security-review、QA 审查qa-review、决策记录decision-capture等 Agent 工作流每个目录均以SKILL.md为核心文件可作为编写自定义技能的参照范例。测试与回归保障crates/domains/ironclaw_skills/tests/routing_corpus.rs 与fixtures/routing_corpus.json基于真实语料验证技能路由的正确性防止一个技能被另一个无关技能抢占对应文档所述跨技能干扰问题。crates/domains/ironclaw_skills/tests/host_picks_wrong_skills.rs回归宿主选中错误技能的失败模式。crates/domains/ironclaw_skills/tests/agent_authored_skills_pass_the_lint.rs确保 Agent 自产技能能通过目录规范检查。crates/domains/ironclaw_skills/tests/catalog_lint.rs对技能目录整体做静态检查。单元测试覆盖计分上限test_keyword_score_capped、test_regex_score_capped、exclude_keywords否决优先级test_exclude_keyword_veto_wins_over_positive_match、无效正则优雅处理test_invalid_regex_handled_gracefully等关键边界。编写与调优实践建议控制激活元数据规模关键词 ≤ 20、正则 ≤ 5、标签 ≤ 10超出的触发条件会被静默丢弃——写了但不存在是最隐蔽的失效方式。善用exclude_keywords防止串扰例如技能以write为关键词时用redirect、route等词否决路由类场景避免跨技能误触发。声明真实的requires缺失的二进制/环境变量会导致技能在门控阶段被跳过requires.skills用于声明与哪些伴生技能配合。为一次性引导技能设置setup_marker引导完成后不再占用每回合的 4000 token 预算。为自产技能补充description若无法或不愿编写激活条件可选用NameAndDescription激活策略让技能仅凭名称与描述被选中否则纯条件策略下没有activation块的技能将永远无法自动激活。解析器行为变更须同步文档仓库规范要求当解析行为变化时在同一 PR 内更新.claude/rules/skills.md见.claude/rules/guidance-maintenance.md规则 7保持代码—文档—测试三者一致。总结IronClaw 的 Skills 系统是一个以确定性为核心的技能注入框架两级信任模型在内容暴露与工具权限上建立安全边界frontmatter 解析以硬性上限与 sanitize 抵御恶意清单四阶段选择管线Gating → Scoring → Budget → Attenuation保证选择过程可预测、可审计、可回归。无论是编写一个新技能、迁移历史技能的requires写法还是调优激活预算与正则开关本文给出的字段说明、计分规则与源码路径都可作为直接依据。【免费下载链接】ironclawIronClaw is an Agent OS focused on privacy, security and extensibility项目地址: https://gitcode.com/gh_mirrors/iro/ironclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

3个步骤搞定headstrong,附完整示例避坑指南

3个步骤搞定headstrong,附完整示例避坑指南

3个步骤搞定headstrong,附完整示例避坑指南 很多刚入行的同学,对着文档里的 headstrong 语法能背得滚瓜烂熟,但真到动手搭项目时,代码一跑就报错,或者性能直接拉胯。这种“懂原理却写不出项目”的断层感,是不是让你抓狂?别急,…

2026/9/23 9:59:41 阅读更多 →
在 Claude Code 中以插件方式安装 loop-engineering 技能:marketplace 配置、技能清单与第一周报告制循环实战

在 Claude Code 中以插件方式安装 loop-engineering 技能:marketplace 配置、技能清单与第一周报告制循环实战

在 Claude Code 中以插件方式安装 loop-engineering 技能:marketplace 配置、技能清单与第一周报告制循环实战 【免费下载链接】loop-engineering Practical patterns, starters & CLI tools for loop engineering with AI coding agents. Design systems that …

2026/9/23 9:59:41 阅读更多 →
AI编程助手:变革开发者工作流的技术解析

AI编程助手:变革开发者工作流的技术解析

1. 编程范式变革的前夜当Redis创始人Salvatore Sanfilippo在技术社区抛出"手写代码已不再必要"的观点时,整个开发者圈子瞬间炸开了锅。作为经历过从穿孔卡片到高级语言的老兵,我亲眼目睹过多次编程革命,但这次AI带来的变革确实不同…

2026/9/23 9:58:40 阅读更多 →

最新新闻

【Coze】【视频】治愈系老爷爷工作流

【Coze】【视频】治愈系老爷爷工作流

今天给大家演示一个 老爷爷语录视频自动生成工作流。该工作流通过大语言模型和图像生成模型的协作,自动完成从文本语录生成、格式化处理、配图生成,再到视频合成和音频配乐的完整流程。结合效果展示,用户只需提供简单的输入,就能得到带有温馨画面和背景音乐的成品视频,大幅…

2026/9/24 18:27:12 阅读更多 →
基于SpringBoot的美食推荐系统实战:协同过滤算法与部署解析

基于SpringBoot的美食推荐系统实战:协同过滤算法与部署解析

每年到这个时间段,我的私信里总是涌入同一类问题:SpringBoot学完了但没项目练手怎么办?课程设计选什么题能不撞车又拿高分?面试时项目经历讲不出亮点怎么办?今天就把我打磨过很多遍的一个实战项目——基于SpringBoot的…

2026/9/24 18:27:12 阅读更多 →
快速排序实战笔记:从分治原理到代码优化与边界排查

快速排序实战笔记:从分治原理到代码优化与边界排查

如果你和我一样,是靠刷 LeetCode 硬啃基础算法过来的,那“快速排序”这四个字你绝对不陌生。很多人在基础算法集训里把它当成一道“背模板题”——敲一遍快排代码、跑通几个用例,就觉得自己会了。但真到了手撕代码、处理大数据量、甚至面试被…

2026/9/24 18:27:12 阅读更多 →
从原理到实战:搭建轻量级沙箱环境与隔离技术解析

从原理到实战:搭建轻量级沙箱环境与隔离技术解析

说到沙箱技术,很多人的第一印象可能是留档取证或者安全分析人员的神秘工具,但把它放到日常软件工程里,它其实就是一个“能让你胆大心细地跑不受信任代码”的基础设施。我最早接触沙箱,是因为要分析一系列可疑的 Office 文档&#…

2026/9/24 18:27:12 阅读更多 →
【Coze】【视频】小人国风格动画工作流

【Coze】【视频】小人国风格动画工作流

今天给大家演示一个 微观小人国场景构建与多模态生成的 Coze 工作流。这个工作流的设计目标,是将用户输入的主题转化为成体系的微观生活场景,再通过大模型生成文本、图像与视频内容,最终形成可用于创作与展示的多模态成果。从场景文本构思,到文生图提示词,再到批量图像生成…

2026/9/24 18:27:12 阅读更多 →
MinioUtil工具类设计实战:Java对象存储封装与踩坑指南

MinioUtil工具类设计实战:Java对象存储封装与踩坑指南

做后端开发这几年,文件存储始终是个绕不开的话题。早期我接触过FastDFS,也折腾过自建FTP,后来云厂商的对象存储也用了一阵子,但版权费用和灵活性总让人不太舒服。直到在一个内部管理系统里遇到Minio,我才发现这个S3兼容…

2026/9/24 18:26:12 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →