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