cogmem について
cogmemは、コーディングエージェント向けのローカル優先メモリレイヤーです。セッションをまたいで経験やプロジェクトの状況を保持し、結果に応じて記憶を見直します。署名付きメモリと改ざん検知ログにより、変更・汚染された内容を検出して拒否できます。
主な機能
- 01セッション間のセマンティック検索
- 02結果に基づくメモリの改善
- 03プロジェクト状況と進捗の記録
- 04既知の失敗パターンの阻止
- 05署名付き認証情報と改ざん検知ログ
活用シーン
- 01新しいセッションで関連する教訓を取得
- 02コーディングエージェントの既知のミスを防止
- 03複数プロジェクトの進捗と課題を追跡
- 04保存したメモリの改ざんを検証
MCP 対応
cogmemはMCPサーバーとして動作し、recall、note、status、verifyなどのツールと、ユーザーモデルおよびプロジェクト状態のリソースを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
8掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| k | integer | いいえ | 返されるメモリの最大数(1-20)。デフォルトは 5 です。 |
| query | string | はい | 教訓を検索するタスクまたは質問の自然言語による説明。例:'how does the user want commit messages formatted'。 |
| scope | string | いいえ | 任意の分野フィルター。例:'rust'、'python'、'universal'。省略すると、すべてのスコープを検索します。 |
詳細
cogmem
自己改善し、検証可能な、AI コーディングエージェント向けメモリレイヤーです。
自己改善し、検証可能な、AI コーディングエージェント向けメモリレイヤーです。
cogmem はセッションをまたいで作業方法を学習し、エージェントの精度と自律性を時間とともに高めます。間違いの繰り返しを止め、各プロジェクトの最新モデルを維持し、適切なタイミングで適切な教訓を提示します。すべてのメモリは暗号学的に署名され、改ざんが検知可能なため、エージェントを誘導する前に、汚染または改変されたメモリを検出して拒否できます。
WritersLogic が開発 — ローカル優先の想起機能を備え、メモリと本人確認キーはお使いのマシン上に保持されます(プライバシーを参照)。
インストール
PyPI から
pip install cogmem # CLI + MCP server + verifiable-memory tools
pip install 'cogmem[recall]' # add local semantic recall (fastembed)
cogmem init # wire the Claude Code hooks + build the index
pip install cogmem を実行すると、cogmem CLI と MCP サーバー(cogmem mcp、または必要に応じて uvx cogmem mcp)が利用できます。検証可能なメモリツールにはコアのインストールだけで十分です。ローカルのセマンティック想起機能を使うには [recall] エクストラを追加し、次に cogmem init を実行して、学習ループ全体(SessionStart/UserPromptSubmit/Stop フックとインデックス)を Claude Code に組み込みます。cogmem init はべき等なので、いつでも再実行できます。
クローンインストーラー(ウォームデーモン付きの一括セットアップ)
クローンインストーラーは pip install と cogmem init で行うすべてのセットアップに加え、ウォーム想起デーモン(launchd/systemd)を管理対象サービスとして設定します。
git clone https://github.com/writerslogic/cogmem.git
cd cogmem
./install.sh
または、1 行で実行します。
curl -fsSL https://raw.githubusercontent.com/writerslogic/cogmem/main/install.sh | bash
install.sh はべき等なので、いつでも再実行してその場でアップグレードできます。コードを
~/.claude/cogmem に配置し、依存関係を含む自己完結型の仮想環境、
PATH 上の cogmem CLI、Claude Code フック、およびウォーム想起デーモン
(macOS では launchd エージェント、Linux では systemd --user サービス)をセットアップします。Python 3.12 以降が必要です。セマンティック想起はローカルモデル(fastembed、外部
API 不要)で動作します。これらの手順を省略するには --no-daemon または --no-hooks を指定します。別の場所にインストールするには COGMEM_HOME
を設定してください。CLI、エンジン、フックはすべて実行時にこの値を解決するため、
既定以外の場所にインストールした場合も、メモリと本人確認情報は完全に自己完結した状態に保たれます。
カスタムインストール
別のディレクトリにインストールする
COGMEM_HOME を設定すると、既定の ~/.claude/cogmem 以外の場所に cogmem を
配置できます。
COGMEM_HOME=/opt/cogmem ./install.sh
または、1 行のコマンドを使います。
curl -fsSL https://raw.githubusercontent.com/writerslogic/cogmem/main/install.sh | COGMEM_HOME=/opt/cogmem bash
インストーラーはコードをコピーし、仮想環境を作成して、CLI を
~/.local/bin/cogmem(または COGMEM_BIN が指定する場所)にシンボリックリンクします。
CLI のパス
cogmem CLI のシンボリックリンクを配置する場所を指定するには、COGMEM_BIN を設定します。
COGMEM_BIN=$HOME/.cargo/bin COGMEM_HOME=/opt/cogmem ./install.sh
COGMEM_BIN が PATH に含まれていない場合、インストーラーは警告を表示します。$COGMEM_HOME/cogmem から cogmem を直接実行することもできます。
データディレクトリと ID キーの解決方法
実行時に、CLI とエンジンは環境変数から COGMEM_HOME を読み取ります。設定されていない場合は、~/.claude/cogmem を使用します。すべての実行時データは vault/ サブディレクトリに保存されます。
| パス | 用途 |
|---|---|
$COGMEM_HOME/vault/identity/agent.key | Ed25519 秘密鍵(エージェント ID、did:key) |
$COGMEM_HOME/vault/credentials/ | W3C Verifiable Credential ストレージ |
$COGMEM_HOME/vault/rules/ | Layer-A(常時読み込み)および Layer-B(リコール)ルール |
$COGMEM_HOME/vault/provenance/log.jsonl | 追記専用のハッシュチェーン型透明性ログ |
$COGMEM_HOME/vault/provenance/statements/ | COSE_Sign1 SCITT 署名済みステートメント |
$COGMEM_HOME/engine/.venv/ | 依存関係を含む Python 仮想環境 |
$COGMEM_HOME/hooks/ | Claude Code フックのスクリプト |
ID キーは初回実行時(cogmem status または任意のエンジン操作時)に生成され、$COGMEM_HOME/vault/identity/agent.key に保存されます。対応する did:key は Ed25519 公開鍵から導出されます。cogmem を新しい COGMEM_HOME に移動または再インストールすると、vault/ ディレクトリを移行しない限り、新しい ID が作成されます。
デフォルト以外のインストール先での MCP クライアント
標準の MCP クライアント設定は、cogmem CLI が実行時に環境変数を解決するため、COGMEM_HOME の値にかかわらず使用できます。
{
"mcpServers": {
"cogmem": { "command": "cogmem", "args": ["mcp"] }
}
}
CLI が PATH に含まれていない場合は、フルパスを使用します。
{
"mcpServers": {
"cogmem": { "command": "/opt/cogmem/cogmem", "args": ["mcp"] }
}
}
または、シェルラッパーで COGMEM_HOME をプレフィックスとして指定します。
{
"mcpServers": {
"cogmem": { "command": "env", "args": ["COGMEM_HOME=/opt/cogmem", "cogmem", "mcp"] }
}
}
クイックスタート
cogmem status # health check, metrics, agent DID
cogmem doctor # end-to-end learning-loop health (daemon, API key, trust, backlog)
cogmem recall "..." # surface relevant past lessons for a task
cogmem note "..." # record a decision or finding mid-task
cogmem verify # verify every memory's credential + the transparency log
cogmem receipt <id> # inclusion proof that a memory is committed in the signed log
cogmem statement <id> # COSE_Sign1 SCITT signed statement (verifiable by HMS too)
cogmem trust # show the trusted agent identity (warns on a key mismatch)
cogmem trust --rotate # re-anchor trust after an intentional key change
cogmem review list # approve always-load rules
cogmem mcp # run the MCP server (stdio) for any MCP client
MCP 統合
cogmem を MCP サーバーとして実行し、MCP 互換クライアントを接続します。
{
"mcpServers": {
"cogmem": { "command": "cogmem", "args": ["mcp"] }
}
}
8 つのツール(recall、note、status、verify、receipt、tree_head、progress、review_pending)に加え、読み取り専用のリソース(ライブユーザーモデルとプロジェクトごとの状態)が公開されます。
Claude Code 統合
install.sh は cogmem を Claude Code に自動的に組み込みます(~/.claude/settings.json に冪等にマージされます)。手動での呼び出しは不要です。5 つのフックがメモリのループをバックグラウンドで実行します。
| イベント | フック | 動作 |
|---|---|---|
SessionStart | cogmem-activate.sh | 昇格された常時読み込み(Layer-A)ルールとセルフチェックを挿入します |
UserPromptSubmit | cogmem-recall.sh | 現在のプロンプトに対してセマンティックな Layer-B リコールを行います |
PreToolUse(Bash) | cogmem-guard.sh | 既知のミスが発生する前に、ツール呼び出しの境界で検出します |
PostToolUse(Edit|Write) | cogmem-context.sh | セッションで現在編集中のファイルを追跡します |
Stop | cogmem-capture.sh | セッションをメモリに取り込みます(獲得+統合) |
すべてのフックは厳密にフェイルオープンです。エラー、タイムアウト、またはデーモンの未起動時には何も挿入せず、プロンプトをブロックすることもありません。スクリプトは ~/.claude/cogmem/hooks/ にあります。設定を更新するには、install.sh(または ./install.sh --no-daemon)を再実行してください。
なぜ cogmem なのか? -- 結果から学習し、失敗モードをモデル化し、検証可能なメモリを実現
チャットメモリシステム(Mem0、Letta、Zep)は、事実を保存して取得します。cogmem はコーディングエージェント向けに構築されており、3 つの点でさらに踏み込んでいます。
結果から学習します。 リコールされた教訓が実際に役立ったかを評価するフィードバックループにより、誤りと判明したルールを改良し、誤解を招くルールを廃止します。
自身の失敗モードをモデル化します。 cogmem は、作業中にエージェントが誤りを起こしやすい箇所を追跡し、既知のミスが発生する前に、ツール呼び出しの境界で検出します。
メモリを検証可能にします。 各メモリはエージェントの did:key で署名された W3C Verifiable Credential であり、改ざん検知可能な SCITT 形式の透明性ログに記録されます。エージェントのメモリは攻撃対象になり得ます。cogmem は監査可能で、汚染に強いメモリを実現します。
機能 -- 2 層メモリ、結果フィードバック、自己モデル、プロジェクト状態、プロジェクト横断のナラティブ、自己調整、検証可能な認証情報
- 2 層メモリ:常時読み込まれる指示(スコープによる制限、人間による承認)と、セマンティックな想起用テール(ローカルなクロスエンコーダーによる再ランキング、データがマシンの外に出ることはありません)で構成されます。
- 結果フィードバックと自己改善:メモリは実際に役立ったかどうかに応じて信頼度を獲得または失い、矛盾するルールは安全なパイプラインを通じて修正されます。
- 自己モデルとガード:エージェントが繰り返すミスをモデル化し、
PreToolUse境界でミスを阻止するトリップワイヤーに変換します。 - プロジェクト状態モデル:プロジェクトごとの生きた状態(目標、主張、未解決の質問、障害要因)によって、状況の継続性と時間を越えた理由付けを実現します。
- プロジェクト横断の進捗ナラティブ:プロジェクト間の勢い、停滞、依存関係をアラートとして表示します。
- 自己調整:評価ハーネスに対して想起しきい値を自動調整します。
- 検証可能なエージェントメモリ:
did:keyアイデンティティ、W3C VC 署名付きメモリ、COSE_Sign1 SCITT 署名付きステートメント(HMS とバイト互換)、署名済みの Merkle ツリーヘッドと RFC 6962 の包含証明を備えたハッシュチェーン型透明性ログ、オプションの汚染耐性適用機能を提供します。PROVENANCE.md を参照してください。
検証可能なメモリ -- did:key アイデンティティ、W3C VC、COSE/SCITT、ハッシュチェーン型ログ、汚染耐性
cogmem は、保存されるすべてのメモリを署名付きアーティファクトとして扱います。
did:keyアイデンティティ:各エージェントに永続的な Ed25519 アイデンティティが割り当てられ、W3C DID として公開されます。- W3C 検証可能な認証情報:すべてのメモリに
eddsa-jcs-2022データ完全性証明で署名します。 - COSE_Sign1 / SCITT 署名付きステートメント:holographic-memory と crosstalk で使用されるエンベロープ形式とバイト単位で同一であり、3 つの実装のいずれでも独立して検証できます。
- ハッシュチェーン型透明性ログ:SHA-256 チェーン、署名済み Merkle ツリーヘッド、RFC 6962 形式の包含証明を備えた追記専用 JSONL です。
- 失効:すべての認証情報に W3C ビット文字列ステータスリスト の項目が含まれます。降格または廃止されたメモリは、署名済みステータスリスト認証情報で失効します。
- 汚染耐性:改変または注入されたメモリは検証に失敗し、エージェントに影響を与える前に拒否されます。
cogmem verify # check all memories and the log head
cogmem receipt <memory-id> # prove a memory is in the signed log
cogmem revoke <memory-id> # revoke a memory (Bitstring Status List)
cogmem status-list # emit the signed revocation status-list credential
完全な仕様については、PROVENANCE.md を参照してください。
C2PA のサンプルを自分で検証する:
# examples/c2pa-agent-credential/ is a real signed C2PA manifest
# whose agent identity validates in c2patool
./examples/c2pa-agent-credential/verify.sh
これは、エージェントのアイデンティティ(cawg.ica.credential_valid)が実際の認知に結び付いていることを、チェーン全体で証明します。すなわち、署名付き cogmem メモリと署名付き crosstalk 推論監査であり、それぞれ独立して検証可能な Ed25519 COSE/SCITT ステートメントです。
cogmem は公開されている標準に基づいて構築されており、完全に準拠する部分と、形状や暗号方式には互換性があるものの、プロファイルへの完全準拠には至らない「スタイル」の部分を明確に区別しています。実際の Ed25519 署名を実際の正規化されたバイト構造に対して行っており、模擬的な要素は一切ありません。
| 標準 | cogmem の実装内容 | ステータス |
|---|---|---|
| W3C DID | did:key(Ed25519)、OKP publicKeyJwk を公開する did:web、did:jwk。いずれも動作するリゾルバーを備えています | 準拠 |
| W3C VC Data Model 2.0 | VC v2 コンテキスト、クレデンシャルの id、validFrom/validUntil、AgentMemoryCredential/AIAgentCredential/IdentityClaimsAggregationCredential | 準拠。Verifiable Presentations はロードマップに含まれています |
W3C Data Integrity — eddsa-jcs-2022 | RFC 8785 の JCS 正規化バイト(UTF-16 によるキー順序、リテラル UTF-8 文字列)に対する Ed25519 Data Integrity proof | 準拠 |
| W3C Bitstring Status List | すべてのメモリーに BitstringStatusListEntry が含まれます。降格または廃止されたメモリーは失効され(GZIP と multibase の encodedList)、署名済みの BitstringStatusListCredential で公開されます | 準拠 |
| IETF COSE (RFC 9052) | タグなしおよびタグ 18 の COSE_Sign1、EdDSA(-8) | 準拠。関連プロジェクトの coset ベースの検証ツールとバイト単位で相互運用可能です |
| IETF SCITT | COSE_Sign1 で署名されたステートメントと、追記専用のハッシュチェーン型署名ログ | SCITT「スタイル」です。準拠した Signed-Statement ヘッダー(CWT_Claims)、COSE Receipts、発行者とは別個の Transparency Service はロードマップに含まれています。詳細は以下をご覧ください |
| RFC 6962 Merkle | 署名済みツリーヘッド、包含証明、検証 | 証明の計算は準拠しています。独立した透明性を確保するため、証人がツリーヘッドに共同署名します |
| CAWG Identity Assertion (ICA) | application/vc に対するタグ 18 の COSE_Sign1 に含まれる IdentityClaimsAggregationCredential。C2PA の SignerPayload と照合されます | c2pa-rs の ICA 検証ツールと相互運用可能です |
SCITT への完全準拠に向けて。 新たな暗号技術を導入せずに、範囲を限定した 3 つの手順で対応します。(1)ステートメントのペイロードから iss/sub/コンテンツタイプを COSE 保護ヘッダーの CWT_Claims に移します。(2)包含証明を、ステートメントの非保護ヘッダー内に COSE Receipts(draft-ietf-cose-merkle-tree-proofs)として出力します。(3)外部の証人を、発行エージェントとは別個の必須 Transparency-Service ロールにします。手順 1~2 は再エンコードです。手順 3 がアーキテクチャ上の変更です。単一主体のログは互換性のある形式ではありますが、意味のある透明性を実現するものではないためです。
プライバシー
cogmem は設計上、ローカル優先です。メモリー、埋め込み表現、ID キーはお使いのマシンに保存され、意味検索は完全にローカルで行われます。埋め込みモデルと再ランキングモデル(fastembed)はデバイス上で動作するため、メモリーを検索してもデータがマシンの外部に送信されることはありません。
学習パイプラインはローカルではありません。取得、統合、フィードバック判定、およびプロジェクト/ユーザーモデルの合成では、該当するセッションのトランスクリプトが Anthropic API(ANTHROPIC_API_KEY)に送信されます。これにより、ルールの抽出とスコアリングを行います。完全なオフライン動作が必要な場合は、ローカルモデルによる抽出経路が追加されるまで --no-hooks を指定して実行してください(検索は引き続き利用できます)。つまり、検索はローカルで行い、学習では API を呼び出します。
エージェント来歴スタックの一部
cogmem は、WritersLogic の検証可能なエージェント来歴パイプラインを構成するコンポーネントの 1 つです。このパイプラインでは、エージェントの ID、メモリ、推論、署名付き出力がエンドツーエンドで暗号学的に結び付けられています。
| プロジェクト | 役割 |
|---|---|
| cogmem (このリポジトリ) | エージェントの ID(CAWG 認証情報)+検証可能で改ざんを検知できるメモリ(COSE/SCITT) |
| crosstalk | マルチモデルオーケストレーター。各ターンの推論/オーケストレーション監査に署名します |
| holographic-memory | 永続的なホログラフィックメモリストア。署名付きステートメントとエージェントの ID を相互検証します |
| WritersProof | C2PA プロデューサー。ID+メモリ+推論を署名付きアセットに結び付けます |
4 つすべてが、1 つの基盤である COSE_Sign1/SCITT 署名付きステートメント(Ed25519)と W3C DID ID を共有しています。詳細は UNIFIED-PROVENANCE.md に記載されています。
セキュリティ
脆弱性を発見した場合は、非公開で報告してください。SECURITY.md をご覧ください。
ライセンス
Apache-2.0 — LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。