学習ループと記憶
源码版本v2026.7.20
職務
これは Hermes が普通の agent と一線を画す核心:「使うほど良くなる」ループ。毎ラウンドの対話を次のように沈殿させる:① スキル進化——経験からスキルを作成/書き換え(agent/learning_mutations.py)。② 記憶——FTS5 全文検索 + LLM 要約による過去対話検索(memory_manager)、Honcho の弁証式ユーザーモデリングと組み合わせる。③ 学習グラフ——スキルと記憶をノード/辺に構成(agent/learning_graph.py)。④ バックグラウンド審視——background_review がスレッドで履歴を消化し、実行可能な書き換え動作を産出する。スキル書き換えは最終的にスキルシステムに還流し、後続ラウンドで再利用される。
主要ファイル
スキルノードと学習グラフ
@dataclass SkillNode:28-41— スキルノードスキル読み込み:77-125—_iter_skill_files/build_skill_nodes(skills/を走査し nodes を構築)辺と統計:156-193—build_edges/density_stats(スキル間関連)記憶-スキル辺:193-227—_memory_cards/_memory_skill_edges(記憶とスキルの関連)build_learning_graph:248-328— 集約して完全な学習グラフを産出_load_usage:84-97— 使用統計(どのスキルがよく使われるかを指導)
スキル/記憶書き換え
node_detail:86-124— あるノードの詳細を閲覧delete_node:124-157— スキルまたは記憶を削除edit_node:157-200— スキルまたは記憶の内容を編集_clear_skill_cache:200— 書き換え後にキャッシュクリア(次ラウンドに反映)記憶位置特定:30-65—_memories_dir/_parse_memory_id/_locate_memory
記憶管理
class MemoryManager:354— 記憶マネージャ本体memory provider ツール注入:83-164—memory_provider_tools_enabled/inject_memory_provider_toolsbuild_memory_context_block:337-354— 記憶をコンテキストブロックに組み立てプロンプトに注入sanitize_context:164-172— コンテキスト秘匿化(FTS5 インデックス前)StreamingContextScrubber:172-337— ストリーミング出力の秘匿化
バックグラウンド審視
spawn_background_review_thread:956— バックグラウンド審視スレッド起動_run_review_in_thread:617— スレッド内主ループ_digest_history:122-373— 直近 24 件の履歴を要約summarize_background_review_actions:373-590— 審視動作を集計build_memory_write_metadata:590-617— 記憶書き込みのメタデータ
データフロー
- 毎ラウンドの対話終了後、主ループはメッセージスナップショットをバックグラウンド審視スレッドに渡す(
agent/background_review.py:956)。 _digest_history(agent/background_review.py:122) が直近履歴を要約し、候補動作(スキル新規/書き換え、記憶書き込み)を産出する。- スキル書き換えは
edit_node:157/ 削除はdelete_node:124でディスクに落ち、_clear_skill_cache:200でキャッシュをクリアする。 - 記憶書き込みは
MemoryManager:354経由、秘匿化(agent/memory_manager.py:164) 後に FTS5 インデックスを構築し、LLM 要約で圧縮する。 - 次ラウンド対話開始時、
build_memory_context_block(agent/memory_manager.py:337) が関連記憶をbuild_turn_context:268に組み込む。スキルはagent/skill_bundles.pyで注入する。 - 完全な学習グラフは
build_learning_graph:254が集約し、UI/デバッグがスキルと記憶の関連を表示するのに供する。
まとめ
学習ループは「対話」を「資産」に変える:バックグラウンド審視が経験をスキルと記憶に沈殿させ、次ラウンドで自動注入する。四点セット——learning_graph(グラフ)、learning_mutations(書き換え)、memory_manager(検索+秘匿化+要約)、background_review(非同期消化)。これが Hermes の「ユーザーと共に成長する」機構の基盤であり、Hermes と「ステートレスな LLM 呼び出し」の根本的な違いでもある。