# 专业版模型 1.5/2.5 Pro 自动对齐与分流测试 (v4.1.32) ## 测试目标 验证三层渐进式上下文压缩功能的正确性、稳定性和成本优化效果。 ## 前置准备 1. **启动应用**: ```bash cd /Users/lbjlaq/Desktop/xin npm run tauri dev ``` 2. **启用调试日志**: ```bash export RUST_LOG=debug ``` 3. **准备测试账号**: - 至少 1 个 Google 账号(用于 Gemini API) - 确保账号有足够配额 ## 测试场景 ### 场景 1:Layer 1 工具消息裁剪 (60% 压力) **目标**:验证工具消息智能裁剪功能 **步骤**: 1. 使用 Claude Code CLI 或 Cherry Studio 2. 发起一个需要多次工具调用的任务(如代码搜索、文件读取) 3. 持续对话直到触发 60% 上下文压力 **预期结果**: - 日志中出现 `[Layer-1] Tool trimming triggered` - 保留最近 5 轮工具交互 - 删除更早的工具消息 - **无 400 错误** - **响应速度正常** **验证命令**: ```bash # 查看日志 tail -f ~/Library/Application\ Support/com.antigravity.tools/logs/antigravity.log | grep "Layer-1" ``` --- ### 场景 2:Layer 2 Thinking 压缩 (75% 压力) **目标**:验证 Thinking 内容压缩 + 签名保留 **步骤**: 1. 使用 Claude 4.5 Opus/Sonnet Thinking 模型 2. 发起复杂推理任务(如代码重构、算法设计) 3. 持续对话直到触发 75% 上下文压力 **预期结果**: - 日志中出现 `[Layer-2] Thinking compression triggered` - Thinking 块文本被压缩为 "..." - **`signature` 字段完整保留** - 最近 4 条消息不被压缩 - **无 400 签名错误** **验证命令**: ```bash # 查看签名保留情况 tail -f ~/Library/Application\ Support/com.antigravity.tools/logs/antigravity.log | grep -E "(Layer-2|signature)" ``` --- ### 场景 3:Layer 3 Fork 会话 + XML 摘要 (90% 压力) **目标**:验证 XML 摘要生成和会话 Fork **步骤**: 1. 使用任意模型进行超长对话 2. 持续对话直到触发 90% 上下文压力 **预期结果**: - 日志中出现 `[Layer-3] Critical context pressure` - 调用 `gemini-2.5-flash-lite` 生成 XML 摘要 - 创建新的消息序列:`[User: XML摘要] + [Assistant: 确认] + [用户最新消息]` - **压缩率 86-97%** - **无 Prompt Cache 破坏** - **签名链完整** **验证命令**: ```bash # 查看 Layer 3 触发和摘要生成 tail -f ~/Library/Application\ Support/com.antigravity.tools/logs/antigravity.log | grep -E "(Layer-3|XML summary|Fork)" ``` --- ### 场景 4:渐进式触发测试 **目标**:验证三层压缩的渐进式触发机制 **步骤**: 1. 从空对话开始 2. 持续对话,观察压缩层级的触发顺序 **预期结果**: - 触发顺序:Layer 1 (60%) → Layer 2 (75%) → Layer 3 (90%) - 每次压缩后重新估算 Token 用量 - 日志中清晰记录每层的触发和效果 **验证命令**: ```bash # 查看所有层级的触发 tail -f ~/Library/Application\ Support/com.antigravity.tools/logs/antigravity.log | grep -E "Layer-[123]" ``` --- ### 场景 5:错误处理测试 **目标**:验证 Layer 3 失败时的容错机制 **步骤**: 1. 临时禁用 Gemini 账号或网络 2. 触发 Layer 3 压缩 **预期结果**: - Layer 3 失败时返回 `BAD_REQUEST` 错误 - 错误消息友好:`Context too long and automatic compression failed` - 提示用户使用 `/compact` 或切换模型 **验证命令**: ```bash # 查看错误处理 tail -f ~/Library/Application\ Support/com.antigravity.tools/logs/antigravity.log | grep -E "(Layer-3.*failed|BAD_REQUEST)" ``` --- ## 性能验证 ### Token 成本节省 **测试方法**: 1. 记录压缩前的 Token 用量(从日志中提取) 2. 记录压缩后的 Token 用量 3. 计算节省比例 **预期结果**: - Layer 1: 60-90% 节省 - Layer 2: 70-95% 节省 - Layer 3: 86-97% 节省 ### 响应速度 **测试方法**: 1. 使用 `time` 命令测量响应时间 2. 对比压缩前后的响应速度 **预期结果**: - Layer 1/2: 响应速度无明显变化 - Layer 3: 首次摘要生成可能增加 2-5 秒,后续请求正常 --- ## 兼容性测试 ### 客户端兼容性 测试以下客户端: - ✅ Claude Code CLI - ✅ Cherry Studio - ✅ Cursor - ✅ Python OpenAI SDK - ✅ Kilo Code ### 模型兼容性 测试以下模型: - ✅ Gemini 3 Flash - ✅ Gemini 3 Pro High - ✅ Claude 4.5 Sonnet - ✅ Claude 4.5 Opus Thinking --- ## 回归测试 ### 签名链完整性 **验证点**: - Layer 2 压缩后签名不丢失 - Layer 3 Fork 后签名正确恢复 - 无 400 签名错误 ### 工具调用链 **验证点**: - 工具调用在压缩后仍能正常工作 - 工具结果正确传递 - 无工具调用中断 --- ## 日志分析 ### 关键日志模式 ```bash # Layer 1 触发 grep "Layer-1.*Tool trimming" antigravity.log # Layer 2 触发 grep "Layer-2.*Thinking compression" antigravity.log # Layer 3 触发 grep "Layer-3.*Fork successful" antigravity.log # Token 节省统计 grep "Compression result.*saved" antigravity.log ``` --- ## 测试报告模板 ```markdown ## 测试结果 ### 场景 1: Layer 1 工具消息裁剪 - [ ] 触发成功 - [ ] 保留最近 5 轮 - [ ] 无 400 错误 - [ ] 响应速度正常 ### 场景 2: Layer 2 Thinking 压缩 - [ ] 触发成功 - [ ] 签名完整保留 - [ ] 无签名错误 - [ ] 压缩率达标 ### 场景 3: Layer 3 Fork 会话 - [ ] 触发成功 - [ ] XML 摘要生成 - [ ] 压缩率 86-97% - [ ] 无 Cache 破坏 ### 场景 4: 渐进式触发 - [ ] 顺序正确 (1→2→3) - [ ] Token 重新估算 - [ ] 日志清晰 ### 场景 5: 错误处理 - [ ] 失败时友好提示 - [ ] 无崩溃 - [ ] 建议明确 ### 性能验证 - Token 节省: ____% - 响应速度: 正常/慢 (___ms) ### 兼容性 - Claude Code: ✅/❌ - Cherry Studio: ✅/❌ - Cursor: ✅/❌ - Python SDK: ✅/❌ ### 回归测试 - 签名链完整: ✅/❌ - 工具调用正常: ✅/❌ ## 问题记录 (记录测试中发现的问题) ## 结论 (总体评价和建议) ``` --- ## 快速测试脚本 ```bash #!/bin/bash # 快速测试三层压缩 echo "=== 测试 Layer 1 (工具裁剪) ===" # 使用 Claude Code 执行多次文件搜索 claude "请搜索项目中所有 .rs 文件,然后读取其中 5 个文件的内容" echo "=== 测试 Layer 2 (Thinking 压缩) ===" # 使用 Thinking 模型进行复杂推理 claude --model claude-opus-4-5-thinking "请详细分析这段代码的性能瓶颈并提出优化方案" echo "=== 测试 Layer 3 (Fork 会话) ===" # 超长对话触发 Fork for i in {1..20}; do claude "继续上一个话题,请提供更多细节 (第 $i 轮)" done echo "=== 查看日志 ===" tail -100 ~/Library/Application\ Support/com.antigravity.tools/logs/antigravity.log | grep -E "Layer-[123]" ``` --- ## 注意事项 1. **测试环境**:确保在干净的环境中测试,避免其他因素干扰 2. **日志级别**:必须设置 `RUST_LOG=debug` 才能看到详细日志 3. **账号配额**:测试前确保账号有足够配额 4. **备份数据**:测试前备份重要数据 5. **版本确认**:确认运行的是 v4.1.32 版本 --- ## 问题排查 ### 问题 1:Layer 1 未触发 - 检查对话是否达到 60% 压力 - 查看 Token 估算是否准确 ### 问题 2:Layer 2 签名丢失 - 检查 `compress_thinking_preserve_signature` 函数 - 验证签名提取逻辑 ### 问题 3:Layer 3 摘要失败 - 检查 Gemini 账号是否可用 - 验证 `call_gemini_sync` 函数 - 查看上游 API 错误 ### 问题 4:400 错误 - 检查签名链是否完整 - 验证工具调用参数 - 查看上游 API 响应 --- ## 联系方式 如有问题,请在 GitHub 提 Issue: https://github.com/lbjlaq/Antigravity-Manager/issues