AI 编码工具会读取整个工作区,包括被 gitignore 的 .env 文件和 MCP 配置。GitGuardian 报告显示 Claude Code 提交中泄露密钥的比例达 3.2%,是全量 GitHub 提交基线的两倍。
当你启动一个 AI 编程 Agent——无论是 Claude Code、Cursor、Codex、JetBrains AI,还是任何通过 MCP 接入的工具——你都在把整个工作区交给它。不是精心挑选的部分,是整个工作区。而我们大多数人都不会停下来想一想,里面究竟有什么。
这个问题值得花一分钟思考一下,所以本文带你走一遍通常在范围内有哪些东西,以及我自己写的一个小工具。
环境文件。.env、.env.local 以及同类文件是最经典的一类。它们被 gitignore 了,所以不会出现在 PR 的 diff 中——这恰恰是人们忘记它们存在的原因。Agent 读取项目根目录时照读不误。这里有一种特定的失败模式:GitGuardian 的《Secrets Sprawl 2026》报告显示,Claude Code 参与提交的代码泄漏密钥的比率为 3.2%,而所有公开 GitHub 提交的平均基线是 1.5%——大约是 2 倍。机制很平常:上下文窗口经常会把 .env 文件拉进去,然后这些值就出现在了生成的提交中。
MCP 服务端配置。如果你在使用 MCP,将服务端连接起来的配置文件描述了这些服务端能做什么——有时还会内嵌凭据或宽泛的文件系统/命令访问权限。一个配置错误的服务端就是一大笔悄悄的信任。而且这并非空穴来风:GitGuardian 发现了 24,008 个唯一密钥就躺在公开 GitHub 上的 MCP 配置文件里——这是一种大约一年前还不存在的文件类型——其中 2,117 个已被确认是有效的、活着的凭据。
CI/CD 工作流。你的 .github/workflows/*.yml 文件也是代码。一些危险模式——用 pull_request_target 检出不可信代码、将密钥传入 shell 步骤、使用未固定版本的三方 action——很容易通过复制粘贴传播,肉眼却很难发现。
package.json 脚本。postinstall、prepare 及其他生命周期脚本会自动执行。如果 Agent(或你)运行 npm install,这些脚本就会执行。
自动化 Webhook。如果你的仓库里有 n8n 或类似的工具,webhook 定义可能会暴露端点或嵌入令牌。
以上没有一样是稀罕东西。它们不过是正常仓库里的正常内容。问题在于"正常仓库"和"安全地暴露给可以读写和执行操作的自主 Agent"并不是同一回事,而我们往往把它们当成一回事。
现有的安全工具已经很多了——密钥扫描器、SAST、依赖审计——都很好用。但它们基本上都是围绕提交时和 CI 时构建的。AI Agent 时代引入了一个不同的节点:交接时刻,也就是你把一个 Agent 指向你的本地工作树然后说"开始"的那一刻。那棵树里包含未提交的文件、被 gitignore 的密钥,以及从未到达 CI 的本地配置。
这个规模值得瞥一眼。GitGuardian 的 2026 年报告统计,2025 年有 2,860 万个新硬编码密钥被添加到公开 GitHub——同比增长 34%——其中 AI 服务凭据泄漏增长尤为突出,高达 81%。现有工具能捕获大部分事后问题。但交接发生得更早,在你的本地树上。
这就是我想填补的缺口。
我写了一个 JetBrains 插件,叫 AI Agent Workspace Guard。它在你把项目交给 Agent 之前对项目运行一次静态扫描,并标记:
有几件事我需要直说:
它是静态启发式分析,不是保证。它匹配已知风险模式。会漏掉东西,扫描干净不意味着你的项目就可以安全暴露。
它 100% 运行在本地。不需要 API key、不做遥测、不打外部电话。一个关于不过度信任工具的工具本身不应该偷偷打电话回家——所以它不打。
它不是一个 AI 助手。它不写代码也不审查代码。它是那一步之前的东西。
个人版 4.90 美元,商业版 9.90 美元,一次性永久授权,30 天免费试用——足够让你在真实仓库上跑一遍,然后决定它是否值得留在你的工作流里。
https://plugins.jetbrains.com/plugin/32116-ai-agent-workspace-guard
还有一个免费的 CLI 配套工具(npx @entet/ai-agent-guard),可以在终端里运行相同的核心检查,并嵌入 CI。
你不需要我的工具才能记住这个教训:在把仓库交给 Agent 之前,花三十秒问问里面有什么。检查你的 env 文件。看一眼你的 MCP 配置。浏览一下你的工作流和安装脚本。Agent 会去看的。你不如先走一步。