MemoryLake
すべての記事に戻る
Tutorial2026年7月29日·6 分で読了

Hermes Agentがタスクコンテキストを忘れるのを防ぐ方法 (2026)

Hermesはマルチエージェントのワークフローをうまく処理します。タスクを分割し、エージェントをディスパッチし、結果を収集します。しかし、実行が終了すると、エージェントがその過程で解明したすべてのことも一緒に消え去ってしまいます。明日の実行では、同じリポジトリ構成を再発見し、同じドキュメントを再読し、前回の実行ですでに解決したはずの決定を再び下すことになります。さらに悪いことに、1回の実行の中でも、ステップ3を完了したエージェントは、ステップ1のエージェントが実際にどのような推論を行ったのかをまったく把握していないことがよくあります。

結論から言うと、Hermesがタスクコンテキストを忘れてしまうのは、エージェントが構造上ステートレスであるためです。各実行は起動時に渡された情報から開始され、各エージェントは自身のコンテキストウィンドウのみを保持し、学習したこと、決定したこと、あるいは除外したことを永続的に記録する仕組みがありません。

ここでは、実行間およびエージェント間でコンテキストが消失してしまう理由、一般的な回避策が実際に達成できること、そしてHermesに永続的な共有タスクメモリを提供する方法について解説します。

Hermes Agentがタスクコンテキストを忘れる理由

現在のエージェント実行におけるコンテキストの扱い方

実行は起動時にコンテキストを取得します。これには、指示、目標、アクセス可能なファイルやツールなどが含まれます。エージェントが作業を進めるにつれて、「このサービスがそのロジックを所有している」「このアプローチは失敗した」「この制約が重要である」といった理解を、自身のコンテキストウィンドウ内に構築していきます。しかし、実行が完了すると、それらのウィンドウは破棄されます。実行内容を書き込むストアが存在しないため、前回の実行でどれだけ多くのことを学習したとしても、次の実行は再び起動プロンプトから開始されます。

マルチエージェントが問題を悪化させる技術的な理由

マルチエージェントシステムは、問題を解決するどころか、むしろ倍増させます。各エージェントは独自のコンテキストウィンドウを持っており、それを共有していません。ハンドオフ(引き継ぎ)ではメッセージや要約が渡されますが、その背後にある推論プロセスは渡されません。そのため、受け取り側のエージェントは、その結論を導き出した制約条件を知らないまま、結論だけを引き継ぐことになります。並行して動作するエージェントは、お互いが何を確定させたかを確認できないため、同じ調査を重複して行ったり、矛盾する決定を下したりする可能性があります。そして実行が終了すると、N個のエージェント分の学習内容が一瞬にして消失します。

これによるコスト

すべての実行において「再発見の税金」が発生し、それは独立して動作するエージェントの数だけ倍増します。実行をまたいで決定が再議論されるため、先週却下されたはずの同じアプローチが来週また浮上します。ハンドオフの精度が低下し、技術的には正しくても、2ステップ前に確立された制約に違反するような成果物として現れます。そして、何も蓄積されません。10回目の実行は、1回目の実行と比べて何ら知識が向上していないのです。

一般的な回避策(とその限界)

起動プロンプトへの詰め込み

標準的な解決策は、アーキテクチャ、規約、制約、過去の決定など、すべてを起動時の指示に事前に詰め込むことです。これは機能しますし、多くの人が行っている方法です。しかし、これは手動の作業であり、肥大化して扱いにくくなります。また、各エージェントがそれを必要とするかどうかにかかわらず、実行ごとに入力トークンを消費し、自分が含めるのを覚えていた内容しかカバーできません。

1回の実行を長く維持する

単一の実行内に留まることでコンテキストは維持されますが、それもウィンドウが満杯になり、圧縮によって初期の詳細(通常は要件定義など)が脱落し始めるまでの話です。また、長時間の実行は失敗したときのコストが高くなります。1つの誤ったステップによって、蓄積された多くの状態が台無しになる可能性があります。

手書きの引き継ぎメモとファイル

実行の合間にステータスメモ(何が行われたか、何が決定されたか、次に何をすべきか)をディスクに書き出すことは、現実的で賢明な回避策です。しかし、これも完全に手動であり、忙しいときには省略されがちです。また、次の実行時にクエリで検索するのではなく、エージェントが再読して再解釈しなければならないテキストデータを作成することになります。

共通の壁:これらの方法はいずれも、実行の境界を越えて存続し、エージェント間で共有される、クエリ可能なメモリをエージェントに提供しません。これは、OpenClawがエージェントの状態を忘れる理由タスクコンテキストを忘れる理由の背後にある根本的なギャップと同じです。

解決策:Hermesに永続的なタスクメモリを提供する

永続的なセットアップとは、実行の外部にあり、すべてのエージェントが読み取ることができ、すべてのエージェントの寿命よりも長く存続するメモリレイヤーのことです。MemoryLakeは、プロジェクトの知識、決定事項、制約条件を一度保存すれば、検索可能で、Gitスタイルのバージョン管理(2つのソースが矛盾した場合の競合検出機能付き)が行われ、エンドツーエンドで暗号化されるため、内部データを安全に保つことができます。これが、マルチエージェントの作業に欠けていた共有基盤となります。

ステップ 1: APIキーを作成する

MemoryLakeにサインインし、キーを生成して、最初のリクエストを送信します。これには約30秒しかかかりません。

MemoryLake APIキーの作成
MemoryLake APIキーの作成

ステップ 2: 最初のメモリをアップロードする

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

最初のメモリをMemoryLakeにアップロード
最初のメモリをMemoryLakeにアップロード

ステップ 3: AIとエージェントを接続する

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

MCP経由でAIとエージェントを接続
MCP経由でAIとエージェントを接続

マルチエージェント作業における「再発見」の実際のコスト

N倍される税金

単一のエージェントがコンテキストを再構築するコストが1だとすれば、5つのエージェントがそれぞれ並行して再構築するコストは5になります。これは、同じ再発見のために消費されるトークンと実時間であり、さらには、お互いの推論プロセスが見えないために2つのエージェントが矛盾する決定を下してしまうという、金額に換算しにくいコストも加わります。

再導出ではなく検索

共有レイヤーを使用すると、各エージェントはそのステップに必要な制約や決定を正確に引き出すことができ、ハンドオフでは情報の欠落しやすい要約ではなく、共有メモリへのポインタが渡されます。実行は十分な情報を持った状態で開始され、エージェントは調査の重複を止め、競合はリリース前にキャッチされます。MemoryLakeのToken Saving Calculator(トークン削減計算ツール)を使用すると、実際の使用状況からトークンへの影響を予測できます。

エージェントタスクメモリのベストプラクティス

すべての実行の最後に結論を書き出す

実行ごとに日付入りの1行(何が行われたか、何が決定されたか、何が失敗しその理由は何か)を記録することが、孤立した実行を累積的な進歩へと変える鍵です。これは、次の実行がクエリを実行できる形式にした、自動化された引き継ぎメモと言えます。

制約をプロンプトに含めるだけでなく、検索可能にする

起動プロンプトにしか存在しない制約は、コンテキストの圧縮が一度行われるだけで無視されてしまう危険性があります。検索可能なメモリにあれば、どのステップのどのエージェントでもそれを確認できます。

ワークフローごとにスコープを分ける

ワークフローやプロジェクトごとに1つのメモリ範囲(スコープ)を設定することで、検索の精度を高く保ち、あるパイプラインの制約が別のパイプラインのエージェントに影響を与えるのを防ぐことができます。

結論

Hermesはエージェントの調整に優れていますが、単独では「記憶する」ことができません。各実行はプロンプトから開始され、各エージェントは自身のウィンドウしか見えず、学習した内容は実行終了時にすべて消えてしまいます。そのため、マルチエージェントの作業は蓄積されることなく、再発見を繰り返すことになります。システムに共有の永続メモリを提供すれば、この状況は逆転します。エージェントは共通の事実を通じて連携し、ハンドオフで推論が失われることはなくなり、10回目の実行は9回分の蓄積された知識から開始されます。エージェントを何もない空の部屋に何度も放り込むのは、もう終わりにしましょう。

よくある質問

Hermesは実行間で何かを記憶していますか?

単独では記憶しません。エージェントの実行は構造上ステートレスです。コンテキストは起動時に提供されたものから取得され、実行中に構築された理解は、外部のメモリレイヤーが保持していない限り、終了時に破棄されます。

同じ実行内のエージェント同士が、お互いのコンテキストを見失うのはなぜですか?

各エージェントが独自のコンテキストウィンドウを持っており、それを共有していないためです。ハンドオフではメッセージや要約が渡されますが、その背後にある推論プロセスは渡されないため、受け取り側のエージェントは、その結論を導き出した制約条件を知らないまま結論だけを引き継ぐことになります。

起動プロンプトにすべてを詰め込むだけでは不十分ですか?

一般的なアプローチであり、ある程度は機能しますが、手動の作業であり、肥大化して扱いにくくなり、実行ごとに入力トークンを消費し、自分が含めるのを覚えていた内容しかカバーできません。また、実行中に発見されたことは、終了時にやはり消失してしまいます。

エージェントメモリには何を保存すべきですか?

アーキテクチャやシステムドキュメント、恒久的な制約、理由付きの日付入り決定事項、および実行ごとの結論を保存します。生のログではありません。要約され、クエリ可能な知識こそが、エージェントが実行中に実際に活用できるものです。

これは他のエージェントやフレームワークでも機能しますか?

はい、メモリレイヤーはエージェントに依存しません。同じコンテキストがClaude、Codex、OpenClaw、およびその他のMCP対応エージェントに届くため、複数のツールを使用するワークフローでも1つの真実のソースを共有できます。関連情報:マルチエージェントメモリ