# DSH 上下文裁剪：不需要大模型

> DeepSeek API 断网那天，本地模型顶上但上下文超限，云端压缩用不了。解法：不需要压缩，直接裁剪——不靠大模型，纯脚本成对剪掉最旧对话。

![上下文裁剪插件原理示意](/assets/articles/lcz/ctx-trim/hero.jpg)

> DeepSeek API 断网那天，本地模型顶上——但会话上下文超出本地模型上限，云端压缩又用不了。解法：不需要压缩，直接裁剪。

## 缘起

DSH 的上下文压缩机制依赖大模型来概括精简上下文。云端模型不可用时，压缩机制就瘫了。

关键洞察来自一句提醒："你需要的不是上下文压缩，而是上下文裁剪。不需要大模型参与，只需要剪掉超出限额的部分。"

## 插件核心逻辑

**不靠大模型**，纯脚本操作：
- 保留头部系统提示和工具集
- 从最古老的对话部分开始，成对剪掉（一条用户消息 + 一串模型回复为一对）
- 原则上保留最后一对对话，保证会话可以延续

## 后续踩出的两个坑

**坑一：头部预留（roomhead）吞掉一半上下文。** DSH v0.1.7-rc 为配合云端 API 引入了固定 64K 的头部预留，本地模型的 128K 上下文顿时只有一半能用——上下文还没填到 50% 就触发压缩。插件补了上下文计算调优功能。

**坑二：内置 prune 会剪掉最后一组会话。** 模型读进一个大文件 → 触发 prune → 刚读的代码被剪掉 → 模型再读同一个文件 → 死循环。插件又补了 prune 调优。

## 安装

```bash
dsh plugin --profile web add dsh-command-context-trim
```

## 一句话

本地模型跑 agent 时上下文超限？不需要云端模型做压缩，纯脚本裁剪就能解决——还比压缩省 token。


---
来源：https://laobanclaw.top/articles/dsh-context-trim-plugin/（AI 军火库）
