函数调用型(非 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 打包) |
首先确认你的平台属于哪一类。Hermes 属于函数调用型——工具以函数形式编译进运行时,不打包 Schema 进 API 请求。
如果你的平台是 Schema 打包型(如 OpenSquilla),请参考 case-study-opensquilla.md。
从 SPOT 项目复制知识层文件:
spot-framework/knowledge/
├── spot-tool-registry.yaml → 分类方法论模板
├── spot-description-norm.md → 描述规范(直接使用)
└── spot-tool-descriptions.json → 描述映射表(参考格式)
用 SPOT 的三级分类法对 Hermes 的技能分类:
| 类别 | 标准 | 操作 | 实际数量 |
|---|---|---|---|
| core | 高频使用,不可移除 | 保留 | 19 |
| low_freq | 低频但偶尔用到 | 保留 | 77 |
| removable | 零频/不相关 | 删除文件目录 | 11 |
技能文件方式(推荐):直接删除 removable 类技能目录。Hermes 只管当下目录有什么,删了就消失。
MCP Server 方式(配合使用):在 MCP 配置中关闭不需要的 Server。Hermes 实际保留了 4 个 MCP Server(desktop-commander、playwright、postgres-mcp-pro、umi-ocr),一个未关。
创建 spot-e-cleanup.md 记录清理动作和分类依据,作为执行层文档。
| 维度 | 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第一步