← 返回列表
⚠ 装前注意
📦 @goodandready/dsh-dsml-artifact-guard
基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/22 · 已提供中文文档
从模型文本流中清除泄漏的 DeepSeek DSML 闭合标签
综合分
30.6
GitHub 分
30.6
用户评分
—
★ Stars
1
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/GooDAnDReaDY/dsh-dsml-artifact-guard.git信任档位:已验证本站已于 1 天前真实安装成功
- 是什么
- 生态插件(可安装,未声明 dsh 能力)
- 装得上吗
- 本站已真实安装成功(非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 3 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/24
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/24(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包@goodandready/dsh-dsml-artifact-guard(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
未发布到 npm registry,仅可从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/21 23:45:43
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成📦 @goodandready/dsh-dsml-artifact-guard
面向 DeepSeek Harness 的残留 DSML 协议闭合标签流式熔断清洗引擎
🇬🇧 English •
🇷🇺 Русский •
🇨🇳 中文说明
⭐ 如果您喜欢这个插件,请在 GitHub 上为它点亮 Star — 这能让我知道插件对您有用,并鼓励我继续开发和维护它。
🐛 如果您发现 Bug 或希望增加功能,请使用任意语言在 GitHub 上提交 Issue — 我会评估您的建议,并在后续版本中实现有价值的改进。
⚡ 核心定位与解决痛点
在对接特定第三方大模型服务商或代理网关时,底层工具调用协议 DSML(DeepSeek Markup Language)的闭合标签有时会异常泄漏并附着在模型输出的正文末尾。用户在聊天界面中经常看到多余的协议残留:
任务完成,所有测试均已通过。
此类闭合标签不仅造成视觉污染、破坏 Markdown 排版渲染,还会干扰后续多智能体协作解析或文本复制导出。
@goodandready/dsh-dsml-artifact-guard 是专为 DeepSeek Harness 打造的原生宿主级(host-only)文本流拦截过滤插件,在文本到达前端界面之前实时侦测并净化残留闭合标签:
1. 严格同步 Hook 契约保障:Cordis 要求流拦截器必须同步返回 AsyncIterable。将拦截器写成 async 会返回 Promise,直接引发运行时崩溃:stream is not async iterable。本插件严格保持同步注册。
2. 分片分包滑动缓冲流:网络分包常将闭合标签切断并分散在不同 Text Delta 中。插件内置 96 字节(KEEP = 96)滑动窗口,精准捕获并合并跨分片的长尾标签。
3. 100% 故障开放(Fail-Open)安全:绝不误伤合法正文。对于讨论 DSML 语法的正常技术文本,插件保证原样放行。
4. 定向模型与服务商匹配:仅对发生协议泄漏的目标 Provider/Model 执行流式清洗,其他模型流量直通零开销。
🏗️ 架构设计
graph TD
subgraph DSH ["DeepSeek Harness 核心运行时"]
Turn["智能体回合执行(发起大模型流式请求)"]
ChatUI["聊天界面流式消费端(渲染纯净 Markdown 文本)"]
end
subgraph Guard ["@goodandready/dsh-dsml-artifact-guard"]
Hook["同步 llm/stream 拦截钩子(同步返回 AsyncIterable)"]
ScopeCheck{"是否命中范围?(校验 providerId 与 modelId)"}
PassThrough["原始数据流直通(其他模型零延迟零开销)"]
Buffer["滑动尾部缓冲区(跨分片保留最后 96 字节)"]
Detector{"末端残留判定?(流结束 finish 时比对标签)"]
Sanitize["清洗模式 (Sanitize)(安全剥除协议残留标签)"]
Audit["审计模式 (Audit)(仅记录日志不改动文本)"]
end
Turn -->|llm/stream 拦截| Hook
Hook --> ScopeCheck
ScopeCheck -->|未命中| PassThrough
ScopeCheck -->|命中| Buffer
PassThrough --> ChatUI
Buffer --> Detector
Detector -->|无异常| ChatUI
Detector -->|检出残留: sanitize| Sanitize --> ChatUI
Detector -->|检出残留: audit| Audit --> ChatUI
✨ 核心特性深度解析
1. 同步 Hook 契约保护
在 Cordis 与 DSH 的底层事件总线中,llm/stream 监听器必须同步返回转换后的迭代器。若将回调函数声明为 async,返回值将被自动包裹为 Promise,导致下层调度器抛出致命异常:TypeError: stream is not async iterable。dsh-dsml-artifact-guard 采用纯同步生成器封装,从根源规避调度崩溃。
2. 跨分片长尾标签精准捕获
在实际网络传输中,长尾标签 常被拆分为多个 chunk:
* Chunk 1: All tasks complete.
* Chunk 3:
滑动窗口在接收到下一个文本分片或 finish 信号前保留尾部 96 字节,确保跨包切分的标签被作为一个完整实体精准匹配并剔除。
3. 数据安全与故障开放保障
* 正文技术讨论中出现 DSML 示例代码时(如 demo),绝不误删。
* 非文本分片(tool-call-delta, usage, finish)即时透传,无任何额外排队延迟。
* 遇到畸形数据格式时自动降级放行,优先确保会话畅通不中断。
4. 三种灵活运行模式
* sanitize (默认):自动剥离末尾残留标签,并在日志中输出剥离计数。
* audit:仅通过 ctx.logger.info(...) 记录检出警告,保持用户界面原样输出。
* disabled:完全旁路,不进行任何处理。
📦 快速安装
通过 DeepSeek Harness CLI 一键安装:
dsh plugin --profile web add @goodandready/dsh-dsml-artifact-guard
重启 DeepSeek Harness 实例即可生效。
⚙️ 配置指南 (settings.yaml)
在 settings.yaml 或 Web UI 设置面板中配置目标服务商与模型:
settings.yaml
dsh-dsml-artifact-guard:
mode: sanitize
providerId: "your-provider-id"
modelId: "your-model-id"
配置参数参考表
| 参数名 | 类型 | 默认值 | 功能说明 |
|:---|:---|:---|:---|
| mode | string | "sanitize" | 运行模式:"sanitize"(清洗标签)、"audit"(仅审计)或 "disabled" |
| providerId | string | "opencode-go" | 发生协议标签泄漏的目标服务商标识符 |
| modelId | string | "deepseek-v4-flash" | 发生协议标签泄漏的目标模型标识符 |
🧪 测试与校验
运行全部自动化测试与语法检查:
npm test
npm run check
📄 开源许可证
MIT © GooDAnDReaDY
完整版本演进与更新记录详见 CHANGELOG.md。