各 CLI Agent 的数据采集、安全监控和隐私控制对比。高频变化的验证日期和证据状态请结合 ../data/CHANGELOG.md 与 ../evidence-index.md 一起查看。
本表保留能力边界与采集类型。若默认状态或证据完备度发生变化,请同步更新 docs/evidence-index.md 与 docs/data/CHANGELOG.md。
| Agent | 遥测提供商 | 默认状态 | 采集 Machine ID | 采集硬件信息 | 采集 MAC 地址 |
|---|
| Claude Code | Anthropic Metrics + Datadog + Segment | 开启 | 是 | 是 | 否 |
| Copilot CLI | GitHub/Microsoft 内部 | 开启 | 未确认 | 是 | 未确认 |
| Codex CLI | OpenAI 内部 | 开启 | 未确认 | 未确认 | 未确认 |
| Aider | PostHog | 默认关闭(opt-in,10% 采样) | 是 | 是 | 否 |
| Gemini CLI | OpenTelemetry + Google Clearcut | 开启 | 是 | 是 | 否 |
| Kimi CLI | 无 | — | 否 | 否 | 否 |
| OpenCode | 无 | — | 否 | 否 | 否 |
| Goose | PostHog | 默认关闭(opt-in) | 是 | 是 | 否 |
| Qwen Code | OTEL(重品牌)+ 阿里云 RUM | RUM 开启 / OTEL 默认关 ⓘ | 是 | 否(仅 OS 类型/版本,无 CPU/GPU/RAM) | 否 |
| Qoder CLI | Qoder 自有 | 开启 | 是 | 未确认 | 否 |
| Hermes Agent | 无内建遥测 | — | 否 | 否 | 否 |
ⓘ Qwen Code 是两条独立管道:OTel 主链(traces/metrics/logs,发 OTLP/文件)telemetry.enabled 默认 false——不配就不产生 OTel 数据;阿里云 RUM 使用统计是另一条,getUsageStatisticsEnabled() 默认开。"默认开启"指后者。详 遥测架构 Deep-Dive §3.7。
遥测端点
| Agent | 端点 | 说明 |
|---|
| Claude Code | api.anthropic.com/api/claude_code/metrics | 主遥测 |
| http-intake.logs.us5.datadoghq.com | Datadog 日志 |
| api.segment.io | Segment 分析 |
| Aider | us.i.posthog.com | PostHog |
| Gemini CLI | play.googleapis.com/log | Google Clearcut |
| 可配置 OTLP 端点 | OpenTelemetry |
| Goose | us.i.posthog.com/capture/ | PostHog |
| 可配置 OTLP + Langfuse 端点 | OpenTelemetry + LLM 可观测 |
| Qwen Code | gb4w8c3ygj-default-sea.rum.aliyuncs.com | 阿里云 RUM(App ID: gb4w8c3ygj@851d5d500f08f92) |
| 可配置 OTLP 端点(继承 Gemini) | OpenTelemetry(Clearcut 已移除) |
| Kimi CLI | 无 | — |
| OpenCode | 无 | — |
| Hermes Agent | 无 | — |
采集数据详情
- accountUuid, organizationUuid, subscriptionType, rateLimitTier
- Machine ID (IOPlatformUUID / /etc/machine-id / Windows Registry MachineGuid)
- platform, os_release, architecture
- firstTokenTime, model name
- GitHub Actions: GITHUB_ACTOR, GITHUB_REPOSITORY(含数字 ID)
- Installation ID (持久化 UUID)
- 用户 email(Google 账户缓存)+ 历史账户列表
- CPU 型号 + 核心数, GPU 型号, RAM 总量 GB(via
systeminformation 库)
- OS, Node.js 版本, Docker 检测, IDE 检测
- GitHub Actions: workflow 名, 仓库名(hashed)
- 随机 UUID(非关联到账户)
- 默认关闭;用户 opt-in 后按 10% 采样发送遥测
- python_version, os_platform, os_release, machine, aider_version
- model 名(未知模型自动 redact 为
provider/REDACTED)
- installation_id (随机 UUID)
- os, arch, version, platform_version
- provider, model, extensions 列表
- session_number, total_sessions, total_tokens
- 错误信息自动清洗(路径、密钥、邮箱 redact)
- Installation ID(
~/.qwen/installation-id 持久化 UUID,作为 RUM user.id)
- OS 平台 + 版本(
os.platform() / os.release())——不采集 CPU/GPU/RAM/MAC
- 使用统计经阿里云 RUM(
getUsageStatisticsEnabled() 默认开)
- OTel 主链(traces/metrics/logs)默认关,需显式
telemetry.enabled(另一条独立管道)
隐私控制
| Agent | 禁用方式 | 默认 |
|---|
| Claude Code | DISABLE_TELEMETRY=true 或 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=true | 开启 |
| Copilot CLI | 无明确公开方式 | 开启 |
| Codex CLI | 无明确公开方式 | 开启 |
| Aider | --analytics false 或 permanently_disable 或不 opt-in | 关闭 |
| Gemini CLI | GEMINI_TELEMETRY_ENABLED=false + 免费用户 opt-in/out UI | 开启 |
| Kimi CLI | 无需禁用(无遥测) | — |
| OpenCode | 无需禁用(无遥测) | — |
| Goose | GOOSE_TELEMETRY_OFF=1 或 GOOSE_TELEMETRY_ENABLED=false | 关闭 |
| Hermes Agent | 无需禁用(无内建遥测) | — |
安全监控系统
| Agent | 安全分类器 | 沙箱 | 命令阻止 | 提示注入检测 |
|---|
| Claude Code | 是(双阶段 LLM 分类器,28 条 BLOCK 规则) | macOS Seatbelt + Linux 容器 | 是(Security Monitor) | 是(通过安全分类器) |
| Copilot CLI | 否 | 无原生沙箱 | 否 | 否 |
| Codex CLI | 是(Guardian Approval,实验性) | macOS Seatbelt + Linux Bubblewrap/Landlock + Windows Restricted Tokens | 是(审批系统) | 否 |
| Aider | 否 | 否 | 否 | 否 |
| Gemini CLI | 是(Conseca LLM 策略生成器 + AllowedPathChecker) | macOS Seatbelt + Linux Bubblewrap + Windows C# | 是(TOML 策略引擎) | 是(Conseca) |
| Kimi CLI | 否 | 否 | 是(审批系统) | 否 |
| OpenCode | 否 | 否 | 是(基础权限) | 否 |
| Goose | 是(AdversaryInspector + RepetitionInspector + 模式扫描) | 否 | 是(SmartApprove) | 是(模式 + ML 分类器) |
| Qwen Code | 是(两阶段 LLM 分类器,AUTO 模式,fail-closed,permissions/classifier.ts) | macOS Seatbelt(6 profile)+ Docker/Podman 容器 | 是(权限/分类器审批) | 否 |
| Hermes Agent | 是(tools/tirith_security.py + tools/skills_guard.py + tools/osv_check.py) | 6 种(Local/Docker/SSH/Daytona/Singularity/Modal) | 是(tools/approval.py) | 部分(url_safety + website_policy) |
环境变量清洗
| Agent | 清洗机制 | 阻止模式 |
|---|
| Claude Code | 未公开(闭源) | 未公开 |
| Gemini CLI | 全面(environmentSanitization.ts) | TOKEN, SECRET, PASSWORD, KEY, AUTH, CREDENTIAL, 私钥模式, GitHub tokens, AWS keys, JWTs |
| Codex CLI | 动态链接劫持变量前缀过滤(process-hardening) | LD_* / DYLD_* 前缀(LD_PRELOAD、LD_LIBRARY_PATH、DYLD_INSERT_LIBRARIES 等;前缀匹配,非固定 31 项,PATH 不在内) |
| Goose | 危险/敏感环境变量黑名单 | 见 goose/EVIDENCE.md |
| Qwen Code | 部分(sanitizeHookName 清洗 telemetry hook 名的路径/参数) | env var 本身不 redact |
| Aider | 无 | — |
| Kimi CLI | 无 | — |
| OpenCode | 无 | — |
证据来源
证据状态、最后验证日期、补强优先级请统一查看 ../evidence-index.md。本节只保留分析方式入口。
| Agent | 分析方式 | 证据文件 |
|---|
| Claude Code | Bun 字节码反编译 | claude-code/EVIDENCE.md |
| Copilot CLI | Node.js SEA 反编译 | copilot-cli/EVIDENCE.md |
| Codex CLI | Rust 二进制 strings + --help | codex-cli/EVIDENCE.md |
| Aider | 源码 aider/analytics.py | aider/EVIDENCE.md |
| Gemini CLI | 源码 packages/core/src/telemetry/ + safety/ | gemini-cli/EVIDENCE.md |
| Kimi CLI | 源码 src/kimi_cli/ 全量搜索 | kimi-cli/EVIDENCE.md |
| OpenCode | 源码 packages/opencode/src/ + packages/core/src/ 全量搜索 | opencode/EVIDENCE.md |
| Goose | 源码 crates/goose/src/ + crates/goose-cli/src/ | goose/EVIDENCE.md |
| Hermes Agent | 源码 /root/git/hermes-agent(822 .py / 369K 行全量分析) | hermes-agent/EVIDENCE.md |