概要

LangChain 創設者 Harrison Chase が提唱する概念。AI エージェントのメモリ(長期記憶)はハーネスの設計と不可分であり、クローズドなハーネスを使うことで将来的な移行が困難になるリスクを指す。ハーネスとメモリを「分離できるプラグイン」ではなく「車と運転」のように一体的なものと捉える。

メモリの4層構造

エージェントのメモリは実際には4層に分かれており、それぞれがハーネスの実装に深く依存する。

実体ハーネス依存の理由
第1層コンテキストウィンドウ内のメッセージ履歴構成方法でモデルの応答が変わる
第2層コンパクション(会話の要約圧縮)何を残し何を捨てるかで「記憶の質」が変わる
第3層永続ファイル・データベース(長期メモリ)エージェントの「人格」を形成する
第4層設定・スキルのロード方式エージェントの能力を規定する

ロックインの3段階

1. ステートフル API のロックイン

OpenAI の Responses API や Anthropic のサーバーサイドコンパクションのように、状態をプロバイダーのサーバーに保存する方式では、モデルを切り替えて以前のスレッドを再開できなくなる。

2. クローズドソースハーネスの不透明性

Claude Agent SDK のように内部でクローズドソースのコードを使うハーネスでは、メモリとの相互作用が不透明で、別のハーネスへの移行が困難になる。

3. API の背後に隠されたメモリ

ハーネス全体(長期メモリを含む)が API の背後に置かれるケース。Claude Managed Agents が例として挙げられており、メモリの所有権も可視性もゼロになる。

コンパクション方式の違い

各ハーネスでのコンパクション実装の違いが移植性に影響する:

ハーネスコンパクション方式移植性
Claude Code会話要約をシステムメッセージとして挿入高(ローカルファイル)
OpenAI Codex暗号化コンパクションサマリー生成低(OpenAI 以外で復号不可)
Claude Managed Agentsサーバーサイドで状態保持低(外部からアクセス不可)
Letta / Deep Agentsオープン標準での保存高(移行可能)

ロックイン回避のための実践

  1. メモリの所在を把握する: 自分のエージェントのメモリがどこに保存され、誰がコントロールしているかを確認する
  2. エクスポート可能な設計を選ぶ: メモリのエクスポート・インポートが可能なハーネスを優先する
  3. ステートフル API 依存を最小化する: サーバーサイドのコンパクションや状態管理に過度に依存しない
  4. オープン標準を採用する: agents.md などのオープン標準規格に対応したハーネスを検討する

メモリがロックインの源泉になる理由

  • メモリによりエージェントはユーザーとの対話を通じて改善される
  • ユーザーごとのパーソナライズが可能になり、データフライホイールが構築される
  • メモリがなければ同じツールにアクセスできる誰もがエージェントを複製できる
  • メモリがあれば、ユーザーインタラクションと嗜好の独自データセットが蓄積される

関連ページ

ソース記事