Pi写代码时最麻烦的,不一定是它不会写,而是它明明知道规则,跑久了还是会忘。
我之前用Pi写一个项目,它一开始还挺规矩的,按照我的要求一步步来。但跑了大概半小时后,它开始自作主张了:该跑测试的时候直接说"已经完成了",该用安全方式处理数据的时候直接硬编码密钥。最离谱的一次,它差点执行了一个rm -rf命令,幸好我及时发现了。
Pi-warden就是专门解决这个问题的。它会在Pi每次write、edit、bash之前或之后做检查,把问题直接反馈给Agent,让它自己修,不是每次都弹窗问你。
几个数字比较直观:
150组A/B测试:不开Warden时出现6次规则违规,开启后是0次。
321个真实会话,一共检查了17,160次工具调用,实际只拦了42次。其中用户随后批准了5次,也就是说37次拦截最终被保留。
单次判断大约消耗1000 input tokens,成本约$0.00004/次,延迟大约0.3秒。
还做了109轮连续稳定性测试,13,952个case,100%通过,0 score drift。
它主要盯这些问题:
Agent有没有违反项目自己的pi-warden.md规则。连续用同一种错误方法重试。没跑测试就直接说"已经完成"。写出硬编码密钥、关闭TLS这类安全问题。执行rm -rf、数据库reset、force push这种不可逆操作。工具输出太长,把上下文撑爆。子Agent的结果到底值不值得打断主Agent。回复开始重复、跑死循环。
我比较喜欢的一点是:大部分问题只提醒Agent,不拦。只有破坏性命令、明确deny规则,或者不可逆概率超过阈值时才真正hold。正常代码修改还是继续跑,所以不会把自动模式变成"点确认模拟器"。
需要Pi 0.85+、Node.js 22.19+。没有TypeSafe key也能跑一部分离线检查。
最近一直在看Pi的多Agent和自动化工具,反而觉得这种guardrail比再堆几个Agent更实用。Agent跑得越久、权限越大,越需要一层能随时把它拉回任务边界的东西。
GitHub:github.com/DevMortimer/pi…
话题来源 @TiagerBao
5.3K阅读 ❤️56 x.com/…↗ 已改写,非原文转载
202 浏览 0 评论
0 反应













