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"]
}
メモリブロック
初回実行時に作成されるデフォルトブロック:
| ブロック | スコープ | 目的 |
|---|---|---|
persona | global | エージェントの振る舞いや応答の方法 |
human | global | あなたに関する詳細(好み、習慣、制約) |
project | project | コードベース固有の知識(コマンド、アーキテクチャ、規約) |
メモリファイルの場所:
- グローバルブロック:
~/.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_read | IDで特定のジャーナルエントリを読み取り |
リンク
- GitHubリポジトリ — ソースコードとイシュー
- Awesome OpenCode — 他のプラグインを探す