用持久笔记本替代摘要压缩,保留原文可回读
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add sqzw-x/dsh-notes-context该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/18) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 取源不可用(Error: github tarball HTTP 404 @ https:
- · api.github.com
- · repos
- · sqzw-x
- · dsh-notes-context
- · tarball)
扫描于 2026/11/1(0 天前)
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cosmokit@deepseek-ai/dsh-agent@deepseek-ai/dsh-compaction@deepseek-ai/dsh-compaction-basic@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-token-meter@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
给 DeepSeek Harness 带来 omp 的笔记式上下文压缩:用模型维护的持久笔记本取代 LLM 摘要式压缩,窗口边界零模型调用。
README
由 DeepSeek 最新模型翻译生成dsh-notes-context
给 DeepSeek Harness 带来 omp(Oh My Pi)的笔记式上下文压缩:用模型维护的持久笔记本取代 LLM 摘要式压缩,窗口边界零模型调用。
DSH 内置压缩机制
上下文接近窗口上限时,调用模型总结旧历史,并用总结替换原文。三个问题:
- 慢:总结需等待模型返回。
- 不可靠:总结质量取决于模型当次发挥。
- 原文丢失:被替换的历史默认不再对模型可见。
本插件采用笔记本机制:不总结,改记笔记。
| | 内置压缩 | 本插件 |
| 边界处调用模型 | 是 | 否(写入静态模板) |
| 边界可预测 | 否 | 是(本地、确定性) |
| 原文可回读 | 否 | 是,按 seq |
| 什么信息重要 | 摘要模型决定 | 干活的模型自己决定 |
机制
笔记本 context_notes
模型在会话中维护一本笔记,记录任务状态、已定决策、改动过的文件、阻塞项、下一步。笔记跨窗口保留。
context_notes → 读取
context_notes { text: "..." } → 整本替换(非追加)
context_notes { text: "" } → 清空
上限 16 KiB(UTF-8 字节)。超出直接拒绝,不部分写入。
展开完整文档(README 剩余 1 节)
dsh-notes-context
给 DeepSeek Harness 带来 omp(Oh My Pi)的笔记式上下文压缩:用模型维护的持久笔记本取代 LLM 摘要式压缩,窗口边界零模型调用。
DSH 内置压缩机制
上下文接近窗口上限时,调用模型总结旧历史,并用总结替换原文。三个问题:
- 慢:总结需等待模型返回。
- 不可靠:总结质量取决于模型当次发挥。
- 原文丢失:被替换的历史默认不再对模型可见。
本插件采用笔记本机制:不总结,改记笔记。
| | 内置压缩 | 本插件 |
| 边界处调用模型 | 是 | 否(写入静态模板) |
| 边界可预测 | 否 | 是(本地、确定性) |
| 原文可回读 | 否 | 是,按 seq |
| 什么信息重要 | 摘要模型决定 | 干活的模型自己决定 |
机制
笔记本 context_notes
模型在会话中维护一本笔记,记录任务状态、已定决策、改动过的文件、阻塞项、下一步。笔记跨窗口保留。
context_notes → 读取
context_notes { text: "..." } → 整本替换(非追加)
context_notes { text: "" } → 清空
上限 16 KiB(UTF-8 字节)。超出直接拒绝,不部分写入。
提醒(每窗口一次)
已使用的上下文接近压缩阈值时(距阈值不足 32,000 token),向模型注入一条提醒,要求更新笔记本。
提醒可忽略:模型不响应时压缩照常发生。它的作用是减少细节丢失。
窗口滚动(零模型调用)
到达压缩阈值时,复用 DSH 内置压缩的保留策略,仅替换总结步骤:写入固定过渡文本 + 当前笔记全文,不调用模型。
原文回读 context_history
滚动仅将被替换的历史移出模型可见范围,不删除(日志 append-only)。模型可按 seq 回读原文:
context_history → 索引
context_history { from: 120, to: 200 } → 指定区间
context_history { from: 0, to: 50, raw: true } → 原文
配置
常用配置项如下。完整字段见设置页,推导过程见 内部机制。
| 字段 | 默认 | 说明 |
| thresholdTokens | -1 | 压缩阈值。绝对值优先:450000 即 450K,不随模型改变。-1 改用比例 thresholdRatio |
| keepRecentTokens | 20000 | 滚动后保留的原文上限,绝对值。实际保留量更大(裁剪以整条消息为单位) |
| reserveTokens | 留空 | 压缩阈值下方保留的余量。留空取窗口的 15%,不低于 16384。目标离窗口上限不足该值时,实际触发点会提前,最多提前该值 |
触发点取两道上限里低的那道:min(目标, 窗口 − 输出预留 − 余量)。声明了 maxTokens 的供应商(pi-ai 系列)会占掉窗口的四成左右,目标设高时会被这道上限截住。这是窗口的物理限制,不是配置错误;想让目标精确命中,就把 reserveTokens 设小。
| reminderEnabled | true | 是否注入提醒 |
提醒位置无配置项,由压缩阈值推导:
lead = min(32000, max(8192, floor(压缩阈值 × 0.125)))
压缩阈值 450,000 时提醒落在 418,000。调整提醒位置需调整压缩阈值。
生效时机:改完立即生效。rolloverText、notebookSummaryMaxChars 与两个 static 标记例外——仅在写入边界时读取,故下次滚动才生效。
- id: notes-context
config:
thresholdTokens: 450000
keepRecentTokens: 20000
安装
从 npm 安装(发布后;预构建,无需本地构建)
dsh plugin --profile <profile> add dsh-notes-context
dsh --profile <profile> --dump-config # 确认两层都生效
从 GitHub 源码安装也可以,但 pnpm 会要求允许本包运行构建脚本(prepack 生成 lib/);把 pnpm 提示的 allowBuilds 条目写进 profile 的 pnpm-workspace.yaml 后重试:
dsh plugin --profile <profile> add github:sqzw-x/dsh-notes-context
组合包含两行 patch:停用 compaction-basic,挂载本包。
限制
- 笔记本质量由模型决定。 插件不自动补写、不代为总结。模型未记录的信息需从原文回读。
- 每次写入都是一条留在上下文里的消息。 频繁重写会增大上下文。
- 边界零开销 ≠ 全程零开销。 写笔记本本身是一次工具调用,成本前移而非消除。
- DSH 自身的压缩配置不可见、不可改,只能改配置文件并重启 dsh(原因见 内部机制)。
- 受限工具集的会话(如子代理)若无法调用 context_notes,退化为无笔记本的滚动。
开发
npm ci
npm run typecheck
npm run build
npm test
发布
发布走 npm Trusted Publishing(OIDC),CI 不需要长期 NPM_TOKEN。
1. 首次发布:npm 上还没有 dsh-notes-context,先在本地 npm login,再执行 npm publish --access public(或在 CI 里临时用一次性 token 发布),创建包并确定归属。
2. 在 npmjs.com 打开该包 → Settings → Trusted publishing,添加 GitHub Actions:
- Organization or user: sqzw-x
- Repository: dsh-notes-context
- Workflow filename: publish.yml
- Allowed actions: 勾选 npm publish(npm stage publish 默认允许)
3. 之后打 v 标签,.github/workflows/publish.yml 就会经 OIDC 发布;标签版本须与 package.json 一致。新配置要在 2 天内完成一次成功发布,否则过期;若 0.2.0 已手动发过,先 npm version patch 到 0.2.1 再打标签。
4. 验证通过后删掉 NPM_TOKEN,并在包的 Publishing access 里选 “Require two-factor authentication and disallow tokens”。
首版已手动发布过时:升到下一个版本并用 CI 验证 trusted publisher
npm version patch && git push --follow-tags
之后的版本
git tag "v$(node -pe 'require("./package.json").version')" && git push origin --tags
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
sqzw-x/dsh-notes-context
用持久笔记本替代摘要压缩,保留原文可回读
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 3,801已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,636已汉化DSH
72.2
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,082已汉化DSH
71.7
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,292已汉化DSH
71.3
智能体运行框架路由HarnessRouter/harnessrouter
智能体运行框架的统一接口。
★ 3,800已汉化DSH
71.2