🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

磁带录制回放 Glaz-j/dsh-Tape

DeepSeek Harness
Glaz-j71 天前有提交已提供中文文档扫描:含敏感能力

录制工具调用结果,离线时严格回放不触网

25.9/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/12 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Glaz-j/dsh-Tape
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · dev
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 71 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/12) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 2 处,展示前 2 条)
  • 读取本地文件
    lib/index.js:193
    text = await readFile(filename, 'utf8');
  • 读取本地文件
    src/index.ts:232
    text = await readFile(filename, 'utf8')
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 录制工具调用结果
  • 离线严格回放
  • 回放不触网

README

由 DeepSeek 最新模型翻译生成
dsh-tool-tape DeepSeek Harness 工具的确定性录制/回放中间件。Tape 用工具名加上规范化 JSON 参数,为显式允许的调用生成键,记录规范化后的分发结果,之后直接回放,不再进入真实工具主体。 回放是严格的:选中的调用如果在 cassette 里不存在,就返回 TAPE_MISS,绝不会落到网络或另一个服务商。Tape 始终放行 run_code,而选中的 Code Mode 子调用仍会各自独立经过同一中间件。 配置 | 键 | 类型 | 含义 | | mode | record \| replay | 执行并持久化调用,或严格从 cassette 提供结果。 | | path | string | JSON cassette 路径。相对路径从进程 cwd 解析。 | | include | string[] | 必需的工具名允许列表; 是唯一的通配符。 | 只添加只读工具,且其完整环境输入都由参数表示。DSH 没有通用的纯函数标记,所以 Tape 刻意不提供自动的「安全工具」模式。 可安装 bundle 会贡献一行休眠的 tape。在配置档的 cordis.patch.yml 或 --patch 覆盖层里启用它: - id: tape disabled: false config: mode: record path: !!
展开完整文档(README 剩余 1 节)
dsh-tool-tape

DeepSeek Harness 工具的确定性录制/回放中间件。Tape 用工具名加上规范化 JSON 参数,为显式允许的调用生成键,记录规范化后的分发结果,之后直接回放,不再进入真实工具主体。

回放是严格的:选中的调用如果在 cassette 里不存在,就返回 TAPE_MISS,绝不会落到网络或另一个服务商。Tape 始终放行 run_code,而选中的 Code Mode 子调用仍会各自独立经过同一中间件。

配置

| 键 | 类型 | 含义 |
| mode | record \| replay | 执行并持久化调用,或严格从 cassette 提供结果。 |
| path | string | JSON cassette 路径。相对路径从进程 cwd 解析。 |
| include | string[] | 必需的工具名允许列表; 是唯一的通配符。 |

只添加只读工具,且其完整环境输入都由参数表示。DSH 没有通用的纯函数标记,所以 Tape 刻意不提供自动的「安全工具」模式。

可安装 bundle 会贡献一行休眠的 tape。在配置档的 cordis.patch.yml 或 --patch 覆盖层里启用它:

- id: tape
disabled: false
config:
mode: record
path: !!js dshHomePath('tapes', 'demo.json')
include: [web_search, web_fetch, 'mcp_']

离线运行时只把 mode 改成 replay。配置档补丁会替换完整配置,所以三个键都要保留。

Cassette 行为

版本一的 JSON 文档存储 { tool, arguments, result } 条目。对象键顺序不影响匹配。加载会拒绝格式错误的数据、外来版本和重复调用;回放还会在插件启动时拒绝缺失的文件。录制写入是串行的,并以原子方式替换属主私有文件。用同一个键和同一个结果重新录制是空操作;结果不同则返回 TAPE_RECORD_CONFLICT,并保留第一条条目。

成功的录制会刻意省略 additionalContexts 和 concludesTurn。回放时,DSH 会用当前注册的工具输出 schema 校验存储的规范化值,用当前工具定义渲染它,然后运行当前的 post-execute 策略。

开发

开发链接目前指向 DeepSeek Harness 0.1.0-rc.7 源码树。安装依赖前,先检出并构建本仓库旁边的 deepseek-harness:

parent/
├── deepseek-harness/
└── dsh-Tape/

cd ..\deepseek-harness
pnpm install
pnpm build

cd ..\dsh-Tape
pnpm install
pnpm test

pnpm run build 把可发布的 JavaScript、source map 和声明文件写入 lib/。这些生成文件是刻意纳入版本管理的。pnpm pack 通过 prepack 自动运行构建。

已知限制

- 调用可能依赖环境 cwd、工作区、凭据、时间或租户状态,而这些都不在参数里;只允许列表中的工具,且其名称和参数构成完整的回放键。
- 重放会改变状态的工具时,会跳过它的副作用。Tape 无法推断某个工具是只读的。
- 一个 cassette 只由一个进程持有。同一插件实例内的写入会串行化,但不同进程之间可能发生竞争。
- 原子替换能防止读取方看到不完整的文档,但当前 helper 并不保证在每个平台上都具备崩溃级别的 fsync 持久性。
- 每新增一条记录都会重写整个 JSON 文档,且在这个初版中没有配置大小上限。
- 工具主体的延迟上下文在 tools/execute 瀑布之后才附加,因此不在记录的外部结果之内。
预览分享卡片长什么样 ↓Glaz-j/dsh-Tape
分享 · DeepSeek Harness Hub
Glaz-j/dsh-Tape

录制工具调用结果,离线时严格回放不触网

回到顶部