$ cat ~/map/pi-heed.md
pi-heed
把你在对话里说过的话变成运行时约束,在副作用工具调用执行前对照检查。
extensions✓ 9月20日
事实速查
- GitHub Stars
- ★ 13
- Forks
- 1
- 许可证
- MIT
- npm / 月
- —
- 最后推送
- 2026年10月13日
安装
运行 pi install git:github.com/Nyarlathoteppppp/pi-heed;规则装好即生效,扩展默认运行在 shadow 模式——/heed on 切换到 enforce,通过 TYPESAFE_API_KEY 或 OPENROUTER_API_KEY 提供密钥可解锁语义判断层。## 速览
一个把你在对话中说的话变成运行时约束的 pi 扩展:review-only、保护路径这类口头规则会在副作用工具调用执行前对照检查,约束作为会话状态持久保存、上下文压缩后依然有效,默认 shadow 模式,直到你手动开启。
## 要点
- $对话式策略而非关键词列表:每条规则带有处置(DENY、ALLOW、REQUIRE_CONFIRMATION、REQUIRE_BEFORE)、动作(modify、install_deps、git_push、git_commit、custom)、资源范围、例外、生命周期(once 首次使用后过期,run 在本轮运行结束时过期)与状态;每次调用按最具体资源优先(文件高于目录高于测试高于全局)、再按更具体的动作、最后按更新的指令裁决——且任何规则都不会被删除。
- $结构上免受压缩影响:每一次策略变更都是持久化在会话里的一条操作记录,重载或压缩之后状态会精确回放,无需再调用 Jev。
- $Jev 的职责很窄:它不撰写策略——只给既有策略的变化分类(KEEP、LIFT、NARROW、EXCEPTION、REPLACE、UNKNOWN),回答某条消息是否是你准许开始改动的信号,并提供若干信号;pi-heed 只采纳有把握的答案,资源信息取自你的消息而非 Jev,任何拿不准的东西都不改变现状。
- $检查什么:只读、别动测试、不加依赖由规则加 Jev 共同裁决,保护路径则由规则单独裁决;自由文本禁令(比如不许调用生产环境 API)走 Jev 的 violates/complies/insufficient 提问;同一失败命令的盲目重试会被拦下并附上证据——而读取类操作(read、grep、find、ls、非变更性 shell)从不检查。
- $安全属性:off、shadow、enforce 三种模式按会话持久保存;Jev 出错或超过 2.5 秒超时即失效放开,如同未安装 pi-heed;它从不主动开启一轮,Esc 之后或新提示发出后才到达的裁决一律丢弃,每轮代理运行最多干预 3 次,扩展注入的文本永远不会变成约束。
- $自带一套度量:79 个脚本化会话、261 条带标签决策的基准,外加对作者真实 pi 会话的重放;规则在会话中途变化时,无辅助的模型 13 次里违反 8 次,pi-heed 开启后 0 次;仅靠规则(无密钥)仍能拦下大多数违规,且零 API 成本。
## 常见问题
Q 必须有 Jev 密钥吗?
不需要。确定性规则覆盖只读、别动测试、不加依赖与保护路径,全程无需 API 调用;密钥(TYPESAFE_API_KEY 或 OPENROUTER_API_KEY)只为自由文本禁令提供语义判断。无密钥时仅由解析器决定什么是规则,README 记载它在 22 条比喻式消息里把 11 条误判为禁令。未找到密钥时 /heed status 显示 judge: none。
Q Jev 挂了或拿不准时会怎样?
失效即放开:Jev 出错或 2.5 秒超时,表现如同没有安装 pi-heed;自由文本裁决拿不准时返回 insufficient——pi-heed 选择弃权而不是乱猜。
Q 它如何挺过上下文压缩?
约束从会话中重建:每条规则变更都是持久化在会话里的操作记录,重载或压缩之后状态会精确回放,无需再调用 Jev。
## 参考链接
## 相关条目
## 教程
最后更新: 2026年9月20日