pi-whereami0.2.0
Short, periodic agent position checkpoints in Pi session history.
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
pi-whereami
English | 简体中文
LLM:你就说钓没钓到吧,别管我去过撒哈拉沙漠。
一些模型跑分不错,任务可以完成,但是路径奇特,类似深度优先搜索,绕路绕到姥姥家里去了。
它们通常没有忘记目标,只是会沿着文件、调用链和局部证据越钻越深。每一步单独看都说得过去,连起来就开始离谱,尤其是在分析类任务中。
pi-whereami 会在 Agent 连续做出一定数量的决策后,强制它重新审视当前路径:是不是还值得继续,还是应该换条路,防止一路钻进牛角尖。
重新审视后,Agent 会留下一条很短的 checkpoint,再继续原任务:
Level: module
Scope: rendering pipeline
State: invalidation remains the likely issue
Next: inspect the dirty propagation boundary
Checkpoint 会保存在会话历史中。Checkpoint 工具本身不受周期触发窗口限制:只要调用参数合法,就会立即记录并更新 HUD;主动记录 checkpoint 也不会重置或推进 re-orientation 的计数。
四个字段都必须是非空的单行字符串。应尽量简短,但不会因为稍长而拒绝记录:历史保留完整文本,HUD 每个字段最多显示 160 个 Unicode 字符,截断时包含省略号。参数无效时,工具错误会说明具体字段和原因;插件不会强制重试。
除此之外,插件还提供一个 HUD 面板,让用户也能看到 Agent 当前记录的位置和运行状态:
WhereAmI · Decisions: 13/20 · Checkpoint at decision 12
13/20 表示模型决策次数,不是工具调用数,也不是任务完成度;Checkpoint at decision 12 表示最新 checkpoint 记录在第 12 次决策之后。
默认检查间隔逐渐缩短:
20 → 15 → 10 → 10 → ...
每条新的用户消息都会重新计数。
Configuration
如需修改检查节奏,创建:
~/.pi/agent/whereami/config.json
例如:
{
"intervals": [30, 20, 10]
}
intervals 必须包含 1 到 8 个正整数。最后一个值会无限重复,因此 [30, 20, 10] 表示 30 → 20 → 10 → 10 → ...。配置不存在或无效时,整份配置回退到默认值 [20, 15, 10]。修改后执行 /reload 生效。
它不监督 Agent,也不判断 Agent 对不对。它做的只是定期打断连续决策,让 Agent 回头看一眼:
这条路还值得继续钻吗?
Install
需要 Pi 0.87.1+。
pi install npm:pi-whereami
安装后直接正常使用 Pi,无需额外命令。
Custom re-orientation
每次周期检查触发时,pi-whereami 会先给当前 Agent 一段 re-orientation 提示,让它重新审视自己正在走的路径,然后要求它留下一条 checkpoint。
默认提示主要检查这些问题:
- 当前正在什么层级、什么范围内工作;
- 最近的工作有没有真正减少主要不确定性;
- 当前路径是不是仍然最有信息价值;
- 是否只是因为惯性、局部关联或旧假设而继续往下钻;
- 有没有更直接的层级、假设或证据来源。
如果你希望 Agent 用不同的方式“回头看路”,可以创建:
~/.pi/agent/whereami/reorient.md
这个文件会完全替换默认的 re-orientation 提示。
例如,你可以让它更关注竞争假设:
继续之前,检查最近的工作有没有缩小主要疑问。
如果没有,考虑一个竞争解释,或者换一种证据来源。
如果当前路径仍然有效,就继续,不要为了换路而换路。
也可以针对自己的工作流,要求它更关注抽象层级、证据质量、实现边界或其他容易钻牛角尖的地方。
自定义提示只负责定义“重新审视什么”。Checkpoint 的 Level / Scope / State / Next 格式仍由插件负责,不需要在文件里重复规定。
修改后执行:
/reload
文件不存在、为空或无法读取时,会继续使用默认提示。
License
MIT