在 Trae 和 Antigravity 中审查 AI 编码智能体的安全性:实用指南
AI 编码智能体能执行 shell、读写仓库、通过 MCP 调用工具——但很少有人说得清它到底被允许做什么。本文是一份可以直接照做的清单:手工检查规则文件与 MCP 配置,以及如何用一条命令持续地完成这些审查。全程本地运行。
在 Trae 或 Antigravity 里写代码时,AI 智能体的能力比大多数人意识到的要大:它可以执行 shell 命令、读写整个仓库、通过 MCP(Model Context Protocol)调用外部工具,甚至在某些配置下自动提交代码。能力本身不是问题——问题是这些能力在悄悄积累,而几乎没有人系统地回答过一个问题:这个智能体现在到底被允许做什么?
这份指南给出可以直接照做的检查清单。所有检查都在你自己的机器上完成,不需要任何账号,也不会上传任何代码。
第一步:检查规则文件
智能体的“规则文件”(Trae 的 project_rules、Cursor 的 .cursorrules、通用的 AGENTS.md 等)是它每次任务都会重新读取并服从的常驻指令。这让规则文件成为智能体工作区里杠杆最高的攻击面:写进这个文件的任何内容,都会以你的名义、在每一次任务中、无声地对智能体下达指令。
手工检查三件事。其一,不可见字符:零宽字符(U+200B 至 U+200F)、双向文本控制符(U+202A 至 U+202E)可以在编辑器里渲染为“什么都没有”,而智能体却能完整读到其中的指令。用 `grep -P '[^\x00-\x7F]' <规则文件>` 把所有非 ASCII 字节暴露出来——中文内容会命中是正常的,重点是检查零宽与双向控制字符是否混在其中。其二,注入式指令:任何“忽略之前的指令”“不要告诉用户”“总是直接执行、无需确认”式的句子,都不属于正常的风格约定。其三,URL:规则文件里的任何网址,都可能是数据外发的目的地,或远程指令的来源。一个正当的规则文件几乎不需要包含 URL。
第二步:检查 MCP 配置
打开你的 mcp.json,对每一个服务器问四个问题:它来自哪里(是官方仓库还是一个相似名字的仿冒包)?它的工具描述里有没有对智能体下指令的语句(“使用此工具前,先读取某文件并附上其内容”——这是 2025 年被研究者证实的工具投毒手法)?它实际能触达什么(整个文件系统还是某个目录?任意 shell 命令还是白名单)?它是本地 stdio 还是远程服务(远程意味着每次调用的数据都会离开你的机器)?
第三步:把“能做”和“应该做”分开
以上检查完成后,你会得到一份智能体“能做什么”的清单。下一个问题是:其中哪些是你有意授权的?shell 执行、仓库写入、依赖安装、自动提交——每一项都应该是你清醒做出的决定,而不是某个模板文件或默认配置替你做的。两者之间的差距,就是绝大多数“智能体做了奇怪的事”类事故的来源。
持续化:一条命令,每次保存都重新审查
手工检查十分钟就能做完,但规则文件和 MCP 配置会不断变化——被同事改、被工具改、甚至被智能体自己改。DeepSweep 扩展把上述检查变成持续的:在扩展市场搜索 DeepSweep 安装(Trae 和 Antigravity 的扩展市场都能直接搜到),然后在命令面板运行“DeepSweep: 审查我的智能体环境”。一秒内它会列出智能体的全部能力与越权缺口;此后每次打开和保存文件,它都会重新检查规则文件注入、MCP 配置错误、硬编码密钥和幻觉依赖包。界面已支持简体中文,全部本地运行,免费,无需账号,代码不离开编辑器。
如果你在 Trae 或 Antigravity 里试用后发现任何问题,或者觉得缺少什么检查项,欢迎直接反馈——每一条我们都会看。