コンテンツにスキップ

Agent Memory

Agent Memory

Agent Memoryは、OpenCodeにLettaスタイルの編集可能メモリブロックをもたらします。Letta(旧MemGPT)にインスパイアされたこのプラグインは、エージェントに永続的で自己編集可能なメモリブロックを提供します。ディスク上の共有Markdownファイルで、すべてのOpenCodeセッションが読み書きできます。

これはAGENTS.mdにハーネスを追加したようなものです。構造(メタデータとサイズ制限を持つスコープ付きブロック)を追加し、メモリ操作専用のツールと、エージェントが自身のメモリを積極的に維持するよう促すプロンプトを提供します。

主な機能

機能説明
永続メモリセッションやコンテキスト圧縮をまたいで保持されます
セッション間共有グローバルブロックは全プロジェクト間で共有、プロジェクトブロックはそのコードベースの全セッション間で共有されます
自己編集エージェントは専用ツールを使って自身のメモリを読み取り・変更できます
システムプロンプト注入メモリブロックはシステムプロンプトに表示され、常にコンテキスト内に保持されます
ジャーナル洞察や決定を記録するための、セマンティック検索付きの追記専用エントリ

インストール

~/.config/opencode/opencode.jsonに追加します:

{
  "plugin": ["opencode-agent-memory"]
}

特定バージョンに固定する場合:

{
  "plugin": ["opencode-agent-memory@0.2.0"]
}

メモリブロック

初回実行時に作成されるデフォルトブロック:

ブロックスコープ目的
personaglobalエージェントの振る舞いや応答の方法
humanglobalあなたに関する詳細(好み、習慣、制約)
projectprojectコードベース固有の知識(コマンド、アーキテクチャ、規約)

メモリファイルの場所:

  • グローバルブロック: ~/.config/opencode/memory/*.md
  • プロジェクトブロック: .opencode/memory/*.md(自動的にgitignoreされます)

ジャーナル

セッションをまたぐセマンティック検索のためにジャーナルを有効にします:

{
  "journal": {
    "enabled": true,
    "tags": [
      { "name": "perf", "description": "Performance optimization work" },
      { "name": "debugging", "description": "Debugging sessions and findings" }
    ]
  }
}

ジャーナル設定は~/.config/opencode/agent-memory.jsonに記述します。

セマンティック検索はローカルエンベディング(all-MiniLM-L6-v2)を使用するため、データが外部に送信されることはありません。

ツール

メモリツール

ツール説明
memory_list利用可能なメモリブロックを一覧表示(ラベル、説明、サイズ)
memory_setメモリブロックを作成または更新(完全上書き)
memory_replaceメモリブロック内の部分文字列を置換

ジャーナルツール(ジャーナル有効時)

ツール説明
journal_writeタイトル、本文、オプションのタグ付きで新しいジャーナルエントリを作成
journal_searchセマンティックにエントリを検索、プロジェクトやタグでフィルタリング
journal_readIDで特定のジャーナルエントリを読み取り

リンク