安全扫描
OpenClaw
安全
medium confidence纯指令型技能,其需求和行为总体上与「技能压缩器」一致,但它会向本地工作区写入文件,并引用可选的模型提供者/密钥而未正式声明。
评估建议
该技能是一个纯指令型的「压缩器」,与其声明的目的基本一致。安装前需注意:(1) 了解其会向智能体工作区写入文件(SKILL.compressed.md 和 .learnings/skill-distiller/calibration.jsonl),确保对该路径及其权限感到舒适;(2) 如计划使用外部模型后端(ollama、Gemini、OpenAI),技能文档提及相关环境变量/服务器但未正式声明——仅在信任环境时提供 API 密钥并限制其范围;(3) 先运行干运行(技能文档中有 --dry-run 选项)以确认输出且不会创建意外文件;(4) 如需更高保障,可请求元数据中链接的完整 SKILL.reference.md 和/或在测试运行后检查智能体的工作区。总体而言技能看起来连贯且适合目的,主要考虑因素是文件写入和可选的模型密钥使用。...详细分析 ▾
✓ 用途与能力
名称/描述与内容相符:SKILL.md 描述了如何压缩技能、保护关键模式、评分重要性并生成压缩输出。未请求无关二进制文件、凭据或安装步骤,因此声明的目的与技能要求智能体执行的操作一致。
ℹ 指令范围
指令专注于解析和压缩技能 markdown,包含预期工作流(section 分类、评分、输出格式)。SKILL.md 指示智能体写入输出(SKILL.compressed.md)并将校准数据追加到 .learnings/skill-distiller/calibration.jsonl——这对于 distiller 是合理的,意味着技能会写入智能体工作区。它还引用了提供者回退和错误提示(例如「set GEMINI_API_KEY」或「ollama serve」),这暗示了可选使用外部模型后端,尽管技能在其他地方声称「No external APIs」。
✓ 安装机制
没有安装规范和代码文件存在(纯指令型),因此安装没有下载或任意代码执行风险。这是最低风险的安装模式。
ℹ 凭证需求
声明的需求列表没有环境变量或凭据,这对于纯指令型压缩器是适当的。然而,SKILL.md 提到了提供者选项(ollama、gemini、openai)并在错误处理中引用了 GEMINI_API_KEY 和运行「ollama serve」—— 那些是可选的但未声明。如果运行配置为使用外部提供者的技能,该提供者可能需要 API 密钥—— 考虑是否希望技能访问那些密钥。
✓ 持久化与权限
技能不请求持久平台特权(always:false)。它会将其输出和校准条目写入智能体工作区(.learnings 和 SKILL.compressed.md),这对于此工具是正常的。disable-model-invocation:true 降低了自主调用风险。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv0.2.12026/4/15
- 更新了功能估算及相关表格,使用「~90%」(LLM估算)替代固定百分比值。- 添加了澄清说明:token 计数使用启发式方法,功能为 LLM 估算,包括新的摘要说明。- 扩展了选项部分,引用了 SKILL.reference.md 中的其他标志。- 为准确性和透明度进行了措辞和格式的细微调整。
● 无害
安装命令
点击复制官方npx clawhub@latest install neon-skill-distiller-compressed
镜像加速npx clawhub@latest install neon-skill-distiller-compressed --registry https://cn.longxiaskill.com
技能文档
自压缩散文变体(约 975 tokens,约 90% 功能,LLM 估算)。完整参考:../SKILL.reference.md。
智能体身份
角色:帮助用户压缩冗长的技能以减少上下文窗口使用 理解:技能为人类清晰度而冗长,但对上下文来说代价高昂 方法:识别 section 类型,评分重要性,移除/缩短低价值 section 边界:保留功能,报告已移除内容,从不隐藏权衡 语气:技术性、精确、透明关于权衡 数据处理:所有分析使用你的智能体配置的模型。无外部 API。
使用时机
当用户请求时激活:
- 「压缩这个技能」
- 「让这个技能更小」
- 「将这个技能蒸馏到 X tokens」
- 「减少技能上下文使用」
选项
| 标志 | 默认值 | 描述 |
|---|---|---|
--mode | threshold | threshold(保留 X%)、tokens(适应预算)、oneliner |
--threshold | 0.9 | 功能保留目标(0.0-1.0) |
--tokens | - | 目标 token 数量 |
--provider | auto | ollama、gemini、openai(自动检测) |
--verbose | false | 显示逐 section 分析 |
--dry-run | false | 分析但不输出 |
阈值 = 语义能力,而非大小比率。 0.9 阈值意味着保留 90% 的智能体行为,而非保留 90% 的行数。按理解判断,而非指标。
流程
1. 解析技能
解析为 sections:Frontmatter、Headers、Code blocks、Lists、Prose。
2. 分类 Sections
| 类型 | 重要性 | 可压缩? |
|---|---|---|
| TRIGGER | 1.0 | 否 |
| CORE_INSTRUCTION | 1.0 | 否 |
| CONSTRAINT | 0.9 | 部分 |
| OUTPUT_FORMAT | 0.8 | 部分 |
| EXAMPLE | 0.5 | 是 |
| EXPLANATION | 0.3 | 是 |
| VERBOSE_DETAIL | 0.2 | 是(首次) |
name/description、Task 创建、N-count 追踪、Checkpoint/state、BEFORE/AFTER 标记。3. 应用压缩
- 阈值:按重要性排序,包含直至达到目标
- Token 目标:适应预算,如低于最小值则摘要
- One-liner:TRIGGER/ACTION/RESULT 格式
4. 测量功能
按语义理解评估,而非指标。
| 错误 | 正确 |
|---|---|
| 「60% 行减少太激进」 | 「智能体能否执行此技能?」 |
| 「Token 比率超过目标」 | 「触发器和动作是否保留?」 |
5. 保存校准
追加到 .learnings/skill-distiller/calibration.jsonl,包含指标和预期分数。
6. 输出结果
功能保留:90%(未校准 - 前 5 次压缩建立基线)
Tokens:2000 → 1800(减少 10%)
已移除:[列表],已保留:[列表]
[压缩后的技能 markdown...]
模式
受保护(必须保留)
| 模式 | 原因 |
|---|---|
YAML name/description | 规范要求 |
| N-count 追踪 | 观察工作流 |
| Task 创建 | 压缩弹性 |
建议(如移除则警告)
并行/串行决策、性能提示、缓存指导。无分数惩罚。
校准
存储:.learnings/skill-distiller/calibration.jsonl
| N-count | 含义 |
|---|---|
| N < 5 | 未校准(仅 LLM 估算) |
| N > 10 | 已校准(历史 CI) |
/skill-distiller feedback --id=c1 --actual=85 --outcome="worked"自压缩
护栏:
- 要求 95% 功能(而非 90%)
- 输出到 SKILL.compressed.md,切勿覆盖原文件
- 需要手动验证
为何 0.95:能力损失会累积(下一层级 0.95 x 0.95 = 0.90)。
错误处理
| 错误 | 提示 |
|---|---|
| 无内容 | 提供 SKILL.md 路径或通过 stdin 管道 |
| 无 frontmatter | 添加带 name/description 的 --- 块 |
| LLM 不可用 | 运行 ollama serve 或设置 GEMINI_API_KEY |
相关
| 变体 | Tokens | 功能 |
|---|---|---|
| skill-distiller(主版本) | ~400 | ~90%(公式) |
| compressed(本版本) | ~975 | ~90%(散文) |
| oneliner | ~100 | ~70% |
Token 计数使用 4 字符/token 启发式方法(+/-20%)。功能分数为 LLM 估算。