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、消息计数、令牌和成本。

对于JSONL文件格式和SessionManagerAPI,请参阅Session Format

会话命令

命令 描述
/resume 浏览并选择以前的会话
/new 开始新会话
/name <name> 设置当前会话显示名称
/session 显示会话信息
/tree 导航当前session tree
/fork 根据先前的用户消息创建新会话
/clone 将当前活动分支复制到新会话中
/compact [prompt] 总结旧的背景;见Compaction
/export [file] 将会话导出为 HTML
/share 上传为私有 GitHub 要点,并带有可共享的 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 切换标签时间戳
进入 选择条目
退出/Ctrl+C 取消
Ctrl+O 循环过滤模式

过滤器模式有:默认、无工具、仅用户、仅标记和全部。在 Settings 中配置默认​​值 treeFilterMode

选择行为

选择用户或自定义消息:

  1. 将叶移动到所选消息的父级。
  2. 将选定的消息文本放置在编辑器中。
  3. 允许您编辑并重新提交,创建新分支。

选择助手、工具、压缩或其他非用户条目:

  1. 将叶子移动到该条目。
  2. 将编辑器留空。
  3. 让您从那一点继续。

选择根用户消息会将叶重置为空对话,并将原始提示放置在编辑器中。

/tree/fork/clone

特征 /tree /fork /clone
输出 相同的会话文件 新会话文件 新会话文件
看法 满树 用户消息选择器 当前活动分支
典型用途 探索现有的替代方案 从先前的提示开始新会话 在继续之前复制当前工作
概括 可选分支摘要 没有任何 没有任何

当您想将替代方案保留在一起时,请使用 /tree。当您需要单独的会话文件时,请使用 /fork/clone

分支摘要

/tree 从一个分支切换到另一个分支时,pi 可以总结废弃的分支并将该摘要附加到新位置。这可以保留您离开的路径中的重要上下文,而无需重播整个分支。

出现提示时,选择以下选项之一:

  1. 没有总结
  2. 使用默认提示进行总结
  3. 使用自定义焦点说明进行总结

请参阅 Compaction 了解 branch summarization 内部构件和延长钩。

会话格式

会话文件为JSONL,包含消息条目、模型更改、思维级别更改、标签、压缩、分支摘要和扩展条目。

有关解析器、扩展、SDK用法和完整的 SessionManager API,请参阅Session Format