LightVelaドキュメント
概要
Hermes Agentの長期記憶のキュレーションは、より多くを保存することではなく、記憶を「少数だが正確」に保つ4つの鉄則に従う:
- 制限付き:
USER.mdは約1,375文字、MEMORY.mdは約2,200文字で、簡潔さを強制します。 - 固定: セッション内での書き換えを行わず、KVキャッシュと推論の安定性を保護します。
- 透明: すべての書き込みが通知され(
💾 Memory updated)、/journeyで承認、取り消し、レビューが可能です。 - 自己統合: 容量が満杯のときに何も黙って破棄されず、
Memory at 2,100/2,200 chars. Consolidate now...の応答がエージェントに三つの基本操作add / replace / removeでトレードオフを行うことを強制します。
結果:エージェントは時間とともにあなたをよりよく理解しますが、膨張することはなく、記憶は豊かになりますが、制御不能になることはありません。
よくある誤解
「AIアシスタントが多くを記憶するほど、それは賢くなる。」
実際はその逆です。質の混在した情報を大量に記憶することは、エージェントを愚かにします — 一時的な間違い、過去の誤情報、古い発言をあなたに関する安定した事実として扱い始めます。本当に有用な長期記憶システムは常に少数で正確です。
それを実現するために、Hermesは4つの質問に答えます:
- 何が長期記憶に入るに値するのか?(書き込みゲート)
- 入ってくる断片はどのようにして完全な記録になるのか?(キュレーション)
- 情報が変わったとき、何が起こるのか?(更新意味論)
- 容量がいっぱいになったとき、何が起こるのか?(強制統合)
以下のセクションでは、これら四つのプロセスを順に説明します。
1. 書き込み:エージェントが最初のゲートとなる
ヘルメスの最初のゲートは書き込みフィルターです。すべての文を保存する代わりに、エージェントは四つの明確な瞬間で自分自身で判断して書き込むかどうかを決めます:
- 圧縮: コンテキストが限界に近づくと、エージェントは現在のセッションをレビューし、セッションを超えて保持する価値があるものを抽出します。
- チェックポイント: タスクを終了したりトピックを切り替えたりする際に、記憶の棚卸しを行います。
- ナッジ: システムは定期的にエージェントに「この範囲で長期記憶に残す価値のあるものはありますか?」と尋ね、重要な断片が失われないようにします。
- 明示的なユーザー指示: 「Xを覚えてください」の指示は優先的に扱われます。
判断基準には通常以下が含まれます:
| 観点 | 意味 | 反例 |
|---|---|---|
| 再利用性 | 後の他の作業で役立つ可能性がありますか? | 「今日はラテが欲しい」 |
| 安定性 | 一時的ですか、それとも長期的ですか? | 「今日は頭が痛い」 |
| 具体性 | 漠然とした態度ですか、それとも再利用可能な事実ですか? | 「もう少し簡潔な方が好きかもしれません」 |
| プライバシーの敏感度 | メール、パスワード、住所などが明示的に確認されていない | デフォルトでは書かれていません |
よく訓練されたHermes Agentは、注意せずに覚えるよりも、覚えすぎない方を好むでしょう。
2. キュレーション: フラグメントをエントリに書き換えること
書き込みフィルターを通過した後でも、入ってくる情報は通常断片的です。Hermesの第二ステップは、フラグメントを適切な形のエントリに書き換えることです。
例えば、生の会話は次のようなものかもしれません:
「ああそうだ、うちのAPIが直接サービスに当たるのではなくゲートウェイ経由に切り替わったのは先週のことだった。」
Hermes はそれを逐語的に保存しません。書く内容は次の通りです:
- [~2026-07-24] Project X's API now routes through the gateway instead of connecting directly.そこでは4つのことが起こりました:
- 事実抽出:"ああ、そうだ" のような填充語は削除されます。
- 主語解決:"我々のあの API" は "Project X" になります。
- 時間のアンカー付け:"先週" はおおよその日付に変換されます。
- 検索可能性:構造化されたエントリとして書かれ、後で FTS5 が一致させることができます(マッチに約20ms、ページ表示に約1ms)。
構造化されたキュレーションの後でのみ、エントリは数か月後に呼び出される可能性を持ちます。
3. 3つの原子的操作: 追加 / 置換 / 削除
HermesがMEMORY.mdに行うすべての変更は、次の3つの原子的操作のいずれかで行われます:
| 操作 | 意味 | トリガー |
|---|---|---|
| 追加 | 新しいエントリを追加 | 新しいイベント、新しい決定 |
| 置換 | 古いエントリを新しいもので上書き | 状態の変更(「APIは今ゲートウェイを通る」が「APIが直接接続する」を置き換える) |
| 削除 | 物理的削除 | ユーザーの拒否、期限切れのエントリ、統合によって古いエントリが統合され消えたもの |
なぜあいまいな操作(「関連フィールドだけ更新」など)は許可されないのですか?
理由 1: 原子操作は監査可能です。すべてのメモリ変更は「このエントリ → あのエントリ」に対応し、これが /memory diff <id> のような正確なレビューを可能にします。
理由 2: エージェントに明確な判断を強制するからです。「置き換えるのか、それとも追加するのか?」— この二択がトレードオフの始まりであり、二重人格を防ぎます。
理由3:これは承認ゲート(セクション7)の基盤を築きます。ここでは、保留中の各項目を独立して承認または却下できます。
4. 更新の意味論:まず変更し、決して反対を追加しない
ここで単純なメモリシステムは問題を起こします:情報が変わったとき、何が起こるか?
単純な方法は、別のエントリを追加することですが、これによりエージェントはすべてを同時に保持することになります:
- "ユーザーはVueを好む"
- "ユーザーは後でReactに切り替えた"
- "ユーザーは再びVueに戻った"
三つの平行するエントリがあり、モデル自体はどれを信頼すべきかわからなくなっています。
Hermesは追加するのではなく更新します:
USER.md内の好みのフィールドは古い値を上書きする傾向があります(replace)。MEMORY.mdでは、過去の出来事は保持されますが、現在の状態フィールドは更新されます(replace)、短い移行の痕跡が残ります。- ユーザーが明示的に否定したもの(「私はそんな人ではなかった」)は
removeされ—物理的に削除され、「ユーザーがXを否定した」と記録されることはありません。
これらすべてのポイントは、エージェントの世界モデルを自己矛盾なく保つことです。
5. 容量がいっぱいになったら:今すぐ統合
HermesはMEMORY.mdに対して約2,200文字のハード上限を設定しています。容量が埋まると、addの返答は次のようになります:
{
"success": false,
"error": "Memory at 2,100/2,200 chars. Consolidate now...",
"current_entries": [...],
"usage": "2,100/2,200"
}それはバグではなく、設計です。
もし容量がいっぱいになると最も古いエントリが自動的に削除されると、エージェントはトレードオフを学習できません。重要な情報が削除され、関係のない情報が残ってしまう可能性があります。Hermesは逆の方法を取ります:エージェント自身がスペースを確保するまで書き込みは拒否されます。
統合には通常次が含まれます:
- トピック集約: 複数の類似するエントリが、LLMによって1つのより広いメモリにまとめられます。
- 期限アーカイブ: 「今週のスプリント目標は…」は、日付が過ぎた後に
removeされます。 - アクセス頻度の重み下げ: 長期間参照されていないエントリはキューの後ろに移動され、最初に統合または削除されます。
これらの仕組みを組み合わせることで、数か月前の何気ない発言がエージェントのあなたに対する判断を汚し続けることはなくなり、一方で本当に重要な情報は繰り返し強化されます。
6. 同意を意識した学習ループ: エージェントはあなたを中断せずにバックグラウンドで学習します
Hermesにはもう一つ隠れた機能があります: バックグラウンド自己反省ループ。それは定期的に以下を行います:
- 最新のセッションを取得します;
- それらに対して安価なモデル(例えばGemini Flash)を実行し、覚えておく価値のあるものを抽出します;
[auto]とマークされた候補メモリエントリを生成します。
上流ではこれを同意を意識した学習ループと呼んでいます — 学習はユーザーを中断すべきではありませんが、ユーザーはいつでも介入できます。
利点は次の通りです:
- コストは3分の1または5分の1に低下:安価なモデルがレビューを担当し、上流のテストでほとんどキャプチャ品質に影響を与えません。
- エージェントは使用していなくても成長します — オンラインのままでいる限り。
- 前景の会話への干渉なし:候補エントリは次のセクションの承認ゲートであなたを待ちます。
7. 承認ゲート:エージェントが独自に行動することに不安がある場合
一部のユーザーは心配します:「エージェントがMEMORYに間違って何かを書き込んだらどうしよう?」
Hermesは明示的なスイッチを提供します:
memory:
write_approval: true # turn on the approval gateそれをオンにすると、すべてのメモリ書き込み(バックグラウンドリフレクションからの自動書き込みも含む)がレビュー用に一時的に保留されます。ユーザーは次の方法でそれらを確認します:
/memory pending # list pending entries (background reflection marks them [auto])
/memory diff <id> # inspect a specific change
/memory approve <id> # approve (or all)
/memory reject <id> # rejectスキルは別のskills.write_approvalを持っています。なぜならSKILL.mdは長く、インラインで表示するには不便だからです。Hermesは/skills diff <id>を提供しており、完全な統合差分を読むことができます。
承認ゲートは本質的に、エージェントの自律的学習とユーザー主権を明示的に分離するものです — エージェントは自由に経験を蓄積できますが、ユーザー自身の記録のすべての書き換えはユーザーを通過する必要があります。
8. 透明性:すべてのメモリ更新を見ることができます
Hermesはメモリアクションをリアルタイムで通知として表示します:
| 設定 | 表示方法: |
|---|---|
off | サイレント書き込み、表示なし |
on(デフォルト) | 💾 Memory updated |
verbose | 💾 Memory ➕ User prefers terse replies(内容プレビュー付き) |
「何かが記憶された」から「この正確な項目が記憶された」まで、粒度はあなたが選べます。そのレベルの可観測性はAIエージェントの中でも稀です — 大多数はメモリをブラックボックスとして扱います。
9. 学習の旅:エージェントの成長を振り返る
エージェントが数か月にわたって学んだことを振り返りたい場合、Hermesは/journey(別名/learning、/memory-graph)を提供します:
- CLI:
hermes journey(--playアニメーション再生および--jsonエクスポートをサポート) - TUI:
/journeyオーバーレイ - デスクトップ: スターマップインタラクティブパネル
対応するクリーンアップコマンド付き:
hermes journey list # list all nodes
hermes journey delete <node> # archive a Skill (recoverable) or delete a memory
hermes journey edit <node> # open in $EDITORこのツールは単なる新奇性以上の意味があります — それは現実の何かを認めています: エージェントの成長の仕方自体が振り返る価値があるのです。
10. なぜこの抑制が実務で重要なのか
上記のすべてをまとめると、Hermesの記憶に関する哲学は四つの鉄則に集約されます:
- 制限付き:文字数の上限が簡潔さを促します。
- 固定:セッション内での変更はなく、キャッシュを保護します。
- 透明:すべての書き込みはユーザーに見え、承認や元に戻すことが可能です。
- 自己統合型:ストアが満杯になっても黙って捨てられることはなく、エージェントはトレードオフを強いられます。
「AIメモリ」をマーケティングする際、多くの製品はどれだけ大きなメモリをサポートできるか、どれだけのエントリを保持できるかを強調します。しかし、ユーザーの視点では、重要なのは次の三つだけです:
- 本当に重要なことを覚えていましたか?
- もはや有効でない情報を速やかに更新しましたか?
- 無関係なことをたくさん覚えたせいで、冗長になったり、ミスが増えたりしませんか?
「覚えるべきでないことを知る」ことができるメモリシステムは、良いメモリシステムです。
11. 実際にこれを機能させるためには、まだ一つ足りないものがあります
どれほど記憶メカニズムが優れていても、前提条件が一つある:エージェントが生き続けること
もし自分のノートパソコンにHermesをインストールすると、蓋を閉じるたびにスリープしてしまい、バックグラウンドのリフレクションループが停止し、nudge_intervalは次のトリガーに到達しません。マシンを切り替えたりOSを再インストールしたりすると、~/.hermes/を手動で移動させる必要があります。
ここでクラウドホスティングが本当に役立ちます。LightVelaは クラウドホストされた Hermes Agent サービス です:
- 専用のクラウドインスタンスが24時間365日オンラインで稼働し、
MEMORY.md/USER.md/ SQLiteセッションアーカイブがそこに常駐します; - バックグラウンドのリフレクションループは動き続けるので、使用していないときでもエージェントは本当に成長します;
- データはあなた専用のサーバーにのみ保持されます;
- 電話、ノートパソコン、Telegram、Slack、Lark — すべてのチャンネルはあなたのことを知っている同じエージェントに届きます。
エルメスは「記憶が多ければ多いほど良いわけではない」という哲学を論理的な結論まで追求しました。LightVelaはその哲学を毎日あなたのすぐそばで実践します。 これこそが、時間をかけてあなたをよりよく理解するという約束が実際に果たされる方法です。
重要なポイント
- 優れた記憶システム = 厳格な書き込み + 構造化されたキュレーション + 3つの基本操作 + 強制的な統合 + 背景での省察 + 承認ゲート + 完全な透明性
- より多くを覚えることが賢いことを意味するわけではありません。「覚えるべきでないこと」を認識し、トレードオフを強いられることの方が重要です。
- Hermesはエンジニアリングのリファレンスを提供します;LightVelaはそれをユーザーが実際に体験できるプロダクト体験に変えることを目指しています。
最終更新日: 2026-08-28
LightVelaドキュメント
USER.mdとMEMORY.mdはHermes Agentの長期記憶の背後にある2つの個人用ノートであり、それらを統合できない理由は3つの厳格な制約で説明できます。まず、容量は独立しており(USER.mdは約1,375文字/500トークン、MEMORY.mdは約2,200文字/800トークン)、どちらも他方を圧迫しません。
Standard procedure for writing a PR description
記憶とスキルはどちらも長期記憶ですが、根本的に異なります。記憶は宣言的記憶です:事実、出来事、結論、好みを短いエントリーとして保存し、クエリが一致したときに呼び出されます(MEMORY.md + memories/)。