Skip to content

Latest commit

 

History

History
111 lines (72 loc) · 4.73 KB

File metadata and controls

111 lines (72 loc) · 4.73 KB

案例 2:Hermes 适配方案

平台类型

函数调用型(非 Schema 打包型)

平台类型判断:见 TEMPLATE.md 第一步。

平台概况

  • 类型:技能驱动,原生函数调用(非 Schema 注入)
  • 工具调用:原生工具以函数编译进运行时,MCP Server 按需加载
  • 技能数:107 → 96 个(清理后),SkillHub 生态
  • 技能管理:文件目录驱动,删除即消失
  • Token 瓶颈:技能列表占系统提示(非工具 Schema),清理后节省 ~25%

清理过程

两阶段清理,共删除 39 个无关技能:

阶段 删除数量 删除内容 效果
0.1 28 创意工具(comfyui、ascii-art、game-design 等)+ 5 个空壳伞形目录(apple、email、social-media、smart-home、messaging) 88→60
0.2 11 零频工具(heartmula、songsee、gif-search、maps、petdex、tui-widgets、pdf、audiocraft、polymarket、brainstorming、game-design) 107→96

核心差异

与 OpenSquilla 的最大不同:Hermes 不需要 deny 列表,也不需要 SPOT 原版的动态预筛选层。

维度 OpenSquilla Hermes
工具调用模型 74 个 JSON Schema 打包进 API 请求 40 个原生函数直接调用;MCP Server 按需加载
核心瓶颈 工具 Schema 文本占 48K chars/轮 技能列表占系统提示
裁剪机制 [tools] deny 列表(工具级,可逆) 物理删除技能文件(目录级,不可逆但有备份)
代理服务 不需要(被 deny 的工具无使用需求) 完全不需要(删了就删了,无中间态)
预筛选层 需要(embedding + flash 路由) 不需要(函数调用模型不走 Schema 打包)

适配方案

Step 1: 判断平台类型

首先确认你的平台属于哪一类。Hermes 属于函数调用型——工具以函数形式编译进运行时,不打包 Schema 进 API 请求。

如果你的平台是 Schema 打包型(如 OpenSquilla),请参考 case-study-opensquilla.md

Step 2: 吸收知识层

从 SPOT 项目复制知识层文件:

spot-framework/knowledge/
├── spot-tool-registry.yaml      → 分类方法论模板
├── spot-description-norm.md     → 描述规范(直接使用)
└── spot-tool-descriptions.json  → 描述映射表(参考格式)

Step 3: 技能分类

用 SPOT 的三级分类法对 Hermes 的技能分类:

类别 标准 操作 实际数量
core 高频使用,不可移除 保留 19
low_freq 低频但偶尔用到 保留 77
removable 零频/不相关 删除文件目录 11

Step 4: 执行裁剪

技能文件方式(推荐):直接删除 removable 类技能目录。Hermes 只管当下目录有什么,删了就消失。

MCP Server 方式(配合使用):在 MCP 配置中关闭不需要的 Server。Hermes 实际保留了 4 个 MCP Server(desktop-commander、playwright、postgres-mcp-pro、umi-ocr),一个未关。

Step 5: 记录执行层

创建 spot-e-cleanup.md 记录清理动作和分类依据,作为执行层文档。

与 OpenSquilla 的对比

维度 OpenSquilla 做法 Hermes 做法
知识层 共享同一套方法论和规范 直接复用
执行层 34 行 TOML deny 配置 输入 39 个文件删除命令
代理服务 不需要 不需要
Token 节省 39%(48K→29K Schema) ~25%(技能列表压缩)
工作占比 知识层 90% + 执行层 10% 知识层 90% + 执行层 10%

关键教训

先判断平台类型再选策略

不是所有 Agent 都需要 SPOT 原版的动态预筛选。函数调用型平台(如 Hermes)的 Token 瓶颈在技能列表而非工具 Schema,适配策略完全不同——静态清理即可,不需要预筛选层。

执行层极薄

无论哪个平台,执行层都只是"关掉/删掉不需要的东西"。SPOT 90% 的工作量在知识层(分类、描述、规范),而知识层是跨平台通用的。

技能 ≠ 工具

Hermes 的技能是知识模块(SKILL.md),通过 skill_view 按需加载。它们不是工具 Schema,不打包进 API 请求。这是 Hermes 与 OpenSquilla 最根本的架构差异。

不需要代理服务

Hermes 删除技能文件后,技能自动不可见。不像 OpenSquilla 的静态 toolkit 可能需要代理兜底。

适用判断

如果你的平台:

  • 使用技能文件目录 → 直接删除 removable 技能文件(参考本案例)
  • 使用 MCP Server → 关闭不需要的 Server
  • 两者都支持 → 按粒度需求选择方式
  • 不确定自己的平台类型 → 先看 TEMPLATE.md 第一步