east-true/agent-config-inspector
GitHub: east-true/agent-config-inspector
一个离线 CLI 工具,用于在不执行代码的情况下检查、比较和验证 Claude Code、Codex CLI 和 Gemini CLI 的仓库指令配置漂移。
Stars: 0 | Forks: 0
# Agent Config 检查器
Agent Config Inspector 是一个离线 CLI,用于预测 Claude Code、Codex CLI 和 Gemini CLI 在目标路径下会接收到哪些仓库指令,然后在不执行仓库代码的情况下解释配置漂移(configuration drift)。
## 为什么需要这个工具
编程 Agent 使用不同的文件名、层级规则、导入机制和路径作用域。因此,一个仓库可能看起来配置得很一致,但其 Agent 实际接收到的指导却各不相同。Agent Config Inspector 通过提供来源信息和保守的发现结果,让这种差异变得可见。
当前的来源注册表包含:
- `anthropic-claude-code/cli`(别名 `claude`)
- `google-gemini/cli`(别名 `gemini`)
- `openai-codex/cli`(别名 `codex`)
Kimi、Grok、Copilot 和其他 Agent 仍然是计划中的独立适配器。当前对它们的请求会因不支持而失败,而不是进行猜测。
## 当前功能
- 解析根目录和嵌套的 `CLAUDE.md`、`CLAUDE.local.md`、`.claude/CLAUDE.md`、递归的 `.claude/rules/**/*.md`、路径 glob 以及有界的 `@imports`。
- 解析根目录和嵌套的 `AGENTS.override.md`、`AGENTS.md`、Codex 回退文件名以及合并后的项目指令字节预算。
- 解析 Gemini CLI v0.50.0 的分层上下文、已配置的上下文文件名、内存边界、特定于目标的 JIT 上下文以及有界的 `@imports`。
- 在不调用 LLM 或进行网络请求的情况下比较标准化的指令单元。
- 解释包含和排除的来源、优先级、证据、token 估算和置信度。
- 默认拒绝工作区逃逸(workspace escapes)和外部导入。
- 在文本和 JSON 输出中隐藏指令内容和工作区的绝对路径。
- 仅在使用 `--include-user-context` 时读取已知的用户级指令位置,随后对路径、内容、摘要、大小和 token 估算进行脱敏处理。
- 固定(Pin)确定性的仅限仓库的 lockfile,并验证 pull-request 漂移。
- 输出兼容 GitHub 的 SARIF 2.1.0,不包含外部或用户来源的位置。
## 构建
需要 Go 1.25 或更高版本。
```
git clone git@github.com:east-true/agent-config-inspector.git
cd agent-config-inspector
go build -o bin/agent-config-inspector ./cmd/agent-config-inspector
```
当前核心功能不需要任何第三方 Go module。
## 快速开始
扫描当前仓库的所有受支持的 provider:
```
./bin/agent-config-inspector scan .
```
解释单个文件的 Codex 解析过程:
```
./bin/agent-config-inspector explain . \
--provider codex \
--target backend/src/users.go
```
以 JSON 格式比较 Claude Code 和 Codex CLI:
```
./bin/agent-config-inspector diff . \
--providers claude,codex \
--target backend/src/users.go \
--format json
```
在发现警告或错误时使 CI 失败:
```
./bin/agent-config-inspector scan . --fail-on warning
```
固定(Pin)当前由仓库拥有的指令状态,并在稍后进行验证:
```
./bin/agent-config-inspector pin .
./bin/agent-config-inspector verify .
```
默认的 lockfile 是 `agent-config-inspector.lock.json`。它仅包含相对于仓库的路径和摘要。请参阅 [快照格式](docs/snapshot-format.md)。
在本地生成 SARIF:
```
./bin/agent-config-inspector verify . --format sarif > agent-config-inspector.sarif
```
在检出(check out)仓库后使用复合 GitHub Action:
```
permissions:
contents: read
security-events: write
steps:
- uses: actions/checkout@v7.0.1
- uses: east-true/agent-config-inspector@v0.3.0
with:
command: verify
snapshot: agent-config-inspector.lock.json
fail-on: warning
version: v0.3.0
upload-sarif: "true"
```
该 Action 会下载选定的 GitHub Release,从 `checksums.txt` 验证其 SHA-256 条目,然后运行它。当工作流需要固定版本的二进制文件时,请将 `version` 输入设置为确切的发布标签。
查看确切的 provider 注册表:
```
./bin/agent-config-inspector providers list
./bin/agent-config-inspector providers show gemini
```
## 退出代码
| 代码 | 含义 |
|---:|---|
| 0 | 完成运行,且未达到配置的发现阈值 |
| 1 | 发现结果达到了 `--fail-on` 设定的条件 |
| 2 | 无效的 CLI 用法或配置 |
| 3 | 内部错误或不完整的结果 |
| 4 | 不支持的 provider、表面(surface)、版本或预览命令 |
| 5 | 安全策略拒绝了请求 |
默认情况下,警告不会导致失败。使用 `--fail-on warning` 可采用更严格的 CI 策略,或使用 `--fail-on never` 进行仅作参考的信息展示运行。
## 隐私模型
默认扫描是本地的、离线的、只读的、限定于仓库范围的,并且不会执行 provider CLI、hooks、构建脚本、MCP 服务器或仓库命令。输出包含仓库拥有来源的元数据和内容摘要,绝不包含指令文本。
除非提供 `--include-user-context`,否则用户级指令将被排除。在该模式下,只会清点已记录的用户指令位置,并且输出标识符仍将保持不透明状态。在发布使用本地上下文生成的报告之前,请参阅[隐私](docs/privacy.md)和[安全策略](SECURITY.md)。
`pin` 和 `verify` 特意拒绝使用 `--include-user-context`。一个准备好提交的 lockfile 不能代表用户来源的存在、路径、内容、指纹或 token 数量。
## 准确性边界
适配器基于当前的官方发现文档,并特意报告了其检查日期。运行时标志、信任决策、托管策略、版本漂移和 Agent 行为可能会改变实际结果。请参阅[支持矩阵](docs/support-matrix.md)和[局限性](docs/limitations.md)。
主要语义参考:
- [Claude Code 内存和指令发现](https://code.claude.com/docs/en/memory)
- [Codex `AGENTS.md` 指南](https://developers.openai.com/codex/guides/agents-md)
- [Gemini CLI 适配器契约](docs/gemini-cli.md)
- [Gemini CLI 上下文文件](https://geminicli.com/docs/cli/gemini-md/)
- [Gemini CLI 内存导入处理器](https://geminicli.com/docs/reference/memport/)
## 开发
```
go test ./...
go vet ./...
go build ./cmd/agent-config-inspector
git diff --check
```
详细的架构和路线图请参阅 [docs/initial-design.md](docs/initial-design.md)。欢迎贡献代码;请先阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 许可证
Apache License 2.0。请参阅 [LICENSE](LICENSE)。
标签:AI代码助手, EVTX分析, Go, Ruby工具, SOC Prime, 云安全监控, 开发工具, 日志审计, 静态分析