chandra447/pi-hermes-memory
Hermes-style persistent memory and learning loop for Pi coding agent
Pi Hermes Memory – Piエージェント向けの永続的で検索可能なメモリ
概要 – Piアシスタントに永続的なナレッジベースを提供する公式Pi拡張機能です。セッションをまたいで事実、ユーザー設定、失敗ログ、再利用可能な手順(スキルと呼ばれる)を保存し、エージェントが過去の会話を検索できるようにし、秘密情報が永続化されないように保護します。
主な機能
| 機能 | 説明 |
|---|---|
| セッション検索 | SQLite FTS5を介した、これまでのすべてのPi会話の全文検索(/session_search)。 |
| 永続メモリ | 事実、好み、修正はマークダウン(MEMORY.md、USER.md)として保存され、再起動後も保持されます。 |
| バックグラウンド学習 | 10ターン(またはツール呼び出し15回)ごとに拡張機能がダイアログをレビューし、失敗、修正、洞察を抽出してメモリに書き込みます。 |
| 手続き的スキル | エージェントはskill_manageツールを使用して、再利用可能なSKILL.mdファイル(グローバルまたはプロジェクトスコープ)を作成、表示、パッチ適用、更新、または削除できます。 |
| 秘密情報スキャン | APIキー、トークン、SSHキーなどは、書き込まれる前に自動的に拒否されます。 |
| 2層アーキテクチャ | グローバルメモリは~/.pi/agent/pi-hermes-memory/に、プロジェクトメモリは~/.pi/agent/projects-memory/<プロジェクト>/にあります。両方とも検索可能です。 |
| 自動統合 | マークダウンメモリファイルがサイズ制限に達すると、拡張機能は古いエントリをマージまたは削除する統合パスを実行します。 |
| 常時指示 | すべてのセッションに注入される、ユーザー制御の小さなブロック(STANDING.md)。ハードコードされた指示用です。 |
| メモリの老化とポリシー | エントリにはタイムスタンプが付けられ、設定可能な<memory-policy>がエージェントにmemory_searchを呼び出すタイミングを指示します。 |
仕組み
- 拡張機能は、
MEMORY.md(事実)、USER.md(プロファイル)、および無制限の検索のためにマークダウンエントリをミラーリングするSQLitesessions.dbの3つの主要ストアを作成します。 - すべての書き込みは、秘密情報を除去し、悪意のあるペイロードをブロックするコンテンツスキャナーを通過します。
- エージェントは、専門ツール(
memory_add、memory_replace、memory_remove)を呼び出してメモリを直接操作し、skill_manageで手続き的スキルを処理できます。 - バックグラウンドレビュープロセスが定期的に実行され、有用な知識を抽出して適切なストアに書き込みます。
インストール
# Piパッケージマネージャーから
pi install npm:pi-hermes-memory
# またはGitHubから直接
pi install git:github.com/chandra447/pi-hermes-memory
インストールせずにローカルでテストすることもできます:
pi -e /path/to/pi-hermes-memory/src/index.ts
クイックスタート
# 既存のセッションをインデックス化(1回限り)
/memory-index-sessions
# 古いマークダウンメモリをSQLiteに同期(オプション)
/memory-sync-markdown
# コマンドを学習
/learn-memory-tool
典型的なワークフロー:
- 事実を追加 –
memory_add→ "my project codename is ZEPHYR‑7741"。 - 後で思い出す –
memory_search("ZEPHYR")または単にエージェントに尋ねます。 - 更新 –
memory_replaceで古いエントリを変更します。 - 削除 –
memory_removeで、その事実がもはや関連しない場合に削除します。 - スキルを作成 –
skill_manage.createで構造化フィールド(when_to_use、procedure_stepsなど)を使用します。
設定
memoryPolicyStyle:full、compact、custom、noneで、注入されるポリシーテキストの量を制御します。memoryMode:legacy-inject(マークダウンをシステムプロンプトに注入)またはpolicy-only(SQLiteクエリのみを使用)。standingInstructionsEnabled:永続的な<standing-instructions>ブロックを切り替えます。
開発ノート
- 公開されているnpmパッケージにはテストとTypeScriptソースが含まれていません。リポジトリをクローンして
npm run checkとnpm testを実行してください。 - ネイティブアドオン
better-sqlite3は、Node ABIが異なる場合(Homebrewインストールで一般的)に再ビルドが必要になる場合があります。
なぜ重要なのか この拡張機能がないと、Piはセッション終了時にすべてを忘れてしまい、好み、プロジェクトの規約、過去の失敗を繰り返し伝える必要があります。Pi Hermes Memoryは、秘密情報を保護しながら時間とともに成長する、信頼性の高い検索可能な「脳」をアシスタントに提供し、長期間または複数プロジェクトのワークフローをはるかに効率的にします。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト