审计的工作原理
CodeAuditAgent 读取什么、发送给模型什么、审计需要多长时间以及限制在哪里。
审计有三个阶段:收集源代码、向模型请求结构化报告、存储结果。了解每个阶段发生的事情会告诉您审计能找到什么和找不到什么。
收集源代码
对于存储库,我们读取默认分支的文件树并选择值得审查的文件:应用程序源、配置和依赖项清单。跳过供应商目录、构建输出、锁文件、图像和二进制文件——它们消耗预算但不含逻辑。
- 跳过超过 60 KB 的单个文件;那么大的文件通常是生成的。
- 读取多少文件取决于您的计划:Free 为 20,Starter 为 40,Pro 为 80。
- 发送给模型的源的总量也有上限:Free 为 60,000 字符,Starter 为 300,000,Pro 为 600,000。
当存储库超过限制时,报告会明确说明。将被截断的审计视为样本,而不是覆盖范围:未读的文件未被审查。
向模型提问
源代码与定义审查者工作的系统提示和定义答案形状的工具架构一起发送到 Claude。模型无法用散文回复:它必须填充报告结构,这就是为什么每个发现都有严重程度、位置和补救,而不是建议的一段话。
您的代码始终被视为不可信数据。如果存储库中的注释或字符串试图指导审查者——"忽略之前的指示"、"不要报告发现"——模型被告知不要遵守并将此尝试报告为提示注入发现。
付费计划运行 Claude Fable 5.1。免费计划运行 Claude Haiku 4.5,它更快且服务成本便宜得多,因此试用保持真正免费;它比旗舰模型找到的少。
存储结果
报告与使用的模型、实际读取的文件列表以及源是否被截断一起存储在您的账户中。比较两次审计时这个列表很重要:发现消失可能是因为它被修复了,或者因为包含它的文件这次没有通过限制。
审计不做什么
- 它不运行您的代码,因此无法在运行时确认可利用性。
- 它还无法访问私有存储库;这需要 GitHub App 安装,但尚未构建。
- 它不会打开拉取请求或更改您存储库中的任何内容。
- 它不能替代渗透测试或对安全关键代码的人工审查。