DeepSeek Harness Hub
← 返回列表

服务端上下文压缩ylxmf2005/dsh-openai-server-compaction

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

为 Responses 路由提供 Codex 风格服务端压缩与恢复

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/22 · 已提供中文文档

OpenAI Responses 适配器,为 DeepSeek Harness 提供持久化的服务端压缩。

综合分
28.2
GitHub 分
28.2
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add ylxmf2005/dsh-openai-server-compaction
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-settings-plugins@deepseek-ai/dsh-client-ui-slots
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-openai-server-compaction

这是一个原生 DeepSeek Harness 插件:为 DSH 内置 llm-pi-ai 管理的
OpenAI Responses route 增加 Codex 风格的服务端上下文压缩。

当前使用 API Key,不支持 OAuth,也不接入 ChatGPT Codex backend。

English

工作原理

llm-pi-ai 是 provider 连接和模型数据的唯一所有者,包括:

- provider route 名称和显示名称
- api: openai-responses
- API Base URL 和凭据引用
- 模型 ID、上下文窗口、输出能力和自定义 headers

本插件只保存每个 route 的压缩策略。对于已明确配置并启用的 Responses
route,它会:

- 通过 POST /v1/responses 处理普通模型请求
- 通过 Codex Remote Compaction V2 处理手动压缩、token 压力压缩和溢出
恢复:在普通 POST /v1/responses 请求末尾追加
{ "type": "compaction_trigger" },并启用 remote_compaction_v2 feature
- 保留最近真实用户消息中的最多 64,000 token,以及服务端返回的唯一 opaque
compaction item;在 session JSONL 之外保存这份原生 replacement history,
重启后恢复
- 在 DSH 正常历史中写入可移植文字 checkpoint,供其他模型或 provider 使用

已启用 route 的请求会由本插件的 Responses adapter 接管,而不是继续传给
pi-ai。这是保留和恢复 opaque Responses replay state 的必要条件,因为
pi-ai 不能识别这类状态。未启用 route、非 Responses route,以及未列入已启用
route 模型表的模型,都会原样透传给正常 adapter。

插件不会静默降级到 Chat Completions。缺少凭据、旧配置含义不明确、route
信息不完整、Responses 流格式错误、状态文件丢失或内容类型不支持时都会明确失败。

安装

dsh plugin --profile web add dsh-openai-server-compaction

从 Git 仓库安装:

dsh plugin --profile web add https://github.com/ylxmf2005/dsh-openai-server-compaction.git

如果 pnpm 对 workspace 形式的 profile 报
ERR_PNPM_ADDING_TO_ROOT,请在 add 后增加 -w 再执行。

bundle 会替换 compaction-basic,但不会擅自创建或启用 OpenAI route。
只有两个 namespace 都配置完成后,插件才开始接管相应 route。

配置

1. 创建 Responses route

打开 DSH 设置 -> Models,新建或编辑一个 llm-pi-ai provider
route。该 route 必须明确使用 openai-responses,并列出所有需要支持服务端
压缩的模型。

等价的 settings YAML:

llm-pi-ai:
providers:
openai:
displayName: OpenAI Responses
api: openai-responses
baseURL: https://api.openai.com/v1
apiKeyEnv: OPENAI_API_KEY
models:
- id: gpt-5.6
name: GPT-5.6
contextWindow: 1050000
maxTokens: 128000

请通过 DSH credentials 界面/服务保存 OPENAI_API_KEY,或者将它导出到
启动 DSH 的环境。本插件的 settings 不保存密钥。

已启用 route 必须提供明确的 api: openai-responses、非空
baseURL 和 apiKeyEnv、至少一个模型,以及每个模型的正整数
contextWindow(或明确的 provider defaultContextWindow)。
插件不会猜测这些值,因为错误的上下文容量会让压缩阈值失真。

2. 为 route 启用压缩

打开 DSH 设置 -> 插件 -> OpenAI 压缩。这个原生插件页签会列出已配置为
openai-responses 的 route。启用目标 route,并设置触发阈值。

等价的 settings YAML:

openai-server-compaction:
routes:
openai:
enabled: true
thresholdRatio: 0.7

本例中的 route key openai 必须与
llm-pi-ai.providers 下的 key 完全一致。

压缩策略需要重启后生效。修改后请重启 DSH。
Codex 的服务端压缩请求不会发送 max_output_tokens,本插件与之保持一致。
插件会另外生成一份最多 4,096 输出 token 的可移植文字 checkpoint,使 DSH
会话仍可切换到其他 provider;这个内部上限不是服务端压缩结果上限。
stateFile 属于运维侧
composition 配置,不是用户 settings。bundle 默认路径为:

$DSH_HOME/openai-server-compaction/state.json

从 0.2.x 迁移

旧 namespace llm-openai-server-compaction 混合保存了连接、模型和
压缩策略。因为无法可靠推断目标 route 名称,插件不会静默迁移。

1. 把 baseURL、apiKeyEnv 和 models 移到
llm-pi-ai.providers.。
2. 在该 provider profile 中增加 api: openai-responses。
3. 把 thresholdRatio 移到 openai-server-compaction.routes.,设置
enabled: true,并删除已废弃的 route 级 maxTokens。
4. 完整删除 llm-openai-server-compaction section。

只要非空旧 section 仍存在,插件就会拒绝启动并显示上述迁移步骤。

持久化

DSH 的 compaction 公共契约没有存放 adapter 私有 opaque compaction item
的字段。因此插件把加密 provider 状态写入 stateFile,在可移植
checkpoint 中只嵌入 UUID 标记。

请把该文件与 DSH session store 一起备份,并按私有应用数据处理。文件丢失时,
兼容 OpenAI replay 会明确失败,但可移植文字摘要仍可供其他 provider 使用。
Opaque 状态绑定创建它的 provider route 和 model。

开发验证

npm install
npm test
npm run check
npm run build
npm pack --dry-run

自动测试使用 stub HTTP 响应,不会调用付费 API。真实冒烟测试是独立、明确且可能
计费的操作:

OPENAI_API_KEY=... OPENAI_MODEL=... npm run smoke:live

docs/marketplace-entry.yml 是 awesome-dsh-plugin 的登记草案。
提交市场前仍需满足仓库创建时间、commit 数和 GitHub dsh-plugin topic
等规则。

License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(ylxmf2005)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群