Pi 跑短任务基本没什么事,但是一跑长任务,就很容易出现卡死、一直 Working的情况,每次都只能取消任务重新输入。
我去github翻了一圈,发现这不是个例,而是官方的设计缺陷。
1、模型流假死
这是最常见的一种。
模型厂商、代理或者中转的 SSE 连接没有真正断掉,但已经不继续返回数据。Pi 会以为模型还在工作,Agent Loop 就一直等,表面上看起来就是卡死。
2、Tool / Bash 没退出
这类也很常见,尤其是长任务里面跑 dev server、watch、tail,或者网络请求一直不返回。
如果这条命令本身没有合理 timeout,Pi 就只能一直等它结束。
3、Agent 自己陷入循环
比如 Tool 调用失败后不断重试、重复执行同一个错误动作,甚至一直调用不存在的工具。
短任务可能根本碰不到,但一个任务连续跑几十轮以后,这类问题被撞上的概率就会越来越高。
4、Context 越长,边界问题越多
任务跑久以后,Session 会越来越大,开始碰到 Compaction、Thinking State、Provider Retry 这些东西。
让官方赶紧修一下这些问题,这也侧面说明为什么Pi v2我说呢要往Agent Runtime 这个方向走。