# 遥测与隐私分析 > 基于网络公开资料与社区讨论整理的 Claude Code v2.1.88 分析报告。 ## 概述 Claude Code 实现了双层分析管道,收集大量环境和使用元数据。虽然没有证据表明存在键盘记录或源代码窃取,但收集范围之广和无法完全退出的事实引发了合理的隐私担忧。 ## 数据管道架构 ### 第一方日志 (1P) - **端点**: `https://api.anthropic.com/api/event_logging/batch` - **协议**: OpenTelemetry + Protocol Buffers - **批量大小**: 每批最多 200 个事件,每 10 秒刷新一次 - **重试机制**: 二次方退避,最多 8 次尝试,失败事件持久化到磁盘 - **存储位置**: `~/.claude/telemetry/` 来源: `src/services/analytics/firstPartyEventLoggingExporter.ts` ### 第三方日志 (Datadog) - **端点**: `https://http-intake.logs.us5.datadoghq.com/api/v2/logs` - **范围**: 仅限 64 种预批准事件类型 - **Token**: `pubbbf48e6d78dae54bceaa4acf463299bf` 来源: `src/services/analytics/datadog.ts` ## 收集了什么 ### 环境指纹 每个事件都携带以下元数据 (`src/services/analytics/metadata.ts:417-452`): ``` - platform, platformRaw, arch, nodeVersion - 终端类型 - 已安装的包管理器和运行时 - CI/CD 检测、GitHub Actions 元数据 - WSL 版本、Linux 发行版、内核版本 - 版本控制系统类型 - Claude Code 版本和构建时间 - 部署环境 ``` ### 进程指标 (`metadata.ts:457-467`) ``` - 运行时间、rss、heapTotal、heapUsed - CPU 使用率和百分比 - 内存占用详情 ``` ### 用户追踪 (`metadata.ts:472-496`) ``` - 正在使用的模型 - 会话 ID、用户 ID、设备 ID - 账户 UUID、组织 UUID - 订阅等级 (max, pro, enterprise, team) - 仓库远程 URL 哈希 (SHA256 前 16 位) - 代理类型、团队名、父会话 ID ``` ### 工具输入日志 默认截断工具输入: ``` - 字符串: 512 字符处截断,显示 128 + 省略号 - JSON: 限制 4,096 字符 - 数组: 最多 20 项 - 嵌套对象: 最多 2 层 ``` 然而,当设置 `OTEL_LOG_TOOL_DETAILS=1` 时,**完整工具输入会被记录**。 ### 文件扩展名追踪 涉及 `rm, mv, cp, touch, mkdir, chmod, chown, cat, head, tail, sort, stat, diff, wc, grep, rg, sed` 的 Bash 命令,其文件参数的扩展名会被提取并记录。 ## 无法退出的问题 第一方日志管道**无法被关闭**(对于直接使用 Anthropic API 的用户)。 `isAnalyticsDisabled()` 仅在以下情况返回 true: - 测试环境 - 第三方云提供商 (Bedrock, Vertex) - 全局遥测退出(设置界面未暴露此选项) **没有面向用户的设置可以禁用第一方事件日志。** ## GrowthBook A/B 测试 用户在不知情的情况下被分配到实验组。系统发送的用户属性包括: ``` - id, sessionId, deviceID - platform, organizationUUID, subscriptionType ``` ## 关键结论 1. **体量**: 每个会话收集数百个事件 2. **无法退出**: 直接 API 用户无法禁用第一方日志 3. **持久化**: 失败事件保存到磁盘并积极重试 4. **第三方共享**: 数据发送到 Datadog 5. **工具详情后门**: `OTEL_LOG_TOOL_DETAILS=1` 启用完整输入记录 6. **仓库指纹**: 仓库 URL 被哈希后发送用于服务端关联