darwin-memo について
darwin-memoは、コーディングエージェント向けの測定結果に基づくメモリシステムです。リポジトリの教訓をタスク結果と結び付け、保持・削除の理由を確認できますが、コスト削減はまだ実証されていません。
主な機能
- 01リポジトリの教訓の保存と検索
- 02結果に応じた教訓のエネルギー更新
- 03保持・削除・統合のルール
- 04精算内容を確認するダッシュボード
- 05GitHub Actionsの結果ワークフロー
活用シーン
- 01コーディングタスクの教訓を記録
- 02教訓が保持・削除された理由を確認
- 03GitHub Actionsで固定pytest評価を実行
MCP 対応
オプションのMCPサーバーは、MCPクライアントにメモリの検索・追加・確認機能を提供します。精算と保持方針の変更はホスト側に限定されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
8掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | |
| half_life | number | いいえ |
詳細
darwin-memo
コーディングエージェント向けの、測定可能なメモリです。 リポジトリで得た教訓を保持し、報告されたタスクの結果と結び付け、各教訓が保持または削除される理由を確認できます。
まずは pytest、GitHub Actions、MCP クライアントを使う Python プロジェクトから始めましょう。 コア機能は Python 標準ライブラリのみを使用します。MCP サポートはオプションの追加機能です。
製品の目標は、タスクの成功を維持しながら総運用コストを下げることです。 この効果は、コミット済みの実験では実証されていません。メモリストアの縮小やエネルギーバランスの増加は、節約の測定結果ではありません。
仕組みを60秒で確認
このレビュー済みチェックアウトから実行します。
python -m pip install -e .
darwin-memo demo --out /tmp/darwin-demo.json
darwin-memo ui /tmp/darwin-demo.json
デモではファイルシステムを使ったシミュレーションを使用します。ファイルの削除にはファイルサイズを使用し、保護対象ファイルの再作成にはそのサイズの3倍というモデル上のペナルティが発生します。復元時の作業領域、I/O コスト、金額は測定しません。ダッシュボードで教訓を開き、精算内容と削除理由を確認してください。
実際に失敗する評価を使ってコーディングワークフローを試すには、pytest の修正例を使用してください。認証リトライの不具合により、固定ケースの1つが失敗から成功に変わります。この例では精算の仕組みを示しますが、メモリが修正を引き起こしたことを実証するものではありません。
開発ワークフローをインストール
このチェックアウトの init コマンドと task コマンドは未リリースです。Python 3.10 以降で、レビュー済みチェックアウトからインストールしてください。
python -m pip install -e '.[mcp]'
パッケージ化する前に、このチェックアウトからダッシュボードをビルドしてください。
npm ci --prefix ui
npm run build --prefix ui
永続化には、ローカルファイルシステム上での POSIX アドバイザリロックが必要です。Windows と共有ネットワークストアには対応していません。このパッケージは、ロックなしでの永続化を拒否します。
1つのリポジトリを接続
- リポジトリのルートで
darwin-memo init --profile github-pytestを実行します。 .darwin-memo/mcp.example.jsonを使って MCP クライアントを設定します。- リポジトリの教訓を追加し、タスクの前にメモリを照会します。
- 返されたチケットをリポジトリ、タスク、ベースコミット、固定評価にひも付けます。
- タスクを完了し、ひも付けたストアを変更と一緒にコミットします。
- 生成された GitHub Actions ワークフローを、そのタスクのコミットに対して実行します。
- 結果のアーティファクトをダウンロードし、承認済みのストアを次の作業に引き継ぎます。
- ダッシュボードを開き、報告された結果と保持された教訓を確認します。
GitHub pytest ガイドには、セットアップ要件と生成された運用手順が記載されています。
init は上書きを拒否し、エージェントのグローバル設定を変更しません。推奨される MCP 設定では、照会、追加、検査を公開し、精算と保持に関する変更操作はホスト側に留保します。これにより、誤って自分にクレジットを付与することを減らせますが、ストア、評価、ワークフローへの書き込み権限を持つ悪意のある人物から保護するものではありません。
このワークフローは、両方のコミットで同じベース評価を比較します。追加されたテストが合格してもクレジットは付与されません。グリーンからグリーンへの結果はゼロです。観測結果が不足している場合やインフラストラクチャの障害が発生した場合は判定を見送り、チケットを保留のままにします。ひも付け済みの精算には、リポジトリ、タスク、コミット、実行、評価フィンガープリント、レポートハッシュが記録されます。一度に処理するタスクは1つにしてください。独立した Git スナップショットはマージされません。
リテンションを理解する
クエリによって教訓が取得され、チケットが開かれます。その後に得られた結果に応じて、参照された教訓の上限付きエネルギー残高が変動します。ティックごとに維持コストが課され、下限に達したエントリは削除され、類似するエントリは統合されることがあります。ピン留めされた教訓は削除と統合の対象外です。用語集で用語を説明しています。
精算によって、結果と参照された教訓が関連付けられます。因果関係が確立されるわけではありません。テストの合格は観測可能な結果であり、物理的に保存されるリソースではありません。ci、operator、agentは報告経路を示します。過去のmeasuredラベルは呼び出し側の申告であり、来歴がなければ不明です。これらのラベルだけでは、いずれも報告の真正性を証明できません。
CLI、ダッシュボード、MCPの変更操作では、読み込みから変更、保存までの全処理をロックします。MCPは呼び出しごとに再読み込みし、無関係な書き込み後も埋め込みをキャッシュしたまま保持し、古いPythonライターからの書き込みを拒否します。競合が発生した場合は、操作全体を再試行してください。ストア形式とAPIリファレンスを参照してください。
エビデンスを確認する
| 質問 | エビデンス | 裏付けられる内容 |
|---|---|---|
| フィードバックが改ざんされた場合、何が起きますか? | 主要な攻撃表の再構成、コミット済みの観測結果 | モデル化された復元ペナルティを含む、制御されたシミュレーション比較と、その失敗の境界 |
| 調整済みの対抗手法は競争力がありますか? | 対抗手法のスイープ、論文 | あらゆる状況で優位だという主張に対する否定的な結果。調整済みの許容設定は、攻撃予算が小さい場合に有用なメモリを維持できます |
| 成功を維持しながら、メモリによってコーディングの総コストを削減できますか? | 事前登録されたプロトコル | 未解決の問い。過去の結果には、必要な完全なコスト比較と非劣性のエビデンスがありません |
| ユーザーはワークフローを完了し、継続して利用できますか? | パイロットとリリースの記録 | 外部観測待ち。導入件数を捏造していません |
インストールやネットワークを使わずに、論文の主要な表を再構成できます。
python tools/reconstruct_paper.py
論文『Attacking the Curator』では、フィードバック改ざんの脅威モデル、キュレーターの比較、再利用可能な再現用アーティファクトに焦点を当てています。過去のリプレイは、あくまでリプレイです。主張の監査、再現手順、投稿状況をお読みください。
制限事項と参加方法
メモリが有害になることも、有用な教訓が取り残されることもあり、結果報告を十分に制御できる攻撃者はリテンションを制御できます。固定された評価であっても、不完全であったり、攻略されたりする可能性があります。脅威モデルで境界を定義しています。コスト調査でメモリを使わない方法が最良となった場合は、その結果をリリースで報告します。
その他の統合も引き続き利用できますが、初回リリースでサポートするのはGitHub pytestプロファイルです。セットアップの失敗は診断用イシューテンプレートで報告するか、範囲が限定されたコントリビューター向けタスクを選んでください。リリースの昇格、参加者への連絡、有償実験、投稿は、それぞれ個別の承認が必要なアクションです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。