File size: 1,594 Bytes
e3f52bc 186d0f9 e3f52bc | 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 | # dsh-compaction-agentframe
AgentFrame 压缩后端插件 —— 把 DeepSeek Harness 的默认 LLM 摘要压缩替换为
**语义 + 物理双轨压缩**(28.4x KV 压缩思路)。
## 为什么替换默认压缩
默认 `compaction-basic` 用 LLM 摘要(有损总结旧对话),每次压缩都要一次
LLM 调用,且摘要可能丢细节。
AgentFrame 的思路:
- **语义轨**:MemoryDirector 判断哪些 token 值得保留(去闲聊、留关键)
- **物理轨**:吸收式 MLA + INT4 量化(270KB→7.6KB/token,28.4x)
- **效果**:保留关键信息 + 大幅省 token + 不额外调用 LLM
## 使用
在 profile 的 `cordis.patch.yml` 中把 `compaction-basic` 替换为:
```yaml
- id: compaction-agentframe
name: '@deepseek-ai/dsh-compaction-agentframe'
config:
semantic: true
retainRatio: 0.2
physical: true
```
## 配置
| 字段 | 默认 | 说明 |
|------|------|------|
| `semantic` | true | 语义压缩(保留高信息行) |
| `retainRatio` | 0.2 | 压缩后保留比例 |
| `physical` | true | 物理压缩记账(bytes/token) |
| `bytesPerToken` | 7776 | INT4 压缩后每 token 字节 |
| `auto` | true | 自动压缩 |
## 实现
继承 `CompactionEngine`(compaction seam),实现三个抽象方法:
- `compactIfNeeded` — 自动压力触发
- `compactNow` — 手动 /compact 命令
- `compactRegion` — 指定范围压缩
保持 dsh 的 surface/事件/持久化契约(compaction/start → replace → compaction/end),
只替换"如何压缩"。
## License
GPL-3.0 © Cloud LTE Studio / AgentFrame
|