$ cat ~/map/pi-jev-sentinel.md
pi-jev-sentinel
用 Jev 给工具调用、工具输出与回复把关:风险打分、注入检测与密钥脱敏,绝不自动放行。
extensions✓ 9月20日
事实速查
- GitHub Stars
- ★ 13
- Forks
- 0
- 许可证
- MIT
- npm / 月
- —
- 最后推送
- 2026年9月20日
安装
运行 pi install git:github.com/harshwasan/pi-jev-sentinel,然后在启动 pi 前 export TYPESAFE_API_KEY;免安装试用可运行 pi -e git:github.com/harshwasan/pi-jev-sentinel。## 速览
一个用 TypeSafe Jev 审查代理每一步的 pi 扩展:工具调用执行前判意图与风险,工具输出在代理读取前筛查面向 AI 的指令,回复完成后检查有害或被转述的注入内容,外发内容一律做密钥脱敏,出错时宁可询问、绝不自动放行。
## 要点
- $三个审查点:工具调用执行前判意图(在任务上、偏离任务、被注入、需更多上下文)与风险;代理读取工具输出前,先检查输出里是否含有面向 AI 的指令、是良性还是可疑;回复完成后检查有害内容与转述注入指令,不支持的主张与偷工未做两项检查为可选项。
- $固定的裁决阶梯,首个命中生效:高风险或过半概率被注入时警告并高亮 Block;中间地带会先按 Jev 的判断补充上下文复核,然后向你确认;明确安全且在任务上的调用放行;无法决断的一律询问——Jev 看不到这些阈值,每次裁决连同概率一起记录。
- $污染与信任:一条输出被标记后,每一笔操作都要你批准,直到 /jev-sentinel reset;trustedPaths(项目根下的 AGENTS.md、CLAUDE.md、.pi/)的输出不做筛查,项目之外的任何路径都不受信任。
- $密钥脱敏基于模式匹配:疑似密钥的文件按文件名整体扣发,其取值——连同名字含 KEY、TOKEN、SECRET、PASSW、CREDENTIAL、AUTH 的环境变量、此类名字的 NAME=value 行以及 Bearer 令牌——会从发往 Jev 的一切内容中抹除,包括代理自己的回复;README 明确这只是在减少泄露而非保证零泄露,短于 8 个字符的取值不做脱敏。
- $失效即关闭并自我保护:Jev 出错或未设密钥时转为向你确认,绝不自动放行;除只读外,任何触碰 ~/.pi/agent 或决策日志的工具调用,无论 Jev 怎么判都会先弹 Block 警告。
- $同一套检查也能在 pi 之外作为 Claude Code 与 Codex CLI 的钩子运行,差异已在文档写明:输出检查改在工具执行之后进行,ask 对应宿主自己的批准弹窗,放行的操作不返回任何内容,因此既有权限规则继续生效。
## 常见问题
Q Jev 不可达或没有设置密钥时会怎样?
扩展会转为向你确认。守卫失效即关闭——Jev 出错或缺密钥都绝不自动放行;一条输出被标记后,每一笔操作都需要你批准,直到 /jev-sentinel reset 清除该标记。
Q 哪些内容会被发往 TypeSafe?
最近的对话、工具调用、工具输出与回复——代理系统提示词里的内容不会发送。文件内容仅在 Jev 主动索要时发送,且仅限项目内的文件;疑似密钥文件的取值按文件名扣发,并从一切外发内容中抹除。
Q 它能在 pi 之外使用吗?
可以,以 Claude Code 与 Codex CLI 钩子的形式提供。输出检查改在工具执行之后进行,ask 对应宿主自己的批准弹窗,放行的操作不返回任何内容,既有权限规则继续生效。
## 参考链接
## 相关条目
## 教程
最后更新: 2026年9月20日