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(プロファイル)、および無制限の検索のためにマークダウンエントリをミラーリングするSQLite sessions.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

典型的なワークフロー:

  1. 事実を追加 – memory_add → "my project codename is ZEPHYR‑7741"。
  2. 後で思い出す – memory_search("ZEPHYR")または単にエージェントに尋ねます。
  3. 更新 – memory_replaceで古いエントリを変更します。
  4. 削除 – memory_removeで、その事実がもはや関連しない場合に削除します。
  5. スキルを作成 – 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は、秘密情報を保護しながら時間とともに成長する、信頼性の高い検索可能な「脳」をアシスタントに提供し、長期間または複数プロジェクトのワークフローをはるかに効率的にします。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト