现在位置: 首页 > Pi Agent > 正文

Pi Agent 常见问题排查

以下是 Pi Agent 使用过程中的常见问题和解决方案。

Pi Agent 启动异常排查决策树


安装问题

本节覆盖安装阶段的典型报错与处理路径。

npm install 失败

现象:执行安装命令后中途报错退出,常见报错集中在版本、网络和权限三类。

可能原因排查方法解决方案
Node.js 版本过低,Pi Agent 要求 Node.js 22.19.0 或更高执行 node --version 查看当前版本用 nvm 安装并切换到 22 LTS 或更高版本
网络问题,国内访问 npm 官方源容易超时观察报错中是否出现 ETIMEDOUT 等网络超时信息执行 npm config set registry https://registry.npmmirror.com 切换镜像源后重装
权限问题,macOS/Linux 的全局安装目录当前用户不可写观察报错中是否出现 EACCES 权限错误用 nvm 管理 Node.js,或把 npm 前缀配置到用户目录,避免使用 sudo

安装后 pi 命令找不到

现象:安装提示成功,但输入 pi 提示 command not found。

先查看 npm 的全局安装前缀:

$ npm prefix -g
/usr/local

再确认该前缀下的 bin 目录是否在 PATH 中:

$ echo $PATH | grep "$(npm prefix -g)/bin"
/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin

目录不在 PATH 中时,这条命令没有任何输出:

$ echo $PATH | grep "$(npm prefix -g)/bin"

没有任何输出就说明全局 bin 目录不在 PATH 里,这就是找不到 pi 命令的原因。

可能原因排查方法解决方案
全局 bin 目录未加入 PATH用上面的 grep 命令确认是否有输出$(npm prefix -g)/bin 追加到 ~/.zshrc~/.bashrc 的 PATH 中,重开终端生效
切换过 Node 版本,旧的软链接失效执行 ls $(npm prefix -g)/bin 查看是否还有 pi在当前 Node 版本下重新执行一次全局安装

认证问题

本节覆盖 /login 登录与 API Key 认证失败的处理路径。

/login 登录失败

表现为输入 /login 后浏览器无法完成跳转,或界面一直停留在等待授权的状态。

可能原因排查方法解决方案
订阅不在有效状态登录提供商官网确认订阅是否过期续费订阅,或改用其他提供商登录
无法访问提供商的认证服务器在浏览器中打开提供商站点确认网络可达配置代理后重试,配置方式见下文代理设置一节
在 SSH 远程连接上使用 /login远程机器上没有浏览器,OAuth 回调无法送达把授权 URL 复制到本地浏览器打开,再手动粘贴回调 URL 完成登录

API Key 不生效

现象:已经 export 了环境变量,启动时仍然提示未认证,或继续使用旧的凭证。

按以下顺序检查:

可能原因排查方法解决方案
环境变量没有正确设置执行 echo $ANTHROPIC_API_KEY 查看输出输出为空时在 shell 配置文件中补上 export,再重新 source
auth.json 中已有同名凭证,优先级高于环境变量查看 ~/.pi/agent/auth.json 中是否已存在该提供商的条目执行 /logout 清除旧凭证,或直接编辑 auth.json 更新 Key
API Key 格式不正确检查复制的内容中是否混入了多余空格或引号重新完整复制一次 Key 再配置

auth.json 中已保存的凭证优先级高于环境变量。

API Key 不生效时先检查 ~/.pi/agent/auth.json,不要只盯着环境变量。

模型不可用

现象:模型列表里找不到预期的模型,或调用时提示没有权限。

可能原因排查方法解决方案
本地模型目录过期执行 pi update --models 刷新模型目录刷新完成后重新打开模型选择器
不清楚当前可用模型执行 pi --list-models 查看可用模型列表从列表中选择当前账号可用的模型
API Key 没有对应模型的访问权限在提供商控制台确认该 Key 的模型授权范围升级套餐,或改用已授权的模型
GitHub Copilot 模型显示 "not supported"确认是否已在 VS Code 中启用该模型先在 VS Code Copilot Chat 中启用该模型,再回到 Pi Agent 使用

界面问题

本节覆盖终端渲染、图片显示与快捷键三类界面异常。

界面显示异常(颜色错误、对齐错乱)

现象:颜色发暗或失真,表格与文本框的边框错位。

可能原因排查方法解决方案
终端不支持 True Color执行 echo $COLORTERM,输出 truecolor 或 24bit 表示支持换用支持 True Color 的终端(iTerm2、Windows Terminal 等)
VS Code 自动调整了终端对比度检查设置项 terminal.integrated.minimumContrastRatio把该项设置为 1
当前终端的渲染兼容性差换一个终端运行,确认问题是否复现更换终端,推荐 iTerm2 或 Windows Terminal

图片无法显示

现象:发送或粘贴图片后终端中只看到占位符或空白。

可能原因排查方法解决方案
终端不支持图片显示协议确认终端是否支持 iTerm2 的 imgcat 或 Kitty 的 icat换用支持图片协议的终端
图片显示被配置关闭检查 terminal.showImages 是否为 true改为 true 后执行 /reload 使配置生效

快捷键不生效

现象:按下文档中描述的快捷键没有任何反应,或触发了终端自身的功能。

可能原因排查方法解决方案
终端拦截了该快捷键检查终端设置中的快捷键绑定列表修改或释放终端中冲突的绑定
记错了当前的快捷键执行 /hotkeys 查看当前所有快捷键绑定按列表中的实际绑定操作
需要按个人习惯调整确认配置文件 ~/.pi/agent/keybindings.json 是否存在编辑该文件自定义快捷键

会话问题

本节覆盖会话文件膨胀与找不到历史会话两类问题。

会话文件过大

现象:上下文占用持续走高,响应变慢或提前触发压缩。

可能原因排查方法解决方案
对话历史过长执行 /session 查看消息数与 token 用量执行 /compact 压缩对话历史
自动压缩没有开启检查 compaction.enabled 是否为 true设为 true 后重启 pi 生效
单个会话累积时间过长/session 观察会话文件大小增长定期用 /new 开始新会话,按任务拆分会话

找不到之前的会话

现象:pi -r 的列表里看不到之前的工作记录。

可能原因排查方法解决方案
没有使用恢复入口执行 pi -r 或在交互模式输入 /resume 浏览会话列表在列表中选中目标会话恢复
sessionDir 设置被修改检查 settings.json 中 sessionDir 的当前值改回原目录,或把原目录下的文件迁移到新目录
会话目录权限异常执行 ls ~/.pi/agent/sessions/ 确认可读写执行 chmod -R u+rw ~/.pi/agent/sessions 修复权限

性能问题

本节覆盖响应慢与长上下文下表现下降两类性能问题。

AI 响应很慢

现象:提交请求后长时间没有首字输出,或整体耗时明显高于平时。

可能原因排查方法解决方案
网络延迟高或链路不通执行 ping api.anthropic.com 查看延迟与丢包切换网络,或按下文代理设置配置代理
推理等级过高,思考时间被拉长观察状态栏当前的推理等级按 Shift+Tab 降低推理等级
系统提示词或上下文文件内容过多检查 AGENTS.md 等上下文文件的体积缩短系统提示词,精简 AGENTS.md 的内容
单次请求的 token 消耗过大执行 /session 查看 token 用量与耗时分布执行 /compact/new 缩短上下文后再试

若走代理环境,改用 curl -x $HTTP_PROXY https://api.anthropic.com 测试。

代理环境下 ping 不通不代表 API 不可用。

ping 走的是 ICMP,API 走的是 HTTPS,此时应改用 curl 验证真实链路。

大量上下文后 AI 表现下降

现象:对话轮次变多后 AI 开始遗忘此前的约定,或给出重复的答案。

可能原因排查方法解决方案
上下文接近窗口上限,早期内容被压缩掉执行 /session 查看当前 token 用量手动执行 /compact 压缩上下文
历史消息中混入了大量无效尝试/tree 查看分支与无效对话/new 开始新会话,把结论写进 AGENTS.md
引用的文件内容与当前任务无关检查 @ 引用与上下文文件中是否带了无关内容减少不必要的上下文文件内容,只保留当前任务需要的部分

代理设置

本节说明在受限网络环境下如何让 Pi Agent 正常访问 API。

在国内访问 API

在 settings.json 中配置 HTTP 代理:

{
  "httpProxy": "http://127.0.0.1:7890"
}

或者设置环境变量后启动:

$ export HTTP_PROXY=http://127.0.0.1:7890
$ export HTTPS_PROXY=http://127.0.0.1:7890
$ pi