超阈值时自动折叠无关历史,节省 token
27.3/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add vexpaer/ContextGate该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 82 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 超阈值自动折叠历史
- 节省token
README
由 DeepSeek 最新模型翻译生成ContextGate
上下文闸门 · 一个用于 DeepSeek Harness(DSH)/ Cordis 的上下文折叠闸门插件
ContextGate 是一个部署在 LLM 请求瀑布(waterfall)中的闸门插件:它观测每一次 LLM 请求的上下文规模,当历史消息超出阈值时,由 LLM gatekeeper(小模型)逐条判断中间历史与当前任务的相关性,只保留相关消息,把无关历史折叠为一条摘要后重发请求——把上下文长度控制在窗口内,显著节省 token。
请求 → [ContextGate 闸门] ──超阈值?── 否──→ 直通 │ 是 ↓ LLM gatekeeper 逐条判断相关性 ├─ 高置信(≥0.85)→ 自动折叠 ├─ 低置信 → UI 询问用户(折叠/不折叠) └─ 失败/超时 → 回退规则折叠(head + 摘要 + tail) ↓ 重发请求(仅一次,带逃逸标记)
特性
- 瀑布闸门:监听 llm/stream 事件,在请求进入模型路由前拦截,天然与 DSH 的 agent/compaction 流程兼容。
展开完整文档(README 剩余 1 节)
ContextGate
上下文闸门 · 一个用于 DeepSeek Harness(DSH)/ Cordis 的上下文折叠闸门插件
ContextGate 是一个部署在 LLM 请求瀑布(waterfall)中的闸门插件:它观测每一次 LLM 请求的上下文规模,当历史消息超出阈值时,由 LLM gatekeeper(小模型)逐条判断中间历史与当前任务的相关性,只保留相关消息,把无关历史折叠为一条摘要后重发请求——把上下文长度控制在窗口内,显著节省 token。
请求 → [ContextGate 闸门] ──超阈值?── 否──→ 直通 │ 是 ↓ LLM gatekeeper 逐条判断相关性 ├─ 高置信(≥0.85)→ 自动折叠 ├─ 低置信 → UI 询问用户(折叠/不折叠) └─ 失败/超时 → 回退规则折叠(head + 摘要 + tail) ↓ 重发请求(仅一次,带逃逸标记)
特性
- 瀑布闸门:监听 llm/stream 事件,在请求进入模型路由前拦截,天然与 DSH 的 agent/compaction 流程兼容。
- LLM gatekeeper(Phase 2):超阈值后调用小模型(自动选择轻量模型,可用 gatekeeper.model 指定)对候选历史逐条输出 keep / confidence 判断;drop 项最低置信度 ≥ confidence 阈值则自动折叠,否则经 UI 询问用户确认。
- 规则折叠回退(Phase 1):gatekeeper 不可用/失败/超时时,回退到 "head + 摘要 + tail" 规则折叠,保证闸门始终可用。
- fail-open:闸门内部任何异常都不会阻塞请求——直接放行原请求,绝不卡死 harness。
- 防递归:重发请求与 gatekeeper 自身调用都带逃逸标记(WeakSet),不会被再次折叠;辅助调用(如 compaction / session-title,带 purpose 的请求)直接直通。
- token 估算:优先使用 DSH 的 tokenMeter 服务精确估算,不可用时回退到字符数 / 3 的启发式估算。
- 运行观测:注册 contextgate_status 工具,模型可随时查看请求数、折叠次数、gatekeeper 统计(自动/确认/拒绝/回退)、节省的 token 等。
工作原理
1. 每次 LLM 请求(llm/stream)到达时,闸门检查它是否属于目标会话(默认仅当前会话)。
2. 估算请求消息总 token 数;未超阈值(默认 12000)则原样直通,零开销。
3. 超过阈值后,把消息拆分为 head(任务陈述)+ mid(候选历史)+ tail(最近消息)。
4. gatekeeper 判断:把最新用户请求 + 头部任务陈述 + 截断后的候选列表(每条 150 字符)发给小模型,要求输出 JSON 判定每条候选的 keep 与 confidence。
5. 决策:drop 项最低置信度 ≥ 0.85 → 自动折叠;否则弹出 UI 问题询问用户(折叠 / 不折叠);用户拒绝则原样直通。
6. 折叠:保留 head + 被判定相关的候选原文 + tail,无关候选替换为一条结构化摘要消息;系统提示追加说明"历史已被临时折叠、完整内容仍在会话日志中"。
7. 重发折叠后的请求(带逃逸标记,只折叠一层),并记录统计。
折叠摘要示例:
[ContextGate 折叠摘要] 82 条中间历史消息(约 73058 tokens)经 AI 判定与当前任务无关,已折叠。
其余 6 条相关历史已保留。完整历史仍保存在会话日志中,如需查看请明确要求恢复。
安装
ContextGate 是一个标准的 Cordis 插件对象({ name, inject, apply }),DSH 中以动态插件运行:
方式一:动态插件(推荐,DSH Web 会话内)
将 src/index.js 中的 module.exports = { ... } 内容作为插件代码,通过 DSH 的动态插件工具(cordis_define + cordis_run)定义并激活,插件 ID 前缀建议使用 ctxg。
方式二:作为本地插件文件加载
npm install contextgate
或将本仓库 clone 后放入 DSH 的 plugins 目录
在 DSH 的 cordis.yml 中声明:
plugins:
contextgate:
path: ./node_modules/contextgate
注意:apply(ctx) 中使用 harness 全局对象注册模型工具,请确保 DSH 运行时版本支持 harness.registerTool / harness.defineTool;若运行时未提供,可删除工具注册段(harness.registerTool(...) 块),闸门本身不受影响。
配置
在 apply(ctx) 开头的 CONFIG 对象中调整:
| 配置项 | 默认值 | 说明 |
| enabled | true | 总开关 |
| thresholdTokens | 12000 | 估算 token 超过此值才触发 |
| keepHead | 1 | 保留开头 N 条消息(通常是任务陈述) |
| keepRecent | 8 | 保留最近 N 条消息 |
| gatekeeper.enabled | true | 是否启用 LLM gatekeeper(false = 始终规则折叠) |
| gatekeeper.model | undefined | 显式指定 gatekeeper 模型;未指定时自动选择(优先 flash/light/lite/mini/turbo,回退当前模型) |
| gatekeeper.confidence | 0.85 | 高置信阈值:drop 项最低置信度 ≥ 此值才自动折叠 |
| gatekeeper.maxTokens | 800 | gatekeeper 输出上限 |
| gatekeeper.timeoutMs | 15000 | gatekeeper 调用超时(超时回退规则折叠) |
| gatekeeper.truncate | 150 | 每条候选消息发送给 gatekeeper 前的截断字符数 |
| gatekeeper.askHuman | true | 低置信时询问用户;false = 低置信直接按规则折叠 |
状态查询
插件注册了 contextgate_status 工具,模型可调用以查看运行状态:
{
"targetId": "session-xxx",
"enabled": true,
"gatekeeperEnabled": true,
"requests": 42,
"folded": 3,
"foldedMsgs": 152,
"savedTokens": 96720,
"gated": 3,
"autoFolded": 2,
"confirmedFolded": 1,
"declined": 0,
"gkFallback": 0,
"last": { "provider": "deepseek", "model": "deepseek-v4", "msgs": 210, "tokens": 84210, "time": 1730000000000 }
}
| 字段 | 含义 |
| gated | gatekeeper 调用次数 |
| autoFolded | 高置信自动折叠次数 |
| confirmedFolded | 用户确认折叠次数 |
| declined | 用户拒绝折叠次数 |
| gkFallback | gatekeeper 失败/超时回退规则折叠次数 |
开发路线
- Phase 0 · 观测 ✅ 请求级观测与统计工具
- Phase 1 · 规则折叠 ✅ 阈值触发的规则压缩(head + 摘要 + tail)
- Phase 2 · LLM gatekeeper ✅ 小模型相关性判断 + 置信度自动折叠 + UI 人工确认 + 失败回退(当前版本)
- Phase 3 · 规划中 ⏳ 语义摘要生成、自适应阈值、多会话支持、UI 面板
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
vexpaer/ContextGate
超阈值时自动折叠无关历史,节省 token
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这是你的仓库?认领条目