Pi Agent 交互模式
本章全面介绍 Pi Agent 交互模式下的核心操作,包括 Slash 命令、模型管理和键盘操作。
Slash 命令大全
在编辑区输入 / 会触发命令自动补全。
以下是 Pi Agent 交互模式下的常用内置命令:
| 命令 | 功能 | 说明 |
|---|---|---|
| /login | 登录提供商 | 选择 OAuth 订阅或 API Key 提供商进行认证 |
| /logout | 登出 | 清除已存储的认证凭证 |
| /model | 切换模型 | 打开模型选择器,按名称搜索;选择器内按 Ctrl+S 可保存为启动默认 |
| /thinking | 切换推理等级 | 打开推理等级选择器,选择器内按 Ctrl+S 可保存为启动默认 |
| /scoped-models | 模型范围管理 | 设置 Ctrl+P 循环切换时可用的模型列表 |
| /settings | 设置面板 | 打开内置设置界面:推理等级、主题、消息传递、传输协议等 |
| /resume | 恢复会话 | 从历史会话中选择并恢复 |
| /new | 新建会话 | 开始一个全新的对话 |
| /name | 命名会话 | 为当前会话设置一个易读的名称 |
| /session | 会话信息 | 显示会话文件路径、ID、消息数、token 用量和费用 |
| /tree | 会话树导航 | 跳转到对话树的任意节点继续对话 |
| /trust | 信任项目 | 保存项目信任决策,避免每次启动都询问 |
| /fork | 分叉会话 | 从之前的用户消息分叉出一个新会话文件 |
| /clone | 克隆会话 | 复制当前活动分支到新会话文件 |
| /compact | 压缩上下文 | 手动压缩对话历史,释放上下文窗口空间 |
| /copy | 复制回复 | 复制 AI 最后一条回复到剪贴板 |
| /export | 导出会话 | 导出为 HTML 或 JSONL 文件 |
| /import | 导入会话 | 从 JSONL 文件导入并恢复会话 |
| /share | 分享会话 | 上传为私有 GitHub Gist,生成可分享的 HTML 链接 |
| /reload | 热重载 | 重新加载扩展、Skills、提示词模板、主题、上下文文件和键盘快捷键配置 |
| /hotkeys | 快捷键帮助 | 显示所有键盘快捷键列表 |
| /changelog | 更新日志 | 显示版本更新历史 |
| /quit | 退出 | 退出 Pi Agent |
除了内置命令,Extensions(扩展)也可以注册自定义命令。
Skills 会自动注册为 /skill:名称 命令,提示词模板则通过 /模板名 来调用。
模型管理
模型管理涵盖切换模型、设定循环切换范围和调整推理等级三个方面。
下面分别介绍对应的命令与快捷键。
切换模型(/model 和 Ctrl+L)
使用 /model 命令或 Ctrl+L 打开模型选择器,浏览所有可用的 AI 模型。
在模型选择器中,你可以按名称搜索,选中后按 Ctrl+S 可保存为启动默认。
下面是一个打开模型选择器并切换模型的操作过程:
/model ┌ 选择模型(输入关键词过滤,↑/↓ 移动,Enter 确认): │ > anthropic/claude-sonnet-4-5 │ anthropic/claude-opus-4-1 │ openai/gpt-4o │ google/gemini-2.5-pro └ 已切换到 anthropic/claude-sonnet-4-5
列表中的模型取决于你已配置的提供商,实际显示会与示例不同。
快速循环切换(Ctrl+P)
Ctrl+P 向前循环切换模型,Shift+Ctrl+P 向后切换。
切换范围由 /scoped-models 命令或 enabledModels 设置控制。
推理等级(Shift+Tab)
Shift+Tab 循环切换推理等级。
编辑器边框颜色会随等级变化,让你直观感知当前的推理深度:
| 等级 | 适用场景 |
|---|---|
| off | 无推理(一般任务) |
| minimal / low | 轻度推理(常规编码) |
| medium | 中度推理 |
| high / xhigh | 深度推理(复杂问题) |
| max | 最大推理(极复杂逻辑) |
在 /thinking 选择器内按 Ctrl+S 可把当前等级保存为启动默认。
模型不支持的推理等级不会生效,也不会出现在切换列表中。
模型的能力决定了推理等级的上限。
Shell 命令集成
你可以在编辑区直接执行 shell 命令,无需离开 Pi Agent:
| 前缀 | 行为 | 输出处理 | 使用场景 |
|---|---|---|---|
| ! | 执行命令,输出发给 AI | AI 可见 | 让 AI 查看测试结果、lint 输出、git 状态 |
| !! | 执行命令,输出不发给 AI | 仅本地显示 | 打开文件、查看环境、快速检查 |
使用示例:
!npm test !git diff --stat !python -m pytest -v !!cat ~/.zshrc !!ls -la
下面执行 !npm test 后的实际效果,输出会同时显示在本地并交给 AI:
!npm test
> pi-demo@1.0.0 test
> vitest run
PASS src/utils/format.test.ts (6 tests) 12ms
PASS src/utils/parse.test.ts (4 tests) 8ms
Test Files 2 passed (2)
Tests 10 passed (10)
! 命令的输出会占用 AI 的上下文窗口。
如果输出很大(如完整日志),考虑使用 !! 或者将输出重定向到文件再让 AI 读取。
消息队列深入
消息队列让你在 AI 正在工作时也能发送指令,大幅提升交互效率:
| 消息类型 | 快捷键 | 触发时机 | 典型场景 |
|---|---|---|---|
| Steering(导向) | Enter | 当前轮次的工具调用全部执行完毕后、下一轮 LLM 调用之前插入 | AI 正在执行 read → edit → bash 一连串调用时,你想中途纠正方向 |
| Follow-up(跟进) | Alt+Enter | AI 完成所有工作(没有更多工具调用需要执行)之后才插入 | AI 完成当前任务后追加新的需求 |
| 中止并取回 | Escape | 中止当前操作,并把已排队的消息取回编辑区 | AI 方向跑偏时立即停下,同时拿回排队指令 |
| 仅取回排队消息 | Alt+Up | 不中止当前操作,仅把排队消息取回编辑区 | 想改写排队内容,但不需要打断 AI |
你可以通过设置中的 steeringMode 和 followUpMode 来控制消息的发送策略。
在 Windows 和 WSL 下,Alt+Enter 常被终端占用(如 Windows Terminal 默认绑定全屏切换),此时实际默认可用 Ctrl+Q 发送 follow-up 消息。
编辑器功能
编辑区提供文件引用、路径补全、多行输入等增强能力,减少来回切换工具的次数。
| 功能 | 操作方式 |
|---|---|
| 文件引用搜索 | 输入 @ 触发模糊搜索项目文件 |
| 路径自动补全 | 按 Tab 自动补全路径 |
| 多行输入 | Shift+Enter 换行(Windows Terminal 用 Ctrl+Enter) |
| 粘贴图片 | Ctrl+V(Windows 用 Alt+V,WSL 同样用 Alt+V),或拖拽图片到终端 |
| 复制 AI 回复 | Ctrl+X 在 /tree 中复制当前选中消息,其他场景复制最后一条 AI 回复 |
| 外部编辑器 | Ctrl+G 打开外部编辑器编辑当前内容 |
多行输入中的「Windows Terminal 用 Ctrl+Enter」是 Windows Terminal 下的自动适配,并非 keybindings.json 中的默认值。
