File size: 7,767 Bytes
852e525 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 | # 专业版模型 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
|