forkprobe

69Star4Fork1Issue0Watching

ForkProbe 的 DeepSeek Harness 原生插件,把同一任务并行交给多个候选 Skill 试跑,生成可对比的本地 HTML 报告,由用户选定 winner 后让 Agent 继续任务。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
Python
License
MIT
分支
main
agent-workflowai-agentsclaude-codecodexdeepseek-harnessdsh-pluginpptxresearch-writing

安装

$ dsh plugin --profile web add github:Jayden-X-L/forkprobe

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 Jayden-X-L/forkprobe:先查看仓库 https://github.com/Jayden-X-L/forkprobe.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

ForkProbe 的 DeepSeek Harness 原生插件。它把同一个任务并行交给多个候选 Skill 试跑,生成一份可对比的本地 HTML 报告,让你在看完真实输出之后选定 winner,再由当前 DSH Agent 沿胜出 Skill 继续完成任务。

核心能力

  • 注册 forkprobe_compare 工具:用户确认 shortlist 后,把同一份任务并行交给多个候选 Skill 的 DSH subagent,并把结果落盘到本地 HTML Report
  • 注册 forkprobe_resume 工具:当 Report 的等待窗口超时或 Agent 重启后,扫描工作区日志目录取回用户已经选定的 winner
  • 提供 0-10 分制的 AI Judge 评分与摘要,作为辅助参考,但最终选择始终以用户在 Report 上点击的 winner 为准
  • 候选 subagent 强制 toolFilter.allow=[],禁止调用任何工具,避免改文件、删文件或递归触发 ForkProbe
  • Report 路径、verdict 日志和产物 sidecar 全部落在当前 DSH 工作区,禁止通过 output_path 逃逸到工作区之外
  • 支持可选的匿名 Winner 分享:用户勾选后才上传任务类型、候选 Skill 名和最终选择,不含任务原文或候选输出

技术实现

  • 语言: TypeScript(ESM,type: module
  • 关键依赖: @deepseek-ai/cordis(Cordis 插件运行时)、@deepseek-ai/dsh-tools(工具注册)、@deepseek-ai/dsh-subagent(启动原生候选 subagent)、@deepseek-ai/schemastery(配置 Schema);外加 Python 3 + Jinja2 作为本地桥接
  • 架构模式: Cordis 插件;cordis.patch.yml 在宿主中插入 forkprobe-dsh 节点;inject = ['tools', 'subagents']apply() 通过 ctx.tools.register 注册两个工具,内部通过 ctx.subagents.start 启动候选子代理,并 child_process.spawn 调用 Python 脚本完成候选准备和 Report 渲染
  • 入口文件: dsh-plugin/src/index.ts(导出 name = 'forkprobe-dsh'injectConfigapply

适用场景

当你不确定当前任务该用哪个 Skill,又不想只靠 Skill 自带的描述来猜:让 DSH Agent 先推荐一组合适的候选,等你确认后用 forkprobe 并行试跑,输出可对比的本地 HTML Report,再在 Report 上点击"继续"选择 winner,让 Agent 继续后续任务。常用于学术润色、自然化改写、审稿回复等文本任务的小规模 A/B/C 比较。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness0.1.0-rc.6+来自 peerDependencies.dsh-agent/dsh-llm/dsh-subagent
Node.js>=22.19来自 engines.node
Python 33.x插件调用 scripts/prepare_native_compare.pyscripts/finalize_native_compare.py,必须能在 PATH 中找到(默认命令 python3
Jinja2最新版Report 模板 templates/report.html.j2 由 Python 渲染
平台跨平台(macOS / Windows / Linux)由 Node.js + Python 跨平台组合提供,源码中未做平台限制
原生模块仅使用 Node 内置 node:child_processnode:fs/promisesnode:cryptonode:pathnode:url

安装方式

dsh plugin --profile web add github:Jayden-X-L/forkprobe

配置项

配置类型说明默认值
provider字符串候选 subagent 使用的 Provider 名称,必须是当前 DSH 已注册且支持工具过滤的 Providerspawn
pythonExecutable字符串调用 Python 脚本的命令名(当 python3 不在 PATH 或需要切换版本时修改)python3
maxCandidates整数(2-8)一次比较允许的最大候选 Skill 数(含 baseline);超出范围会抛错5
verdictTimeoutSeconds整数(30-7200)forkprobe_compare 等待用户在 Report 上点击 Continue 的最长时间,超时后用 forkprobe_resume 取回1800(30 分钟)
maxDepth整数(1-8)当 Provider 支持嵌套深度限制时,候选 subagent 的最大递归深度3

常见问题

Q: 这个插件解决什么问题?

A: 当你不确定当前任务该用哪个 AI Skill 时,它会把同一任务并行交给 baseline 和若干候选 Skill 试跑,生成可对比的本地 HTML Report,让你在看完真实输出后选定 winner,并由当前 DSH Agent 沿胜出 Skill 继续任务。

Q: 必须先看候选清单再运行吗?

A: 是。forkprobe_compare 强制要求 confirmed=true 才会执行,否则直接抛错要求先展示候选 shortlist 并获取确认。

Q: 需要 Python 3 吗?

A: 需要。插件依赖本机 Python 3 执行 scripts/prepare_native_compare.pyscripts/finalize_native_compare.py 来加载 Skill 并渲染 Report;还要求安装了 Jinja2 模板引擎。Python 命令可通过配置项 pythonExecutable 覆盖。

Q: 候选试跑时会不会改我电脑上的文件?

A: 不会。每个候选 subagent 被设置成 toolFilter.allow=[](不允许调用任何工具),候选只会输出文本,不会写文件或递归调用 ForkProbe。

Q: 超时没点"继续"按钮怎么办?

A: 调用 forkprobe_resume 即可。它会扫描工作区 forkprobe-logs/ 目录下的最新 verdict 日志,把用户已经选定的 winner 输出交还给当前 DSH Agent。

Q: 如何卸载?

A: 运行 dsh plugin --profile web remove forkprobe-dsh(headless profile 下也要执行一次),Harness 会移除插件注册的 forkprobe_compareforkprobe_resume 工具。

Q: 报告和候选输出会上传到云端吗?

A: 默认不上传。Report 与候选产物都留在本机工作区;只有当用户在 Report 中勾选"匿名分享"后,才会向 ForkProbe 官方 Worker 上传任务类型、候选 Skill 名称与最终选择,不含任务原文、文件或候选输出;设置 FORKPROBE_TELEMETRY=0 可强制关闭。

Q: 它会替换 Harness 的内置工具吗?

A: 不会。插件只通过 Cordis 注册 forkprobe_compareforkprobe_resume 两个新工具,不替换任何内置服务,也不会复制 DSH 凭据。

上手难度

入门 — 安装后只需要让 Agent 推荐候选、确认后再调用 forkprobe_compare,用户交互只多了一个"在 Report 上点 Continue"的步骤;配置项都有合理默认,跨平台可用。

已知问题与限制

  • forkprobe_compare 要求 confirmed 必须显式为 true,否则直接抛错;模型不能跳过确认环节自动触发试跑
  • 候选数必须落在 2 ≤ skills ≤ maxCandidates(默认 5、上限 8)区间,否则报错
  • 当 Report 中的本地 verdict server 不可达或等待超过 verdictTimeoutSeconds(默认 30 分钟)后,会返回 awaiting_verdict 状态,需调用 forkprobe_resume 取回用户后续的选择
  • pythonExecutable 默认按 python3 寻找 Python;如果系统只有 python,或在 Windows 上 PATH 不一致,需要手动调整该项
  • 匿名分享事件默认发送至 forkprobe-selection-telemetry.workers.dev,部分受限网络下事件会留在本地 outbox,不会影响 winner 保存与 Agent 继续

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/Jayden-X-L/forkprobe)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录