随着 Claude Code、Cursor 和 Codex CLI 等 AI 编程代理日益融入开发工作流,它们获得了读取本地文件、执行终端命令以及与网络资源交互的能力。这种自主性引入了重大的安全风险:代理可能会无意中读取敏感凭据(如 AWS 密钥或 Stripe 密钥),然后将该密钥包含在传出的网络调用或命令执行中。Stroq 通过提供一个本地安全层来解决这一问题,该层负责监控这些代理的操作及其操作原因。
Stroq 提供对代理活动的回溯审计,允许开发者查看过去 30 天内会话中发生的情况。通过使用 `stroq sent` 等命令,该工具将本地会话记录与存储在机器上的凭据进行对比。它能识别密钥仅仅是被 AI 模型看到、是与其自身的服务配合使用,还是——最关键的一点——被发送到了另一家公司。例如,如果代理执行了一个包含密钥的 `curl` 命令,Stroq 能够识别出具体的命令以及代理最初从哪个文件中读取该信息的源文件。此分析在本地执行;该工具不需要账户且不发送任何遥测数据,确保审计过程本身不会产生新的安全风险面。

这张图片展示了 Stroq 的回溯审计功能,说明了它是如何总结代理活动并识别特定担忧时刻的。
为了防止未来的事故,Stroq 通过本地钩子实施实时保护,这些钩子在工具调用执行前进行拦截。这些钩子可以自动拒绝高风险操作,例如 `curl | sh` 模式,或携带已知密钥的传出调用。除了简单的拦截,Stroq 还可以标记代理重复之前读取过的文本的操作,并在明确指出指示该命令的源文本的同时提示用户进行确认。用户可以通过托管在 `127.0.0.1` 的本地控制台管理这些策略,该控制台提供了一个用于审查实时决策、特定代理设置以及管理各种 Model Context Protocol (MCP) 服务器规则的仪表板。

此视觉效果展示了用户可以审查实时决策和管理代理行为特定规则的本地控制台。
虽然 Stroq 提供了一个强大的监督层,但它被设计为一个过滤器而非完整的沙箱。其有效性受限于所使用的代理的具体集成限制;钩子只能看到宿主代理选择发送给它的内容。此外,由于 Stroq 的追踪机制依赖于匹配文本级内容,它可能无法追踪模型完全从零开始生成且没有任何直接引用到其读取的源文本的命令。因此,虽然它显著增加了可见性,但它并不能消除所有与自主代理执行相关的风险。

此截图提供了该工具能够将命令追溯到指示该命令的特定文本的具体示例。
Stroq 是开源的,完全在本地机器上运行,使用 `~/.stroq` 下的一个小型缓存来存储其记录。它需要 Node.js 22 或更高版本,并采用 Apache-2.0 许可证。通过将回溯式“取证”与主动式“护栏”相结合,它允许开发者在用于自动化编程任务的代理中保持更高水平的信任。