这份文档取代之前那份
hermes-agent-security-hardening-status.md。旧文档里有两处错误:
让你改
/root/.hermes/SOUL.md,Hermes 实际读的是/opt/data/SOUL.md。提到
skills.allow_create,你装的版本里没有这个选项。
一、已经落地的改动(均有终端输出验证)
二、为什么这样改
技能和记忆里原本要求"用 Python 重写加 BOM、再 cp 进 vault、每次做十六进制验证",和 SOUL.md 的规则直接冲突,行为上模型照技能走。
HERMES_WRITE_SAFE_ROOT只约束write_file和patch,终端和代码执行不受它约束,所以放开raw/这一个目录,让write_file能直接写进去,就不再需要绕路。write_approval打开后,模型新建或修改技能、记忆不会直接生效,而是暂存等你批准。
三、日常怎么看和批准
在群里发:
/memory、/skills:显示审批开关状态和待批准列表/memory pending:只看待批准的记忆/skills diff <id>:查看某条技能改动的差异approve / reject 子命令在
write_approval_commands.py中存在,具体写法等第一次出现待批准条目时再确认
待批准记录存放在 /opt/data/pending/{memory,skills}/。
四、验证清单(在群里新开会话后执行)
发一个网页转笔记任务。
观察写文件那一步有没有 🐍 或 💻 图标。
观察保存后有没有再做十六进制、行数、字节数验证。
观察那两行英文警告(File-mutation verifier / Write denied)是否还出现。
确认文件存在:
ls -lt /vol3/1000/docker/obsidian-vault/学习资料区/raw | head -5补 BOM:
/root/add-bom.sh发
/memory和/skills,看有没有模型试图改动而被暂存的条目。
五、还没做的
hermesII实例:同样的 SOUL.md、技能、记忆、compose、config 改动要照搬一遍。add-bom.sh的定时执行:crontab -e加*/10 * * * * /root/add-bom.sh。未核实:新开会话的命令名(
/new是我的推测)。
六、全部回滚(如需恢复原状)
cp /vol3/1000/docker/hermes/data/SOUL.md.bak /vol3/1000/docker/hermes/data/SOUL.md
cp /vol3/1000/docker/hermes/docker-compose.yml.bak /vol3/1000/docker/hermes/docker-compose.yml
d=/vol3/1000/docker/hermes/data
cp ~/web-to-note.SKILL.md.bak $d/skills/web-to-note/SKILL.md
cp ~/link-organization.SKILL.md.bak $d/skills/note-taking/link-organization/SKILL.md
cp ~/MEMORY.md.bak $d/memories/MEMORY.md
cp ~/USER.md.bak $d/memories/USER.md
cd /vol3/1000/docker/hermes && docker compose up -d --force-recreate hermes
评论区