短い答え
AutoGPTはツール履歴を忘れるのは、過去のツール呼び出しとその観察がモデルのローリングコンテキストウィンドウに存在し、新しいステップが積み重なるにつれて要約または切り捨てられるからです。古いツール呼び出しが消えると、プランナーはそれが実行された記録を持ちません。持続的な記憶レイヤーは、すべての呼び出し、その引数、および結果の構造化されたログを保持し、エージェントが自分自身を繰り返さないようにします。
なぜAutoGPTはツール履歴を忘れるのか
AutoGPTのループは、プラン、ツールを選択、行動、観察、記憶を更新します。観察ステップはツールの出力を作業コンテキストに書き戻し、記憶を更新することで要約するか、接続したベクターストアに渡します。どちらの経路も忠実度を失います。
1. ツール出力はループ内で最大のトークンコストです。 単一のウェブスクレイプは10Kトークンを返すことがあります。3回のスクレイプといくつかのAPI呼び出しで32Kのウィンドウが満たされます。エージェントのデフォルトの動作は、古い観察を圧縮してスペースを作ることです。「私たちはすでにこのフィルターでエンドポイント/v1/ordersを呼び出しました」といった具体的な情報は、プランナーが信頼できるように一致させることができない1行の要約に圧縮されます。
2. ベクター記憶は意味を呼び戻しますが、正確な呼び出しではありません。 ベクターストアを接続すると、AutoGPTは過去の観察を類似性によって取得できます。「このトピックについて何か読んだことがあるか?」には役立ちますが、「この正確なペイロードをすでにPOSTしたか?」には役立ちません。正確な呼び出しの重複排除には、埋め込みではなく構造化されたログが必要です。
3. 標準的なツール台帳はありません。 AutoGPTは、すべてのツール呼び出しの別の追加専用の記録を維持しません。履歴は会話のトランスクリプト内にのみ存在し、コンテキストが厳しくなると最初にプルーニングされます。
Mem0のAIエージェント記憶の状態2026レポートはこれを指摘しています:30から100のツールステップの後にスレッドを失うエージェントは、通常、最初にツール履歴を失い、次にプランニングを失います。
AutoGPTがツール履歴を忘れると失うもの
ツール履歴の喪失は目標の喪失よりも高価です。なぜなら、サイクルごとに累積するからです:
- 重複したAPI呼び出しと重複した支出。 すべての再呼び出しは、有料の推論と有料のツールクォータを伴います。レート制限されたAPIでは、作業の要求よりも早く予算を消費してしまいます。
- 不一致な結果。 ステップ12でページをスクレイピングし、ステップ47で再度スクレイピングします。ページが変更されました。今、エージェントは同じ事実の2つのバージョンを持ち、どちらが現在のものであるかを知る方法がありません。
- 壊れたデバッグ。 長い実行が失敗したとき、実際に何が起こったのかを再構築することはできません。トランスクリプトは最後の数ステップだけを完全に示し、それ以前のすべては正確であるかどうか不明な要約です。
コストは抽象的ではありません。40ステップで終わるはずの実行が80ステップかかり、まだ何かを見逃します。なぜなら、予算の半分が古い地面を再度踏むことに使われたからです。
AutoGPTの組み込みの回避策
コミュニティはこの問題を2年間取り組んできましたが、各回避策にはギャップがあります。
ベクターストア記憶バックエンド。 Pinecone、Weaviate、またはローカルChromaインスタンスを接続すると、AutoGPTに意味的な呼び戻しレイヤーが提供されます。「これに似たものを読んだことがあるか?」には良いですが、「この正確なエンドポイントを呼び出したことがあるか?」には弱いです。ツール呼び出しの重複排除は、ベクター検索が構築されたものではありません。
ワークスペースファイル。 AutoGPTは、ワークスペースディレクトリにノートやログを書き込むことができます。これは、エージェントにすべての呼び出しをログに記録し、新しい呼び出しの前にログを確認するように慎重にプロンプトを与えた場合に機能します。実際には、ログを記録するのを忘れ、その後確認するのを忘れます。
カスタムアクション履歴ブロック。 一部のフォークは、プロンプト内にアクション履歴リストを維持します。短い実行には役立ちます。リスト自体は、最初に埋め尽くされた同じトークン予算を競合するため、他のすべてと一緒にプルーニングされます。
プロジェクトがこれを公式の記憶の課題ドキュメントでどのようにフレーム化しているかを見ることができます。
AutoGPTの組み込みの記憶が不足している点
根本的な問題は、AutoGPTが記憶を会話のプロパティとして扱い、エージェントの外部世界との関係のプロパティとして扱わないことです。ツールは外部世界に触れ、外部世界はチャットのトランスクリプトとは別の構造化された台帳を持つに値します。
その台帳がないと、すべての実行は健忘症になります。異なるモデルに切り替えても助けにはなりません。忘却は構造的であり、モデル固有ではありません。
MemoryLakeがAutoGPTのツール履歴忘却を修正する方法
MemoryLakeは、エージェントが各ステップで書き込み、読み取ることができる専用の記憶レイヤーを提供し、履歴を生かすためにプロンプトトークンを消費することはありません。
- 構造化されたツール台帳。 すべてのツール呼び出し、その引数、その完全な出力、およびタイムスタンプは、プロジェクト内の事実記憶として保存されます。エージェントは「これらの引数でこのツールをすでに呼び出したか?」と新しい呼び出しの前にクエリを実行し、重複をスキップできます。
- 完全忠実度の観察ストレージ。 生の出力は元の忠実度で保持されます。プランナーがステップ12の結果を再訪する必要があるとき、圧縮された要約ではなく、完全なテキストを引き出します。これが実際に10,000倍のコンテキストの利点が現れる場所です。
- 競合解決と記憶の出所。 同じエンドポイントが異なるタイムスタンプで異なるデータを返すと、MemoryLakeは競合をフラグ付けし、その出所を記録します。エージェントは新しいソースを選択するか、競合を人間に提示できます。
MemoryLakeの取得エンジンは、数十億のトークンのプロジェクト記憶から読み取り、AutoGPTに対して関連するスライスのみをターンごとに供給し、ミリ秒のレイテンシを持ちます。
MemoryLakeをAutoGPTに接続する3つのステップ
- プロジェクトを作成し、コンテキストを読み込む。 MemoryLakeにサインインし、プロジェクト管理を開き、「プロジェクトを作成」をクリックし、「AutoGPT — ツール台帳」のような名前を付けます。ドキュメントドライブを通じて、API仕様、スクレイピングターゲット、許可リストなどの既存の参照をアップロードします。記憶タブを使用して、エージェントがすべての呼び出しで従うべきツール使用ポリシーを追加します。
- MCPサーバーエンドポイントを生成する。 プロジェクト内のMCPサーバータブを開き、「MCPサーバーを追加」をクリックし、「AutoGPTツール」と名付け、「生成」をクリックします。MemoryLakeはAPIキーID、シークレット、およびエンドポイントURLを返します。シークレットは一度だけ表示されるため、すぐにコピーしてください。
- AutoGPTを接続する。 MemoryLakeをAutoGPTの設定内でMCP互換の記憶プロバイダーとして登録するか、カスタムアクションからREST APIを呼び出して、すべてのツール呼び出しをログに記録し、新しい呼び出しを実行する前に過去の呼び出しをクエリします。Python SDKは、複数のエージェントを並行して実行する場合に、クラスターレベルの記憶操作をサポートします。