跳到主内容

mock 使用指南

为 DeepSeek Harness 提供"伪 LLM"通道:用脚本让 agent 不调用真实模型,而是按 JSON/JSONL 剧本触发预设的工具调用,用于离线测试、教学演示与 CI 回归。

本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。

本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。

快速上手

dsh-plugins(mock / dsh-mock)

— 源: plugin_wiki.wiki_content

安装与验证

dsh plugin --profile web add dsh-mock

复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。

— 源: plugins.install

关键要点

— 源: plugin_wiki.readme_zh (fallback readme_raw)

常见问题

装上之后我能在模型下拉框里选 "mock" 吗?

不能。mock 路由被刻意隐藏(README.md:21-28),普通模型选择器里看不到它,只有输入 /mock run 或 /mock replay 这种斜杠命令才会临时启用。

/mock run 和 /mock replay 有什么差别?

/mock run 直接在输入框写一段 tool(JSON) 触发一次或一组并行工具调用,session 用完即弃;/mock replay 则读取一个本地脚本文件(canonical JSON 或 DSH JSONL),按剧本逐步重放,适合固定场景的回归测试(src/index.ts:318-339)。

replay 脚本支持哪几种文件格式?

支持 dsh-mock-script 的 canonical JSON(type=dsh-mock-script, version=1),也支持原生的 DSH JSONL session 日志(type=session 开头),后者会自动转换成 canonical 脚本(src/converter.ts:172-251)。ZIP 压缩包直接传入会被拒绝(src/replay-input.ts:14-17)。

用 mock 触发的工具会被宿主正常记录吗?

会。MockAdapter 只产出模型 chunk,工具查找、参数校验、授权、执行、结果回写和事件持久化仍然走宿主 AgentLoop/ToolRuntime 流水线(src/mock-adapter.ts:89-95)。

怎么卸载 mock?

用对应的 dsh plugin remove 移除安装源即可,effect 回收时会调用 adapter.dispose()、注销 /mock 命令与 llm adapter(src/index.ts:282-293)。

— 源: plugin_wiki.faq_json

兼容性

  • DSH: >=0.1.0-rc.6(peerDependencies 中 dsh-* 多数为 >=0.1.0-rc.6,dsh-llm 为 >=0.1.0-rc.5)
  • Node: 未声明(package.json 无 engines 字段,devDependencies 仅声明 @types/node ^22.20.0)
  • Platforms: DSH Web

— 源: plugin_wiki.compatibility_json

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则