门闸:拦的不是 Agent,是宿主自己
24 条规则拦的是 Agent 的工具调用。但如果动作不经过工具调用呢?
有一类动作,是宿主客户端自己在后台做的——比如把工作区快照静默上传。 它不经过 Agent,24 条规则再全也拦不住。所以我们另建了一层。
它怎么工作
| 层 | 拦谁 | 机制 |
|---|---|---|
| 24 条规则 | Agent 的工具调用(Bash/Read/Write…) | PreToolUse 钩子,动作前判断 |
| 门闸 host-shield | 宿主客户端自己 | OS 级 ACL,拒绝写入宿主的上传暂存路径 |
两者不是包含关系。门闸不在 24 条之中,且结构上不可能在——
判据是:grep checkpoint|snapshot rules/default.json 命中 0 条。
本机实测(2026-09-19,Windows 独立取证)
4 个工作区 4/4 存在宿主上传暂存清单
体量 2.2 MB manifest 为明文
结论:4/4 已被上传接受
取证方法与原始输出见 公开取证报告(脱敏版)。
它的本领,一句话
它拦不住已经被传走的,但能拦住下一次。
这不是谦虚,是准确。已经出去的数据,任何本地工具都追不回来。
四条边界(同时写,否则就是夸大)
- 默认关闭。enable 之前,这个模块不做任何事。
- 仅 Windows。依赖 NTFS ACL 与 Windows 安全描述符。
- 有代价:开启后回滚能力不可用。宿主无法写暂存路径 ⇒ 依赖该路径的恢复功能同时失效。
- 不读密文。只操作 ACL,不解析内容(红线 A3)。
为什么写这一屏
因为"我的工具能拦住这类事"这句话,大多数产品说不出口—— 他们要么没做这一层,要么做了不说清代价。我们把代价一起写出来。
引用这一页
Antinel AgentState. 门闸 —— 拦宿主自己那一层. https://antinel.com/agentstate/shield/(访问日期:YYYY-MM-DD)
Antinel. (2026). 门闸 —— 拦宿主自己那一层. AgentState. https://antinel.com/agentstate/shield/
BibTeX
@misc{antinel_agentstate_shield,
title = {门闸 —— 拦宿主自己那一层},
author = {{Antinel}},
year = {2026},
url = {https://antinel.com/agentstate/shield/},
note = {口径: 已实测}
}
口径:已实测 采集时刻:2026-09-19