mcpField
D
devin-memory

devin-memory

ローカル
github.com/Icaro0310メモリ・ナレッジ1今日更新

devin-memory について

devin-memoryは、Devinや他のMCPクライアント向けの永続メモリストアで、AIエンジニアや開発者を対象としています。出所とバージョンを記録し、書き込みを検査して、不審な項目はそのまま信頼せず確認まで隔離します。

主な機能

  1. 01出所を追跡できるメモリ項目
  2. 02書き込みの検査と隔離
  3. 03バージョン管理と競合追跡
  4. 04ワークスペースとプロファイル別の管理
  5. 05有効期限と新しさを考慮した検索
  6. 06CLI、Pythonライブラリ、MCPサーバー

活用シーン

  1. 01エージェントのセッション間で事実を保持
  2. 02メモリを元のセッション行まで追跡
  3. 03不審または注入された内容を利用前に確認
  4. 04ワークスペース固有のコンテキストを検索

MCP 対応

stdioのMCPサーバーとして、retain、recall、検査、一覧、隔離、検証などのメモリ操作を提供します。書き込みは隔離ゲートを通り、昇格用ツールは明示的なオプトイン時のみ利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"icaro0310-devin-memory": {
"command": "uvx",
"args": [
"devin-memory-mcp"
],
"env": {
"DEVIN_MEMORY_DB": "<DEVIN_MEMORY_DB>"
}
}
}
}
起動コマンドuvx devin-memory-mcp
設定が必要な環境変数
DEVIN_MEMORY_DBPath to memory.db (default: ./memory.db)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypidevin-memory-mcp0.3.1

ツール

13

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
tagsstringいいえ
contentstringはい
workspacestringいいえ
source_rowidanyいいえ
source_sessionstringいいえ

詳細

devin-memory

ci PyPI OpenSSF Scorecard M8ven Score Glama Score mcpservers.org に掲載 mcprush Score MCP Registry

ライセンス:MIT Python 3.10+ GitHub のスター数 最終コミット devin-* エコシステム プルリクエスト歓迎

DEVIN エコシステムの一部
トラック:ビルド · 種別:プロダクト
対象:AI エンジニア、開発者、データサイエンティスト
インターフェース:CLI / Python ライブラリ / MCP サーバー / サービス
パス:AI エンジニア · ステップ 3/3 — devin-orchestrator の後

このプロジェクトの位置づけ

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 ネイティブの特長

  1. 並べて確認可能: 各エントリには source_session_id と source_rowid を含められ、devin-internals の読み取り専用ストアを通じて Devin の sessions.db で監査できます。メモリ MCP では、申告されたソースセッション(または特定のメッセージ行)が実在したかどうかを検証できません。隔離ゲートは、すべての書き込みをシークレットやインジェクションのパターンについてもスクリーニングします。
  2. Devin なしの場合: sessions.db がなければ、監査可能なセッションの来歴情報もありません。追加機能はなくなります。
  3. 一文で言うと: 各メモリの出所を記憶し、疑わしいものは人間が解除するまで隔離するメモリストアです。

インストール

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/retracted ID、切り詰められた 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 をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。