Pi 的配置、擴充、平台設定和 API 參考。

工作階段

Pi 會將對話儲存為工作階段,以便繼續工作、從之前的輪次建立分支,並重新存取之前的路徑。

工作階段儲存

工作階段會自動儲存到 ~/.pi/agent/sessions/,並按工作目錄組織。每個工作階段都是一個具有樹結構的 JSONL 檔案。

pi -c                  # Continue most recent session
pi -r                  # Browse and select from past sessions
pi --no-session        # Ephemeral mode; do not save
pi --name "my task"    # Set session display name at startup
pi --session <path|id> # Use a specific session file or partial session ID
pi --fork <path|id>    # Fork a session file or partial session ID into a new session

在互動模式下使用 /session 查看目前工作階段檔案、工作階段 ID、訊息數量、token 和成本。

JSONL 檔案格式和 SessionManager API 見 Session Format

工作階段指令

指令 描述
/resume 瀏覽並選擇以前的工作階段
/new 開始新工作階段
/name <name> 設定目前工作階段顯示名稱
/session 顯示工作階段資訊
/tree 導航目前 session tree
/fork 根據先前的使用者訊息建立新工作階段
/clone 將目前活動分支複製到新工作階段中
/compact [prompt] 總結較舊的上下文;見 Compaction
/export [file] 將工作階段匯出為 HTML
/share 上傳為私有 GitHub Gist,並產生可分享的 HTML 連結

恢復和刪除工作階段

/resume 開啟目前專案的互動式工作階段選擇器。 pi -r 在啟動時開啟相同的選擇器。

在選擇器中可以:

  • 透過輸入搜尋
  • 使用 Ctrl+P 切換路徑顯示
  • 使用 Ctrl+S 切換排序模式
  • 使用 Ctrl+N 過濾命名工作階段
  • 使用 Ctrl+R 重命名
  • 使用 Ctrl+D 刪除,然後確認

如果可用,pi 使用 trash CLI 進行刪除,而不是永久刪除檔案。

命名工作階段

使用 /name <name> 設定人類可讀的工作階段名稱:

/name Refactor auth module

使用 --name-n 設定啟動時的名稱:

pi --name "Refactor auth module"
pi --name "CI audit" -p "Review this build failure"

命名工作階段在 /resumepi -r 中更容易找到。

使用 /tree 進行分支

工作階段以樹結構儲存。每個條目都有 idparentId,目前位置是活動葉節點。/tree 可以跳轉到任意歷史位置並從那裡繼續,而無需建立新檔案。

Tree View

形狀範例:

├─ user: "Hello, can you help..."
│  └─ assistant: "Of course! I can..."
│     ├─ user: "Let's try approach A..."
│     │  └─ assistant: "For approach A..."
│     │     └─ user: "That worked..."  ← active
│     └─ user: "Actually, approach B..."
│        └─ assistant: "For approach B..."

樹控件

按鍵 操作
↑/↓ 導航可見條目
←/→ 向上/向下翻頁
Ctrl+←/Ctrl+→ 或 Alt+←/Alt+→ 折疊/展開,或在分支段之間跳轉
Shift+L 設定或清除所選條目上的標籤
Shift+T 切換標籤時間戳
Enter 選擇條目
Escape/Ctrl+C 取消
Ctrl+O 循環過濾模式

過濾器模式有:預設、無工具、僅使用者、僅標記和全部。在 Settings 中設定預設值 treeFilterMode

選擇行為

選擇使用者或自訂訊息:

  1. 將葉節點移動到所選訊息的父級。
  2. 將選定的訊息文字放置在編輯器中。
  3. 可以編輯並重新commit,從而建立新分支。

選擇助理、工具、壓縮或其他非使用者條目:

  1. 將葉節點移動到該條目。
  2. 將編輯器留空。
  3. 可以從該位置繼續。

選擇根使用者訊息會將葉節點重置為空對話,並將原始 Prompt 放入編輯器。

/tree/fork/clone

功能 /tree /fork /clone
輸出 相同的工作階段檔案 新工作階段檔案 新工作階段檔案
視圖 完整樹 使用者訊息選擇器 目前活動分支
典型用途 在原工作階段中探索替代方案 從之前的 Prompt 開始新工作階段 在繼續前複製目前工作
摘要 選用分支摘要

想把替代方案儲存在同一個工作階段中時,使用 /tree。需要單獨工作階段檔案時,使用 /fork/clone

分支摘要

/tree 從一個分支切換到另一個分支時,pi 可以總結被離開的分支,並將摘要附加到新位置。這樣可以保留原路徑中的重要上下文,而不必重放整個分支。

出現提示時,選擇以下選項之一:

  1. 不產生摘要
  2. 使用預設 Prompt 產生摘要
  3. 使用自訂關注點說明產生摘要

請參閱 Compaction 瞭解分支摘要的內部機制和擴充 Hook。

工作階段格式

工作階段檔案是 JSONL,包含訊息條目、模型變更、thinking level 變更、標籤、壓縮、分支摘要和擴充條目。

解析器、擴充、SDK 用法和完整的 SessionManager API 見 Session Format