sting8k/pi-vcc
Smart, Fast & Lossless session compaction for Pi. No LLM calls - produces structured, transcript-preserving summaries using pure extraction and formatting.
pi‑vccとは?
pi‑vccは、Piコーディングアシスタント(コード作成を支援するオープンソースのLLM搭載チャットボット)向けのプラグインです。長いチャット履歴を、言語モデルを呼び出すことなく、簡潔で検索可能な要約に自動的に圧縮します。要約は、会話から重要な情報(目標、変更ファイル、最近のコミット、実行コマンド、未解決の問題、ユーザー設定、短いトランスクリプト)を抽出し、固定セクションにフォーマットして作成されます。
なぜ使うのか?
| 機能 | Piの組み込み圧縮 | pi‑vcc |
|---|---|---|
| 方法 | 切り取った全体をLLMに送信して要約を生成 | 純粋なアルゴリズム抽出 – LLMなし、トークンコストなし |
| 決定性 | 非決定的、幻覚を起こす可能性あり | 同じ入力 → 同一の出力 |
| サイズ削減 | 変動あり | 中央値97.6%削減(10パーセンタイルで89%) |
| レイテンシ | LLM呼び出しを待つ(秒単位) | 中央値1ms、90パーセンタイル11ms、最悪348ms |
| コスト | 要約リクエストでトークンを消費 | 無料 |
| 圧縮後の履歴 | 破棄 | vcc_recallで検索可能 |
| 繰り返し圧縮 | 毎回さらに失われる可能性 | セクションがマージされ、上限が維持 |
| 構造 | 自由形式の散文 | 最大6つのラベル付きセクション+短いトランスクリプト |
また、このプラグインはPiのデフォルトの/compactコマンドを置き換え、オンデマンド圧縮用の独自の/pi‑vccコマンドを追加し、自動圧縮に介入することもできます。
入手方法
# npmレジストリから
pi install npm:@sting8k/pi-vcc
# またはGitHubから直接
pi install https://github.com/sting8k/pi-vcc
# またはインストールせずに実行
pi -e https://github.com/sting8k/pi-vcc
プラグインの使用
- 自動 – コンテキストウィンドウが満杯になると、pi‑vccは会話の最も古い部分を圧縮します。
- オンデマンド –
/pi‑vccと入力すると、最後のユーザーターンを保持して即座に圧縮します。 - テール制御 –
/pi‑vcc keep:N [prompt]は最後のNユーザーターンを保持し(例:keep:0はすべてを圧縮)、要約後にエージェントにオプションのプロンプトを送信できます。 - フォールバック – 設定で
overrideDefaultCompaction: falseを設定すると、Piのコアが通常の/compactを処理し、/pi‑vccは引き続き使用できます。
要約の外観
[Session Goal]
- Fix the authentication bug in login flow
- [Scope change]
- Also update the session token refresh logic
[Files And Changes]
- Modified: src/auth/session.ts
- Created: tests/auth-refresh.test.ts
[Commits]
- a1b2c3d: fix(auth): refresh token after password reset
[Tracked Commands]
- docker: docker compose restart api 2>&1
[Outstanding Context]
- lint check still failing on line 42
[User Preferences]
- Prefer Vietnamese responses
- Always run tests before committing
---
...(28 earlier lines omitted)
[user]
Fix the auth bug, users can't log in after password reset
[assistant]
Root cause is a missing token refresh after password reset... (#11)
* bash "bun test tests/auth.test.ts" (#12)
* edit "src/auth/session.ts" (#14)
* bash "docker compose restart api 2>&1" (#15)
* bash "bun test tests/auth.test.ts" (#16)
---
Use `vcc_recall` to search for prior work, decisions, and context from before this summary.
内容のあるセクションのみが表示されます。コミットがないセッションでは、[Commits]ブロックは単に省略されます。
非表示の履歴の検索 – vcc_recall
会話の一部が圧縮された後でも、それを取得できます:
vcc_recall({ query: "auth token" }) // キーワードOR検索、ランク付け
vcc_recall({ query: "auth token", page: 2 }) // ページネーション(1ページあたり5件)
vcc_recall({ query: "hook|inject" }) // 正規表現フォールバック
vcc_recall({ query: "auth token", scope: "all" }) // すべての系統を検索
// 直接範囲指定または展開
vcc_recall({ range: [1250, 1290] })
vcc_recall({ expand: [1253] })
同じ機能はスラッシュコマンドとしても公開されています。例:/pi‑vcc‑recall auth token scope:all。
仕組み(AIは関与しません)
- 切り取り位置を選択 – 保持するテールより前のすべてが要約対象です。
- 正規化 – Piメッセージを均一なブロックに変換し、システムメッセージと空のブロックを削除します。
- 抽出とフォーマット – 6つの可能なセクションと短いトランスクリプトを抽出し、レンダリングします。
- マージ – 以前の要約が存在する場合は、新しいセクションをマージして再キャップします。 トークン数はPi自身の統計から推定されます。外部モデルは呼び出されません。
設定(pi‑vcc‑config.json)
~/.pi/agent(または$PI_CODING_AGENT_DIR)にあります。デフォルト値は初回実行時に作成されます:
{
"overrideDefaultCompaction": true,
"smartKeepTail": true,
"continueAfterThresholdCompact": true,
"debug": false,
"skipForProviders": [],
"skipCustomTypes": [],
"trackCommands": []
}
overrideDefaultCompaction– pi‑vccにPiの/compactと自動圧縮を置き換えさせます。smartKeepTail– デフォルトのkeep:1テールが小さい場合、保持テールを最大25kトークンまで拡張します。continueAfterThresholdCompact– 自動圧縮後、エージェントに続行するよう指示します(古いPiバージョン向け)。debug– 圧縮ごとの詳細な診断を/tmp/pi‑vcc‑debug.jsonに書き込みます。skipForProviders– pi‑vccが介入しないプロバイダーIDのリスト(例:groq、openai)。skipCustomTypes– 要約入力からカスタムメッセージタイプを除外します。trackCommands–[Tracked Commands]セクションに保持するシェルコマンドを指定します(例:["docker", "kubectl"])。
ベンチマーク
リポジトリにはbenchmarks/README.mdが含まれており、pi‑vcc(v0.3.18)をPiのデフォルトの圧縮ツールと1,884の実際のセッションで比較し、再現率、事実密度、精度、サイズ削減などのメトリクスを報告しています。
誰が作ったのか?
- VCC(View‑oriented Conversation Compiler)プロジェクトに触発されました。
- リコール関連機能(
mode:"touched"、#N:path)は@k0valikによるpi‑blackholeから借用しています。 - 自動継続ロジックは@monotykamaryによるフォークから来ています。
ライセンス
MIT – 自由に使用、変更、配布できます。
TL;DR
pi‑vccは、長いPiチャットセッションを構造化された要約に縮小し、完全な履歴を検索可能に保つ、高速で決定的、ゼロコストの方法を提供します。pi install npm:@sting8k/pi-vccでインストールし、自動実行または/pi‑vccでトリガーし、vcc_recallを使用して圧縮部分をいつでも掘り起こせます。
関連
- Dispatch
- プロジェクト
- プロジェクト
- プロジェクト