joshuadavidthomas/opencode-agent-memory

Memory blocks for OpenCode, inspired by Letta.

解決する課題

OpenCode内のAIエージェントに、永続的で自己編集可能な長期記憶を提供します。これにより、会話履歴が圧縮された場合や異なるセッション間で重要な情報を忘れることを防ぎ、一貫したキャラクターを維持し、プロジェクト固有の規則を記憶できます。

動作方法

このプラグインは、ディスク上にMarkdownファイルとして保存される「メモリブロック」と「ジャーナル」のシステムを実装しています。

  • メモリブロック: スコープ付きのファイル(グローバルまたはプロジェクト固有)で、メタデータとコンテンツを含みます。エージェントは memory_list、memory_get、memory_set、memory_replace といったツールを使って、これらのブロックを自律的に読み取り・更新できます。プロンプトキャッシュの安定性を維持するため、セッション開始時にメモリをスナップショットし、コンテキストの圧縮後にのみ更新されます。
  • ジャーナル: オプトイン型の追加専用ログで、エージェントがインサイトや意思決定を記録できます。ローカルの埋め込み(all-MiniLM-L6-v2)を使用して、データをマシン外に送らずにエントリ間の意味的検索が可能になります。

対象ユーザー

複数のセッションやプロジェクトにわたって、AIコーディングアシスタントがユーザーの好み、アーキテクチャの決定、学習されたパターンを記憶したい開発者。

特徴

  • 自己編集: エージェントは専用ツールを使って自身の記憶を積極的に管理できます。
  • スコープ付き記憶: グローバル記憶(すべてのプロジェクトにわたる)とプロジェクト固有の記憶の両方をサポートします。
  • キャッシュ対応: スナップショットを使用して、プロバイダーのプロンプトキャッシュを繰り返し無効にすることを回避します。
  • ローカル意味検索: ジャーナルにより、ローカル埋め込みを使って過去のインサイトを取得できます。
  • 予算管理: memory_oversized ツールにより、文字数制限を超えるブロックを特定し、圧縮するのを支援します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト