Hermes Agentがタスクコンテキストを忘れる理由
現在のエージェント実行におけるコンテキストの扱い方
実行は起動時にコンテキストを取得します。これには、指示、目標、アクセス可能なファイルやツールなどが含まれます。エージェントが作業を進めるにつれて、「このサービスがそのロジックを所有している」「このアプローチは失敗した」「この制約が重要である」といった理解を、自身のコンテキストウィンドウ内に構築していきます。しかし、実行が完了すると、それらのウィンドウは破棄されます。実行内容を書き込むストアが存在しないため、前回の実行でどれだけ多くのことを学習したとしても、次の実行は再び起動プロンプトから開始されます。
マルチエージェントが問題を悪化させる技術的な理由
マルチエージェントシステムは、問題を解決するどころか、むしろ倍増させます。各エージェントは独自のコンテキストウィンドウを持っており、それを共有していません。ハンドオフ(引き継ぎ)ではメッセージや要約が渡されますが、その背後にある推論プロセスは渡されません。そのため、受け取り側のエージェントは、その結論を導き出した制約条件を知らないまま、結論だけを引き継ぐことになります。並行して動作するエージェントは、お互いが何を確定させたかを確認できないため、同じ調査を重複して行ったり、矛盾する決定を下したりする可能性があります。そして実行が終了すると、N個のエージェント分の学習内容が一瞬にして消失します。
これによるコスト
すべての実行において「再発見の税金」が発生し、それは独立して動作するエージェントの数だけ倍増します。実行をまたいで決定が再議論されるため、先週却下されたはずの同じアプローチが来週また浮上します。ハンドオフの精度が低下し、技術的には正しくても、2ステップ前に確立された制約に違反するような成果物として現れます。そして、何も蓄積されません。10回目の実行は、1回目の実行と比べて何ら知識が向上していないのです。
一般的な回避策(とその限界)
起動プロンプトへの詰め込み
標準的な解決策は、アーキテクチャ、規約、制約、過去の決定など、すべてを起動時の指示に事前に詰め込むことです。これは機能しますし、多くの人が行っている方法です。しかし、これは手動の作業であり、肥大化して扱いにくくなります。また、各エージェントがそれを必要とするかどうかにかかわらず、実行ごとに入力トークンを消費し、自分が含めるのを覚えていた内容しかカバーできません。
1回の実行を長く維持する
単一の実行内に留まることでコンテキストは維持されますが、それもウィンドウが満杯になり、圧縮によって初期の詳細(通常は要件定義など)が脱落し始めるまでの話です。また、長時間の実行は失敗したときのコストが高くなります。1つの誤ったステップによって、蓄積された多くの状態が台無しになる可能性があります。
手書きの引き継ぎメモとファイル
実行の合間にステータスメモ(何が行われたか、何が決定されたか、次に何をすべきか)をディスクに書き出すことは、現実的で賢明な回避策です。しかし、これも完全に手動であり、忙しいときには省略されがちです。また、次の実行時にクエリで検索するのではなく、エージェントが再読して再解釈しなければならないテキストデータを作成することになります。
共通の壁:これらの方法はいずれも、実行の境界を越えて存続し、エージェント間で共有される、クエリ可能なメモリをエージェントに提供しません。これは、OpenClawがエージェントの状態を忘れる理由やタスクコンテキストを忘れる理由の背後にある根本的なギャップと同じです。
解決策:Hermesに永続的なタスクメモリを提供する
永続的なセットアップとは、実行の外部にあり、すべてのエージェントが読み取ることができ、すべてのエージェントの寿命よりも長く存続するメモリレイヤーのことです。MemoryLakeは、プロジェクトの知識、決定事項、制約条件を一度保存すれば、検索可能で、Gitスタイルのバージョン管理(2つのソースが矛盾した場合の競合検出機能付き)が行われ、エンドツーエンドで暗号化されるため、内部データを安全に保つことができます。これが、マルチエージェントの作業に欠けていた共有基盤となります。
ステップ 1: APIキーを作成する
MemoryLakeにサインインし、キーを生成して、最初のリクエストを送信します。これには約30秒しかかかりません。

ステップ 2: 最初のメモリをアップロードする
実行のたびに再発見されがちなもの(アーキテクチャやシステムドキュメント、恒久的な制約、決定記録、ランブックなど)を投入します。ドキュメント、画像、その他のファイルすべてに対応しています。その後、各実行の結論を1行のメモリとして記録することで、進捗がリセットされることなく蓄積されていきます。

ステップ 3: AIとエージェントを接続する
APIキーを使用してHermesを接続します。MemoryLakeは専用のインテグレーションとしてHermes Agentをサポートしているため、エージェントは起動時に貼り付けた情報に頼るのではなく、実行中に共有コンテキストを取得できます。同じメモリは、MCPまたはAPIを介してClaude、Codex、OpenClaw、その他のエージェントからも利用できるため、複数のツールにまたがるワークフローでも、単一の事実ソースに基づいて動作します。

マルチエージェント作業における「再発見」の実際のコスト
N倍される税金
単一のエージェントがコンテキストを再構築するコストが1だとすれば、5つのエージェントがそれぞれ並行して再構築するコストは5になります。これは、同じ再発見のために消費されるトークンと実時間であり、さらには、お互いの推論プロセスが見えないために2つのエージェントが矛盾する決定を下してしまうという、金額に換算しにくいコストも加わります。
再導出ではなく検索
共有レイヤーを使用すると、各エージェントはそのステップに必要な制約や決定を正確に引き出すことができ、ハンドオフでは情報の欠落しやすい要約ではなく、共有メモリへのポインタが渡されます。実行は十分な情報を持った状態で開始され、エージェントは調査の重複を止め、競合はリリース前にキャッチされます。MemoryLakeのToken Saving Calculator(トークン削減計算ツール)を使用すると、実際の使用状況からトークンへの影響を予測できます。
エージェントタスクメモリのベストプラクティス
すべての実行の最後に結論を書き出す
実行ごとに日付入りの1行(何が行われたか、何が決定されたか、何が失敗しその理由は何か)を記録することが、孤立した実行を累積的な進歩へと変える鍵です。これは、次の実行がクエリを実行できる形式にした、自動化された引き継ぎメモと言えます。
制約をプロンプトに含めるだけでなく、検索可能にする
起動プロンプトにしか存在しない制約は、コンテキストの圧縮が一度行われるだけで無視されてしまう危険性があります。検索可能なメモリにあれば、どのステップのどのエージェントでもそれを確認できます。
ワークフローごとにスコープを分ける
ワークフローやプロジェクトごとに1つのメモリ範囲(スコープ)を設定することで、検索の精度を高く保ち、あるパイプラインの制約が別のパイプラインのエージェントに影響を与えるのを防ぐことができます。
結論
Hermesはエージェントの調整に優れていますが、単独では「記憶する」ことができません。各実行はプロンプトから開始され、各エージェントは自身のウィンドウしか見えず、学習した内容は実行終了時にすべて消えてしまいます。そのため、マルチエージェントの作業は蓄積されることなく、再発見を繰り返すことになります。システムに共有の永続メモリを提供すれば、この状況は逆転します。エージェントは共通の事実を通じて連携し、ハンドオフで推論が失われることはなくなり、10回目の実行は9回分の蓄積された知識から開始されます。エージェントを何もない空の部屋に何度も放り込むのは、もう終わりにしましょう。