lmst2/dsh-asc
项目介绍Project Overview
dsh-asc 是 DeepSeek Harness 的上下文压缩插件,让模型自行决定压缩时机与内容,并把每次压缩作为可回放、可搜索、可撤销的会话日志替换事件提交。它提供状态查看、分层压缩、解压、摘要复读和全文搜索工具,适合长会话上下文管理。注意需 Node 22.19+ 或 24+,安装后重启服务,并需禁用默认 basic 压缩后端。
dsh-asc is a context-compaction plugin for DeepSeek Harness. It lets the model decide when and what to compact, recording each compaction as a durable, replayable, searchable, reversible session-log replacement event. It provides tools for context status, tiered compression, decompression, recap, and full-log search. Use it for long-session context management. It requires Node.js 22.19+ or 24+, a service restart after installation, and disabling the default basic compaction backend.
请帮我了解并安装插件:【dsh-asc】【https://github.com/lmst2/dsh-asc】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add dsh-asc
把 lmst2/dsh-asc 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-asc
dsh-asc (full name DeepSeek Harness Agentic Surface Compaction) is a
context-compaction plugin for
DeepSeek Harness: the
model itself decides when and what to compact, and every compaction decision
is committed as a durable session-log replacement event
(surfaceOp: replace) — replayable, searchable, and reversible.
Inspired by the model-driven compaction philosophy of opencode-acp, but built on DSH's event-sourced log: compaction creates no side-state files, decompression is log replay, and search covers the full log including compacted originals.
Install
Prerequisites: a working DeepSeek Harness
installation (dsh CLI available); Node.js ^22.19 or >=24.
From npm (recommended):
dsh plugin --profile <name> add dsh-asc
From GitHub — to use a commit newer than the npm release:
dsh plugin --profile <name> add github:lmst2/dsh-asc
dsh plugin adds the plugin to the profile and enables it automatically
based on the dsh.bundle declaration in the package; the tools and the
system prompt load together with that profile.
Restart required: after installing, restart the running DeepSeek Harness service.
Other install options
From source — to modify the plugin itself, or to contribute:
git clone https://github.com/lmst2/dsh-asc.git
cd dsh-asc
pnpm install
pnpm build
dsh plugin --profile <name> add "link:$(pwd)"
Disabling the basic backend
ctx.compaction allows only one provider at a time. Disable the default
basic backend in your profile's own cordis.patch.yml:
- id: compaction-basic
disabled: true
Optionally mount the invariant companion and the full-text-search backend:
- insert:
- id: dsh-asc-invariant # runtime invariant checks (optional, recommended)
name: "dsh-asc/invariant"
- id: session-query-sqlite # context_search full-text backend (optional)
name: "@deepseek-ai/dsh-session-query-sqlite"
Usage
After installing and restarting, no configuration is required — the plugin:
- injects the context-management discipline into the system prompt (judgment rules, tool usage, tiered compaction cadence), so the model actively manages context from the very first turn;
- injects nudge prompts on demand when context usage runs high (cadence-gated; iteration nudges additionally require real token growth — no per-turn nagging);
- provides deterministic degradation (LLM summarization, plus tool-result pruning when the optional upstream pruner is mounted) on overflow or manual compaction, without requiring model cooperation.
The plugin provides five model tools:
| Tool | Purpose |
|---|---|
context_status |
context usage, tiered checkpoints, system/dialogue composition, recommended ranges, recent surface nodes |
context_compress |
replace a surface range with a checkpoint you write (batching supported; tool-call pairs auto-extended; quality gate) |
context_decompress |
undo a compaction: the original text returns to the surface at the checkpoint's own position (tier-aware; full: true reaches raw content) |
context_recap |
re-read checkpoint summaries without decompressing the originals |
context_search |
full-text search over the whole log (including compacted content) |
Compacted content is never lost: the originals stay in the session log and can be decompressed or searched at any time.
The system prompt ties the tools into one operating loop: capture consumed
raw work into tier-1 checkpoints, distill settled tier-1 piles into tier-2
decisions and tier-2 piles into a tier-3 fact index. Every checkpoint text
carries its topic and Compaction id, so when a visible summary already
points at the needed detail the model decompresses that block directly;
context_search is used only when no visible summary says where a detail
lives, and decompression always proceeds one tier at a time.
How it works
- Event sourcing: a compaction is a transaction in the log
(
compaction/start→compaction/summary→ replaceduser/message→compaction/end); no side state. - Tiered compaction: checkpoints have tiers (T1 full detail → T2 distilled decisions → T3 bare facts); summaries get thinner as they are reused.
- Reversible: decompression replays the events shadowed in the log and commits one in-place replacement event; no side state is needed.
- Auditable: who compacted what, the full summary text, and the token cost are all in the log.
Repository layout
src/
index.ts plugin entry: registers ctx.compaction + the five tools
config.ts strict config validation
types.ts shared config and result types
events.ts session-event vocabulary documentation (no custom members)
invariant.ts runtime invariant companion (subpath export)
engine/ the compaction engine core (engine, region, tier,
quality gate, fallback, prompt, restore)
policy/ protected-node policy and the nudge state machine
tools/ the five model tools
utils/ shared text helpers
tests/ vitest suites
docs/ usage, design, analysis, e2e-validation
Documentation
| Doc | Contents |
|---|---|
| docs/usage.md | install, configuration, model experience, operations |
| docs/design.md | implemented contract: events, tools, automatic behavior, protection, invariants |
| docs/analysis.md | comparison of DSH and opencode-acp context management |
License
MIT. Algorithmic inspiration from DeepSeek Harness (MIT); only the ideas of opencode-acp (AGPL) are used, no source code. See NOTICE.
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS