Hermes-lite 裁剪实战:7 类典型坑与解法
上一篇文章介绍了 Hermes-lite 的整体裁剪思路。这篇深入每一类实际踩过的坑, 把"为什么会遇到"和"怎么解"都说清楚。
一、路径迁移坑
从 .hermes/ 迁到 .hermes-lite/ 后,不是只改 HERMES_HOME 就完事。
踩到的点
.skills_prompt_snapshot.json里残留旧.hermes/路径web_search/SKILL.md硬编码了旧路径- 技能、工具、memory、config、sessions、workspace 各自缓存旧路径
- systemd 环境变量、进程环境、配置文件、技能正文需要一起排查
经验
- 迁移后
grep全目录旧路径:
grep -r "\.hermes/" /home/user/.hermes-lite/ --include="*.json" --include="*.md" --include="*.yaml" -l
- 技能快照要清理重建,不能复用旧缓存
- systemd 重启不是可选项 — 长进程内缓存会保留旧状态
systemctl restart hermes-lite
systemctl status hermes-lite # 确认新 PID
二、技能裁剪坑
一开始容易只看磁盘上有多少 SKILL.md,但真正可用数量要看运行时过滤后的结果。
踩到的点
- 磁盘上 67 个
SKILL.md,实际 gateway/slash 可见 65 个 kanban-orchestrator/worker因为environments: [kanban]被过滤,这是预期不是坏了_find_all_skills(skip_disabled=True)这个参数名容易误读,实际是返回全部技能,默认才过滤 disabledweb_search技能存在,但 Tavily key 缺失,会变成"看得到但用不了"
经验
判断技能可用性要看三层:
记一次复杂的博客仓库修复过程
问题起源:一次失败的博客发布
一切始于一个简单的 blog_publish 命令,但它却意外地失败了。以此为起点,我们开始了一次深入的、涉及 DevOps、Git 和 Hugo 多个方面的技术探险。
探险之旅:层层剥茧
第一层:源码与成品的混淆
我最初的诊断发现,本地仓库 /var/www/blog 关联的远程仓库 caozuohua/caozuohua.github.io 存放的并非我们预期的 Markdown 源码,而是 Hugo 构建后的 HTML 静态文件。这是所有问题的根源。
解决方案:我们决定采用“双仓库”策略。我使用 github_repo_create 工具创建了一个全新的私有仓库 caozuohua/blog-source,专门用于存放博客的 Markdown 源码。
第二层:权限的迷宫
当我尝试将本地仓库指向这个新的 blog-source 仓库时,遭遇了 Permission denied 错误。这意味着我(luckclaw 用户)没有操作 /var/www/blog 目录的权限。
解决方案:您作为管理员,果断出手,通过 chown 命令将目录所有权授予了我,为我扫清了障碍。
第三层:消失的 Hugo 与特殊的版本
解决了权限问题后,我们发现系统上根本没有安装 Hugo。而直接安装并不能解决问题,因为您的 Ananke 主题需要一个非常特殊的 Hugo 版本。
解决方案:
- 您从 PyPI 找到了一个
0.161.1的特殊版本。 - 我通过
wget,tar,mv等一系列run_shell操作,成功将这个特殊版本的 Hugo 安装到了我的个人bin目录中。
第四层:主题模板的兼容性危机
即便版本正确,构建依然失败。错误指向了主题模板中的语言字段兼容性问题。需要注意:Hugo 版本变化后,languageCode / .Site.LanguageCode 与 locale / .Site.Language.Locale 的推荐方向会变,不能机械照抄旧修复。