Hermes最新技能列表与笔记抽屉的联动,本质上是把指令从静态菜单变成由使用数据驱动的动态队列。传统做法中,常用命令和低频命令混在一起,用户要么凭记忆输入关键词,要么在多层菜单里来回切换。Hermes把笔记抽屉作为一个轻量数据库,记录每条技能被调用的时间、次数以及触发时所在的笔记上下文,再把这些信号反馈给技能列表排序。结果就是高频指令在抽屉中自动靠前,低频指令自然下沉,用户不需要花时间整理分类。

一、Hermes技能列表与笔记抽屉的联动机制
技能列表并不是一个简单的命令数组。最新版本的Hermes允许每条技能携带三类信息:动作定义、触发条件和上下文权重。动作定义说明指令执行时调用哪个脚本或模板,触发条件决定输入什么前缀可以命中,上下文权重则由笔记抽屉提供。抽屉会记录你在哪些笔记中执行过该技能,以及执行前后是否修改了同一类内容。这个记录过程是自动的,不需要额外打标签。
举个例子,如果你经常在名为“每周复盘”的笔记中执行“汇总本周待办”指令,Hermes会在技能列表中增加该指令在“每周复盘”上下文中的权重。下次打开这篇笔记并唤起抽屉时,这条指令会排在靠前位置,而在其他笔记中它可能仍然保持默认排序。这样就把“在什么场景下用什么指令”的判断交给系统,而不是依赖你的记忆。
从实现角度看,联动依赖一个轻量的使用记录结构。下面这段JSON片段展示了Hermes最新技能列表中单条指令的典型字段,其中noteContext和recentCount直接参与抽屉排序。
{
"id": "summarize-weekly",
"name": "汇总本周待办",
"keyword": "week",
"action": "run_script",
"scriptPath": "scripts/weekly_summary.py",
"noteContext": ["每周复盘", "项目周报"],
"recentCount": 18,
"lastUsedAt": 1718178240
}
二、配置快速调用指令的完整步骤
要让笔记抽屉里的指令被快速调用,首先要把技能条目注册到Hermes的配置文件中。配置文件通常位于笔记库根目录的hermes_skills.json,也可以拆分成多个文件后通过主配置引用。每个技能至少需要id、name、keyword和action四个字段。其中keyword是触发词,建议使用短小且不易与正文冲突的字符串,例如w、todo或link。
第二步是配置动作。Hermes支持三种常见动作类型:运行脚本、插入模板和打开外部程序。运行脚本适合需要计算的指令,插入模板适合固定格式的笔记内容,打开外部程序适合跳转到其他工具。动作类型不同,所需的参数也不同。下面是一个插入模板的示例,它在笔记中追加一段会议纪要结构。
{
"id": "insert-meeting",
"name": "插入会议纪要",
"keyword": "mtg",
"action": "insert_template",
"template": "会议主题:\n参会人:\n结论:\n待办:",
"noteContext": ["会议记录"],
"priority": 4
}
第三步是绑定唤出方式。Hermes默认使用前缀触发,在笔记中先输入/或:,再输入技能关键词,抽屉会自动弹出匹配项。如果希望不打断输入节奏,可以给高频指令单独设置快捷键。快捷键绑定存放在keymap.json中,把skillId映射到组合键即可。这样配置完成后,在笔记任意位置按下快捷键,抽屉会直接执行对应指令并回填结果,不需要先呼出完整列表。
需要注意的是,前缀触发和快捷键并不是替代关系。前缀触发适合指令数量多、需要模糊查找的场景;快捷键适合每天使用几十次的核心操作。两者同时配置不会冲突,Hermes会优先响应快捷键,快捷键未命中时再回到前缀匹配。
三、利用排序权重和冷却时间压缩调用路径
技能列表的前后顺序直接影响调用速度。Hermes最新版本提供了三种排序信号:使用频次、最近使用时间和上下文匹配度。使用频次可以用recentCount字段表示,最近使用时间用lastUsedAt时间戳表示,上下文匹配度则根据当前笔记的标题或标签与技能noteContext数组的重合程度计算。综合分数越高,指令越靠前。
实际配置中,你可以给高频指令设置一个基础优先级priority,再把上下文增益作为附加分。比如基础优先级设为5,如果当前笔记命中noteContext,额外加3分。这样一条指令即使全局使用次数不高,只要在特定笔记中反复触发,也能在该场景里排到前两位。下面这段JavaScript代码展示了Hermes排序逻辑的简化实现,其中boost就是上下文命中的附加分。
function sortSkills(skills, currentNote) {
return skills.map(function (skill) {
var score = skill.priority || 0;
score += Math.min(skill.recentCount || 0, 20) * 0.3;
if (skill.noteContext) {
var hit = skill.noteContext.some(function (tag) {
return currentNote.title.indexOf(tag) >= 0;
});
if (hit) {
score += 3;
}
}
return { skill: skill, score: score };
}).sort(function (a, b) {
return b.score - a.score;
}).map(function (item) {
return item.skill;
});
}
冷却时间则用于避免某个指令在短时间内被重复触发后过度占据首位。如果某项操作只在某个阶段高频使用,之后不再需要,过高的排序会干扰后续选择。Hermes允许在技能条目中设置cooldownMinutes,单位是分钟。技能被调用后进入冷却,冷却期间权重按比例衰减。配合maxBoost可以限制上下文附加分的上限,防止单场景权重过大导致其他技能完全不可见。
一条建议是,不要把priority设成固定大值后就不管。优先使用上下文匹配和频次信号,让排序保持动态。固定优先级适合真正全局高频的操作,例如新建今日笔记、快速搜索全文、插入当前时间戳,这些指令在任何笔记中都应该排在前面。
四、避坑与维护:防止技能列表失控
技能列表最容易出现的问题不是配置错误,而是条目之间触发词互相覆盖。例如同时存在todo和to两个关键词,前缀匹配可能永远命中较短的那个,导致较长关键词无法触发。Hermes使用精确前缀优先策略,但如果你习惯输入完整单词,仍然可能被短词截胡。建议每个触发词至少保留两个字符的差异,或者在配置完成后实际输入几轮测试,观察抽屉弹出的第一项是否符合预期。
另一个常见问题是上下文标签写得太宽。如果把noteContext设置成“工作”“学习”这类大分类,几乎所有笔记都会命中,排序效果会迅速退化。更合适的做法是使用具体项目名、笔记模板名或固定后缀。比如“项目A周报”作为上下文,而不是“周报”。这样Hermes才能区分不同项目中的同类指令。
维护方面,建议每周查看一次抽屉里的使用统计。Hermes会在技能详情中显示最近调用次数和最后触发时间,如果某条指令连续两周没有被使用,可以考虑删除或降低优先级。反过来,如果某条指令你总是需要下滑才能找到,说明它的上下文标签还不够精确,或者基础优先级偏低。把这些数据反馈到配置中,技能列表才能逐渐稳定下来。
当技能数量超过五十条时,不建议全部塞进默认抽屉。可以按笔记目录或标签建立分组抽屉,每个抽屉只加载与当前场景相关的技能。这样既保留了快速调用的便利,也避免了列表过长导致的决策疲劳。
Hermes技能列表笔记抽屉快捷调用指令修改时间:2026-09-19 03:53:15