自动修复畸形工具调用,保证会话日志始终可加载
30.2/100
综合分
1
GitHub 星标
32
npm 周下载
—/5
用户评分
数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-session-shieldnpm 源 · dsh-session-shield 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 35 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-session-shield @ 0.1.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/3 12:26:56
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 自动修复畸形工具调用
- 保证会话日志可加载
- 零配置零依赖
Session Shield —— 让 DSH 会话日志永远不会因为一次畸形 tool call(空 id / 空 name / 非法 arguments)而打不开。装上即用,零配置、零依赖。
README
由 DeepSeek 最新模型翻译生成Session Shield(dsh-session-shield)
DeepSeek Harness 插件:让会话日志永远不会因为一次畸形 tool call(空 id / 空 name / 非法 arguments)而打不开。
坏调用自动修复,正常调用原样通过,最多当轮报错,历史永远可加载。装上即用,零配置、零依赖、无需客户端改动。
解决什么问题
一次真实事故的链条:
1. 模型输出了 id:"" / name:"" 的 tool call(正文里还混着 <tool_call> 与 <invoke 两套调用语法);
2. DSH 运行期校验不检查这两个字段 → 事件照常写进 session.v4.jsonl.zstd;
3. 解码期要求 tool call id 非空(tool call id requires a nonempty string)→ 这个会话从此加载不出来,侧边栏只剩 stored session ... is corrupt。
写入端宽松、读取端严格:坏事件一旦落盘就不可逆,只能手工修复日志。
本插件把这个口子堵在落盘之前。
展开完整文档(README 剩余 1 节)
Session Shield(dsh-session-shield) DeepSeek Harness 插件:让会话日志永远不会因为一次畸形 tool call(空 id / 空 name / 非法 arguments)而打不开。 坏调用自动修复,正常调用原样通过,最多当轮报错,历史永远可加载。装上即用,零配置、零依赖、无需客户端改动。 解决什么问题 一次真实事故的链条: 1. 模型输出了 id:"" / name:"" 的 tool call(正文里还混着 <tool_call> 与 <invoke 两套调用语法); 2. DSH 运行期校验不检查这两个字段 → 事件照常写进 session.v4.jsonl.zstd; 3. 解码期要求 tool call id 非空(tool call id requires a nonempty string)→ 这个会话从此加载不出来,侧边栏只剩 stored session ... is corrupt。 写入端宽松、读取端严格:坏事件一旦落盘就不可逆,只能手工修复日志。 本插件把这个口子堵在落盘之前。 怎么做 挂在 DSH 官方的 llm/stream waterfall(dsh-llm:"the chunk stream, possibly wrapped by llm/stream listeners"),prepareCall 预绑定路径同样回到这里,所以一个钩子覆盖全部模型调用: | 情况 | 处理 | | block-end 里 tool-call 的 id 为空 / 本次流内被别的 index 复用 | 换成 call-guard-<token>-<index> | | block-end 里 tool-call 的 name 为空 | 换成 guard_malformed_tool_call | | tool-call-delta 的 id / name 为空 | 同样补齐(装配器在缺 block-end 时会用 delta 拼装) | | arguments 不是字符串 | 转成 JSON 字符串,保证 message 块与随后的 tool/call 事件逐字一致 | | 正常 tool call | 原样透传,一个字节不动 | 空 name 换成占位工具名后走 Harness 已有的 unknown tool "..." 错误结果:模型收到反馈可以自行重试,日志保持合法,会话照常可打开。 环境要求 - DeepSeek Harness 0.1.x(Web 端) - 无额外依赖、无客户端代码、不写任何文件 安装 以下任一方式(插件管理器 install_bundle,或 设置 → 插件 的安装入口): 1. 安装包(推荐分发):直接给出本 .tgz 的绝对路径 2. 源码目录:解压源码 zip 后给出目录绝对路径 3. registry 包名 / git 地址:发布后用包名或仓库地址安装 安装成功后即在当前 profile 生效,重启 DSH 后插件层开始拦截。 配置 profile cordis.patch.yml 中本插件行的 config: | 字段 | 说明 | 默认 | | enabled | 设为 false 整体停用(或直接注释掉 insert 行) | true | 验证是否生效 - dsh --profile <profile> --dump-config 的输出里应有 # == dsh-session-shield 层与 - id: session-shield 行; - 启动日志不应出现 skipping profile bundle "dsh-session-shield"; - 启动审计 warning: N entry did not activate 里不应列出 session-shield; - 设置 → 插件页里该条目状态为 active。 注:Harness 启动成功时不会把插件的 ctx.logger 输出打印到 manager.log (cordis logger 默认只进内存 buffer),所以看不到 "armed" 日志是正常现象,不代表未加载。 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
hbgdjb/dsh-session-shield
自动修复畸形工具调用,保证会话日志始终可加载
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,462已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,848已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,246已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 4,717已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,711已汉化DSH
71.1