devin-memory について
devin-memoryは、Devinや他のMCPクライアント向けの永続メモリストアで、AIエンジニアや開発者を対象としています。出所とバージョンを記録し、書き込みを検査して、不審な項目はそのまま信頼せず確認まで隔離します。
主な機能
- 01出所を追跡できるメモリ項目
- 02書き込みの検査と隔離
- 03バージョン管理と競合追跡
- 04ワークスペースとプロファイル別の管理
- 05有効期限と新しさを考慮した検索
- 06CLI、Pythonライブラリ、MCPサーバー
活用シーン
- 01エージェントのセッション間で事実を保持
- 02メモリを元のセッション行まで追跡
- 03不審または注入された内容を利用前に確認
- 04ワークスペース固有のコンテキストを検索
MCP 対応
stdioのMCPサーバーとして、retain、recall、検査、一覧、隔離、検証などのメモリ操作を提供します。書き込みは隔離ゲートを通り、昇格用ツールは明示的なオプトイン時のみ利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
13掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| tags | string | いいえ | |
| content | string | はい | |
| workspace | string | いいえ | |
| source_rowid | any | いいえ | |
| source_session | string | いいえ |
詳細
DEVIN エコシステムの一部
トラック:ビルド · 種別:プロダクト
対象:AI エンジニア、開発者、データサイエンティスト
インターフェース:CLI / Python ライブラリ / MCP サーバー / サービス
パス:AI エンジニア · ステップ 3/3 —devin-orchestratorの後
このプロジェクトの位置づけ
- 役割: ビルド
- プロダクト:
devin-brain - パッケージ:
devin-memory - モード: 混合
- 基盤:
devin-internals-spec - エコシステム:
awesome-devin· レジストリ:devin-powerups
devin-memory
名称変更(2026年10月): このリポジトリは
Icaro0310/devin-memoryからIcaro0310/devin-brainに移転しました。PyPI パッケージ、CLI コマンド、MCP サーバーの 名前はdevin-memoryのままです。スター、イシュー、履歴は GitHub のリダイレクトによって保持されています。
非公式のコミュニティプロジェクトです。 Cognition AI とは提携しておらず、承認や スポンサーも受けていません。「Devin」は Cognition AI の商標です。
Linux · 個人向け Windows · 法人向け Windows
awesome-devin エコシステムの一部です。devin-* ツールを厳選したハブです。
Devin 向けの汚染防止メモリストアです。出所情報とバージョン管理を備えた永続的な事実と、 隔離ゲートによって、不正なセッションや注入されたコンテンツが エージェントのメモリを密かに破損するのを防ぎます。
問題
エージェントのメモリは、汚染の入り口になり得ます。セッション間で「事実」を保持するツールは、たった一度の不適切なセッションで汚染される可能性があります。注入された指示や貼り付けられたシークレットが、確認の手順も「これはどこから来たのか?」と答える方法もないまま、以降のすべてのセッションで信頼される信念になってしまいます。
先行事例
- Devin memory MCP(
.devin/memory/memories.jsonlに対するretain/recall/reflect)— 追記のみで、スクリーニングもセッションの来歴情報もありません。devin-memoryは、まったく同じ行形式でエクスポートします。 - MemGPT/LangChain memory — 保存内容の監査や不信を前提とせず、想起を最適化する永続化レイヤーです。
devin-memory はメモリストアの考え方を応用し、これらのツールにない要素、すなわち隔離ゲートと実際のセッション行までさかのぼれる来歴情報を追加します。
Devin ネイティブの特長
- 並べて確認可能: 各エントリには
source_session_idとsource_rowidを含められ、devin-internalsの読み取り専用ストアを通じて Devin のsessions.dbで監査できます。メモリ MCP では、申告されたソースセッション(または特定のメッセージ行)が実在したかどうかを検証できません。隔離ゲートは、すべての書き込みをシークレットやインジェクションのパターンについてもスクリーニングします。 - Devin なしの場合:
sessions.dbがなければ、監査可能なセッションの来歴情報もありません。追加機能はなくなります。 - 一文で言うと: 各メモリの出所を記憶し、疑わしいものは人間が解除するまで隔離するメモリストアです。
インストール
Python ≥ 3.10 が必要です。uv(推奨)または pipx でインストールしてください。
uv tool install 'devin-memory[mcp]'
または pipx を使用します(代替方法):
pipx install 'devin-memory[mcp]'
開発用:
pip install -e ".[dev]"
pytest
使い方
# Store a fact (screened on write; suspect content lands in quarantine)
devin-memory retain "CI is green on Windows + Linux" --tags ci,status
devin-memory retain "..." --source-session <session-id> --source-rowid <n>
devin-memory retain "..." --workspace /path/to/project # scope to a workspace
devin-memory retain "..." --expires-at 2026-12-31T00:00:00Z # TTL: drops
# out of recall/prime after this instant
# Keyword-ranked recall — returns active, unexpired entries only;
# scores are weighted by recency decay so fresh memories outrank stale ones
devin-memory recall "ci status" [--json] [--limit 5] [--tags a,b]
devin-memory recall "ci status" --include-expired # also surface expired
# Quarantine lane: list, mark an existing entry, or release one
devin-memory quarantine # list with reasons
devin-memory quarantine <id> [--reason manual:x] # mark entry as quarantined
devin-memory quarantine --release <id> # human override -> active
devin-memory quarantine --digest [--json] # audit hash (read-only)
# Contradictions: a conflicting retain is linked, not overwritten
devin-memory conflicts [--json] # (newer, older) pairs; resolve with
# supersede / retract / quarantine <id>
# Mine a session for durable knowledge -> proposed entries (inactive
# until reviewed); extraction is heuristic — see "Limitations"
devin-memory extract <session-id> --sessions-db path/to/sessions.db
devin-memory extract --latest --sessions-db path/to/sessions.db [--auto-approve]
devin-memory list --status proposed # review queue
devin-memory approve <id> # proposed -> active
# Context block for a UserPromptSubmit hook — active entries only,
# filtered by workspace + machine profile, bounded by ~4 chars/token
devin-memory prime [--workspace PATH] [--max-tokens N]
# Versioning and housekeeping
devin-memory supersede <id> "corrected fact" [--expires-at <iso>]
# default: inherit old expiry
devin-memory retract <id>
devin-memory list [--status active|proposed|quarantined|retracted] [--json]
devin-memory compact [--json] # dedup report (dry-run)
devin-memory compact --apply # retract copies + vacuum the file
# Audit an entry's provenance against a real sessions.db (read-only)
devin-memory verify <id> --sessions-db path/to/sessions.db
# Export active memories to a memory-MCP-compatible JSONL
devin-memory export --out memories.jsonl
MCP サーバー
devin-memory は実際の MCP サーバー(stdio)でもあります。すべての書き込みに隔離ゲートを適用する同じ保持/想起パイプラインを、Devin、
Claude Desktop、Cursor、または任意の MCP クライアントから呼び出せます。
pipx install "devin-memory-mcp"
devin-memory-mcp コンソールスクリプトは、ベースの
devin-memory dist にも同梱されています。そのため、追加指定なしで
uv tool install devin-memory を実行すると、error: The MCP server needs the 'mcp' extra で終了するスクリプトが残ります。復旧手順は各プラットフォームガイドのトラブルシューティングセクションにあります(Linux、
Personal Windows、
Corporate Windows)。
クライアント設定:
{
"mcpServers": {
"devin-memory": {
"command": "devin-memory-mcp",
"args": ["--db", "/path/to/memory.db"]
}
}
}
同じ stdio サーバーを、ほかの MCP ホストにも登録できます。
Zed — settings.json の context_servers:
{
"context_servers": {
"devin-memory": {
"command": { "path": "devin-memory-mcp", "args": ["--db", "/path/to/memory.db"] }
}
}
}
JetBrains — 設定 → ツール → AI Assistant → Model Context Protocol → 追加:
{ "mcpServers": { "devin-memory": { "command": "devin-memory-mcp", "args": ["--db", "/path/to/memory.db"] } } }
Antigravity — ~/.gemini/config/mcp_config.json:
{ "mcpServers": { "devin-memory": { "command": "devin-memory-mcp", "args": ["--db", "/path/to/memory.db"] } } }
ツール:retain、recall、screen(書き込みなしでゲートをドライラン)、
list、retract、supersede、quarantine、release、approve、conflicts、
prime、verify、extract、compact、quarantine_digest。release
およびapproveによる昇格の上書きは、サーバーを
DEVIN_MEMORY_MCP_PROMOTE=1で実行した場合にのみ登録されます。それ以外の場合、昇格は CLI
(devin-memory quarantine --release <id>/devin-memory approve <id>)を介した人間のみの操作となります。同じフラグによってextractの
auto_approveパラメーターも制御されます。オプトインがなければ強制的にオフになり、AI クライアントがレビュー手順をスキップできないようにします。
すべてのツールは構造化データ、または{"error", "detail"}
オブジェクトを返します。トランスポートを通じて例外が送出されることはありません。DEVIN_MEMORY_DBは
--dbの代わりに使用できます。
VS Code: adapters/vscode/には、エディター組み込みの MCP サポート(サーバー定義プロバイダー、
VS Code ≥1.102)にこのサーバーを登録する拡張機能が含まれています。起動コマンド、任意のDEVIN_MEMORY_DB、
およびワークスペースのcwdはここで宣言されています。昇格のオプトインはオフに固定されているため、
エディター向けサーバーは昇格を行わない仕様を維持します。
adapters/は自己完結型の Devin プラグインルートです
(adapters/.devin-plugin/plugin.json + adapters/skills/devin-brain/SKILL.md)。
devin plugins install Icaro0310/devin-brain#adaptersでインストールできます。リポジトリには含まれますが、
wheel 内には含まれません。マニフェストは
uvx --from 'devin-memory[mcp]' devin-memory-mcpを通じてサーバーを起動します。昇格の
オプトイン(DEVIN_MEMORY_MCP_PROMOTE)は設定されないため、プラグイン向けサーバーは
昇格を行わない仕様を維持します。PyPI ではなくチェックアウトを使用して実行するには、
ローカルのマニフェストコピーで
uvx --from '.[mcp]' devin-memory-mcpを指定してください。
devin-learningでセッションから学習する
この補助CLIは、sessions.dbからレッスン候補を抽出し、レビュー可能なスキルの草案を書き出します。デフォルトでは、草案をワークスペースにインストールしません。
devin-learning extract --sessions-db path/to/sessions.db --out ./learning-drafts
devin-learning review --out ./learning-drafts
# After reviewing drafts, explicitly allow output to a live skill directory:
devin-learning extract --sessions-db path/to/sessions.db --out .devin/skills --apply
reviewは--applyを指定しない限りドライランです。review --applyを実行すると、却下された草案が_rejected/の下に移動します。抽出ツールはセッションの内容を読み取るため、レビューが完了するまで出力は非公開にしてください。
草案がスキルツリーに置かれると、catalog-bridgeがそれらをproposedエントリーとしてdevin-skill-catalogレジストリに登録し、書き込み→ゲート→昇格のループを完結させます。
# scans .devin/skills/learned-*/SKILL.md and registers each as `proposed`
devin-learning catalog-bridge .devin/skills
# then the catalog gates and promotes them (its own CLI):
devin-skill-catalog quarantine skill:learned-testing . --apply
devin-skill-catalog promote skill:learned-testing --apply
devin-skill-catalog activate skill:learned-testing --apply
レジストリのデフォルトは<config-dir>/.devin-ecosystem/skill-catalog.jsonです(devin-skill-catalogと同じ方法で解決され、DEVIN_CONFIG_DIRが優先されます)。--registryで上書きできます。エントリーにはメタデータのみが含まれます(kind、name、state、SKILL.mdのsha256、originディレクトリ、空のhistory)。草案の本文はコピーされません。ブリッジは決定的かつ冪等です。変更されていない草案を再スキャンしても何も変わらず、編集された草案ではsha256が更新され、カタログですでにproposedより先に進んでいる項目はスキップ対象として報告され、変更されません。--dry-runは書き込みを行わず、実行計画を表示します。仕様についてはdocs/skill-catalog-bridge.mdを参照してください。
共有可能な概要を作成するには、ループの公開インターフェースであるweekly-reportを使います。集計数のみを含むweekly-YYYY-Www.mdを出力します(テーマ別のレッスン数、昇格したlearned-*スキル、隔離保留中の分類)。セッションのテキスト、ID、パスは含まれないため、このファイルは安全にコミットできます。devin-learning-weeklyカーソルから再開し、カーソルがない場合は直近の--days(デフォルトは7日間)を対象にします。
devin-learning weekly-report --sessions-db path/to/sessions.db --out ./docs/learning
メモリの状態
active · proposed(抽出済みで、approveを待機中) · quarantined(審査済み、または手動でフラグ付けされ、releaseを待機中) · retracted(取り下げ済み、または置き換え済み)。recall/prime/exportに表示されるのはactiveエントリーのみです。隔離されたコンテンツは、表示も検索もされません。
activeエントリーにはexpires_at(ISO-8601形式)を設定することもできます(retain/supersedeで設定するか、set_expires_atで変更します)。指定時刻を過ぎると、そのエントリーはrecall/primeの対象から除外されます。削除されるのではなく、監査用にlist/export --allでは引き続き表示されます(recall --include-expiredを指定すると、この除外を無効にできます)。expires_atのないエントリーは期限切れになりません。これとは別に、recallはキーワードスコアに指数関数的な新しさによる減衰を適用します(半減期は30日、ops.RECALL_DECAY_HALF_LIFE_DAYS。呼び出しごとにhalf_life_daysで調整可能です)。これにより、同程度の候補では新しい記憶が優先されますが、明らかに関連性の高い古い候補は引き続き上位に表示されます。
矛盾、抽出、プライム(ヒューリスティック)
- 矛盾 — 既存の有効なエントリと同じ正規化済みの対象について反対の指示を示す
retainは、conflicts_withリンクを付けて既存のエントリと並べて保存されます(devin-memory conflicts)。このヒューリスティックは、ストップワードを除去した「対象キー」と肯定・禁止の極性を比較します。事実を誤って関連付けるよりも、言い換えられた矛盾を意図的に見逃す設計です。 extractは、1つのセッションのmessage_nodes(devin-internals 経由で読み取り専用)をスキャンし、長期的に有用な知識の兆候を探します。対象となるのは、ユーザーによる訂正(「na verdade」、「actually」、「the right way」)、好み(「always」、「never」、「sempre」、「nunca」)、見つかったコマンド(バッククォートで囲まれた既知のツール)、パスです。候補は書き込み時と同様に審査され、問題のないものはproposedに、疑わしいものはquarantinedに格納されます。--auto-approveを指定すると、レビュー手順を省略します。primeは、プロンプトフック向けのサイズに収めた簡潔な# devin-memory: recalled context (heuristic)ブロックを出力します。retain --workspaceでスコープが指定されたエントリは、そのワークスペース内でのみプライムされます。別のマシンプロファイルで書き込まれたエントリはプライムされません(プロファイルのデフォルトはcorporateです。フェイルクローズ方式)。compactは重複を排除します。content+workspace+profileが完全に一致する、撤回されていないエントリは1つにまとめられます。最も有効性の高いステータスが優先され(active>proposed>quarantined)、同順位の場合は最も古い行が残ります。それ以外のコピーはretractedになります(削除はされません。履歴と理由を監査できる状態に保ちます)。残ったエントリは、同じステータスのコピーからタグの和集合を引き継ぎます。quarantined または proposed のタグが active エントリに混入することはありません。デフォルトではドライランのレポートが表示されます(有効なエントリ数 N→M、グループごとのkeep/retractedID、切り詰められた content の sha256。content 自体は表示されません)。--applyを指定すると実行され、ファイルに対してVACUUMが実行されます。quarantine --digestは、レーンの決定論的な監査フィンガープリントを出力します。内容は、エントリ数、分類ファミリー別の理由バケット(自由形式の手動理由はmanual:*にまとめられます)、エントリごとのフィンガープリントsha256(content)+sorted(reasons)をソートしたものの sha256 です。行 ID ではなく content を基準とします。同じ隔離済み事実を保持する2つのストアは同一のダイジェストになり、メンバーまたは理由が変わるとダイジェストも変わります。常に読み取り専用です。
デフォルトのストアは ./memory.db です。--db または DEVIN_MEMORY_DB で上書きできます。このツールが書き込むストアはこれだけです。Devin の sessions.db、acp-messages/*.db、state.vscdb は読み取り専用です。
Devin 単独で動作します(Devin 専用モード)
devin-memory は、出典追跡と隔離レーンを備えたローカルメモリストア(JSONL)を保持します。外部メモリサービスもネットワーク呼び出しも必要ありません。2つのコンソールスクリプト(devin-memory と devin-learning)はいずれも、お使いのマシン上でのみ実行されます。
率直な注意点:書き込み時の審査はヒューリスティックであり、保証ではありません。疑わしいエントリは 人によるレビュー のために隔離されるため、必ずレビューする習慣を保ってください。
プラットフォームのサポート
メモリストアでは明示的なローカル SQLite パスを使用し、セッションデータベースは --sessions-db で指定します。プラットフォーム固有のパスを想定していません。Windows と Linux に対応しており、CI でもテストされています。
制限事項
- 抽出はヒューリスティックで、デフォルトでは提案扱いです。
extractは、1つのセッションからキーワードに該当する文を取り出してproposedのレビューキューに追加します。approve(または--auto-approve)を実行しない限り、有効にはなりません。より充実した学習パイプラインについては、devin-learningをご覧ください。 - このスクリーニングはフィルターであり、保証ではありません。 パターンベースのシークレット検出とインジェクションのヒューリスティックには、誤検知(→隔離。解除コマンドは1つ)と見逃しの両方があります。専用スキャナー(gitleaks、
devin-redact)も実行してください。これらを補完するものです。 - リコールのランキングはキーワードベースで、決定論的であり、仕様が公開されています。M1 ではエンベディングやセマンティック検索はありません。
- プロベナンスは記録されますが、自己検証はされません。
retainは申告されたsource_session_id/source_rowidを保存し、後からverifyで実際のsessions.dbと照合して監査します。悪意あるユーザーが偽のプロベナンスを申告することは可能です。重要なのは、それが検証可能であることです。 - 隔離された置き換え対象も、旧バージョンを無効にします。 置き換え後の項目が隔離された場合は、キューを確認してください(
quarantine --release)。 - PyPI 配布パッケージ: CLI とオプションの MCP エクストラには
devin-memory、単体の MCP レジストリーパッケージにはdevin-memory-mcpを使用します。
こんな場合に使用してください
- セッション間でエージェントのメモリーを保持し、デフォルトで信頼しない運用にしたい場合。書き込みはすべてスクリーニングされ、疑わしい項目は人が解除するまで隔離されます。
- 「このメモリーはどこから来たのか?」を確認する必要がある場合。各項目には
source_session_id/source_rowidが付与され、verifyで監査できます。 - メモリーのバージョン管理が必要な場合。
supersede/retractは、サイレント編集ではなく履歴を保持します。 - 互換性を維持したい場合。
exportは Devin memory MCP のmemories.jsonlの行形式で書き出します。
こんな場合には使用しないでください
- セマンティックなリコールが必要な場合。ランキングはキーワードベースで、エンベディングはありません。
- スクリーニングですべて検出できると期待する場合。これはヒューリスティックなフィルターです。専用スキャナー(gitleaks、devin-redact)も併用してください。
extractが意図を読み取ると期待する場合。extractはキーワードシグナルに一致する項目を抽出し、ヒューリスティックには誤りがあるため、デフォルトでproposedにします。
FAQ
悪意あるセッションによるエージェントメモリーの汚染を防ぐにはどうすればよいですか? 生のストアに追加する代わりに devin-memory retain を使用してください。すべての書き込みがシークレットやインジェクションのパターンについてスクリーニングされます。疑わしい項目は隔離され、人が quarantine --release <id> を実行した後にのみ有効になります。
devin-memory は、メモリーが実際のセッションに由来することを証明できますか? はい。記録されたプロベナンスによって確認できます。retain --source-session <id> --source-rowid <n> は申告された出所を保存し、devin-memory verify <id> --sessions-db <path> は Devin の実際の sessions.db と読み取り専用で照合して監査します。偽造された出所は確認できるため、黙って信頼されることはありません。
devin-memory は Devin memory MCP を置き換えますか? いいえ、補完するものです。MCP はスクリーニングのない追記専用です。devin-memory は隔離、プロベナンス、バージョン管理を追加し、devin-memory export --out memories.jsonl は MCP が読み取る形式と完全に同じ行形式で出力します。
ライセンス
MIT — LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。