AIエージェントが会話のたびにメモリやスキルを書き換えると、誤った前提がそのまま次のセッションに残ります。Nous ResearchのHermes Agentは、2026年6月10日に「Write Gate」を公開し、この自己学習ループに人間の承認を挟めるようにしました。
この記事では、Write Gateが何を守るのか、設定方法、危険コマンド承認との関係を整理します。
- Write Gateが制御する対象(メモリ更新・スキル更新・スキル作成)
memory.write_approvalとskills.write_approvalの設定- 承認・拒否のスラッシュコマンド一覧
- 小規模モデル運用やバックグラウンド自己改善との関係
Write Gateとは
Write Gateは、Hermes Agentが自分のメモリやスキルファイルへ書き込む前に、ユーザーの承認を求める仕組みです。開発者のTeknium氏は、危険なシェルコマンドを止める承認フローと同じ操作感で、メモリ更新・スキル更新・スキル作成を承認または拒否できると説明しています(参考)。
Hermes Agentは、会話から得た事実を MEMORY.md と USER.md に保存し、手順やパターンは SKILL.md として ~/.hermes/skills/ に蓄積します。ターン終了後にはバックグラウンドの自己改善レビューが動き、ユーザーが気づかないうちにメモリやスキルが更新されることもあります。Write Gateは、この「エージェント自身による書き込み」にゲートをかけます。
なぜ必要か
自己改善型エージェントの強みは、使うほど手癖を覚えることです。反面、モデルが誤解した内容をそのまま記憶すると、以降の応答が歪んだ前提で進みます。公式ドキュメントでも、「エージェントが私について誤った前提を保存した」という不満への対策として write_approval が挙げられています。
Teknium氏は、常に何を保存すべきか判断しきれない小規模モデル向けの用途も示しています。スキル側のドキュメントでも、学習内容の判断を誤しやすい小さなモデルや、セキュアな環境で自己改善ループを目視確認したい場合にゲートを有効にする、と書かれています。
変更点の概要
Write Gateの実体は、設定ファイル ~/.hermes/config.yaml の2つのブール値です。
memory.write_approval… メモリへの add / replace / removeskills.write_approval… スキルの create / edit / patch / delete など
どちらもデフォルトは false で、従来どおり自由に書き込めます。true にすると承認が必要になります。2026年6月のリファクタ(PR #43354)で、以前の3値 write_mode(on / off / approve)がこのオンオフ型に整理され、「ゲートが有効かどうか」が設定名から読み取りやすくなりました。
メモリ書き込みの動き
memory.write_approval: true のとき、フォアグラウンドのCLIではメモリエントリが小さいため、その場で内容を読んで承認できます。TelegramやDiscordなどのメッセージング経由、およびバックグラウンド自己改善レビューからの書き込みは、いったんステージングされ、/memory pending で一覧を確認します。
/memory pending
/memory approve <id>
/memory reject <id>
/memory approval on
バックグラウンド由来の提案には [auto] タグが付きます。承認するまでディスク上のプロファイルには反映されません。
スキル書き込みの動き
スキルは SKILL.md が長くなるため、Write Gate有効時は常にステージングされます。チャット画面では一行の要約だけが見え、全文の差分は別途確認します。
/skills pending
/skills diff <id>
/skills approve <id>
/skills reject <id>
/skills approval on
ステージされた変更は ~/.hermes/pending/skills/ に保存され、再起動後も残ります。CLIやダッシュボードで unified diff を読むか、該当JSONを直接開いて中身を確認できます。
危険コマンド承認との違い
Hermes Agentはもともと、破壊的なシェルコマンドに対して approvals.mode(manual / smart / off)とTirithスキャナによる人間承認を備えています。Write Gateはこの「実行前ゲート」とは別レイヤーで、エージェントの長期記憶と手順ライブラリへの書き込みを対象にします。
また skills.guard_agent_created は、危険なキーワードパターンを検出するコンテンツスキャナです。Write Gateの承認フローとは独立しており、スキャンはパターン検知、Write Gateは「書き込みそのものの許可」という役割分担になっています。
有効化の手順
~/.hermes/config.yamlを開き、必要なゲートだけtrueにする
memory:
write_approval: true
skills:
write_approval: true
- 実行中のセッションからは
/memory approval onや/skills approval onで切り替え可能で、設定は永続化されます - メモリを完全に止めたい場合は
memory_enabled: falseを使います。Write Gateは書き込みの承認であり、メモリ機能そのもののオンオフではありません
小規模モデルでHermes Agentを常時稼働させるなら、まずメモリ側のゲートだけ有効にし、自己改善でスキルが増えてきた段階で skills.write_approval もオンにする、という段階的な運用が現実的です。承認待ちが溜まったら pending で中身を確認し、不要な学習は reject で捨てれば、エージェントの成長を人間の判断で方向づけられます。