前言¶
在 DeepSeek Harness(DSH)里做 GME 相关开发时,测试往往要对着大量接口目录逐条补用例,失败还要在编译、格式化、记忆审计等阶段来回修。若把这些步骤都交给对话里的模型即兴编排,中间状态难追踪,对外提交 PR、删任务等操作也缺少统一闸门。
下面介绍社区插件 dsh-gme-test-generator(维护者 nuaaweixinye):它在 Harness 侧提供三个工作流工具,连接本机已部署的 GME Test Generator Python 后端,由后端自主跑生成与修复,模型侧主要负责选接口、轮询进度,并在用户明确同意后再执行对外决策。
这是什么¶
dsh-gme-test-generator 是面向 DeepSeek Harness 的社区工作流插件(npm 包名 dsh-gme-test-generator,当前资料中版本 0.2.0,MIT 许可证)。它不替代 GME Test Generator 本体,而是驱动已有 checkout 里的 backend/run_backend.py 及配套配置、任务库与 GME 编译链。
后端未随插件打包;公开框架可参考 nuaaweixinye/gme-agent 的克隆与配置说明。完整含生成目录的 checkout 为私有仓库,需向维护者申请访问。
环境与前提¶
使用前需同时满足 README 中列出的条件,要点如下:
- DeepSeek Harness:
0.1.2-alpha.1或更新,且仍在0.1.x线;使用带tools与systemPrompt的 base-backed profile。插件engines.dsh要求为>=0.1.2-alpha.1 <0.2.0-0。 - GME Test Generator checkout:含
backend/run_backend.py、config.local.json、任务数据库,以及 GME 仓库与编译工具链。 - Python 环境:已安装后端依赖,以及匹配的
deepseek-harness-sdk、deepseek-harness-runtime-bin;另需 clang-format 17.0.2(与 GMEcheck-format一致,后端不接受其它主版本做格式判定)。 - 自动拉起后端:profile 中需有本地
subprocess服务(官方 profile 通常已带)。
后端内的编码工作走独立 sdk profile,通过 DeepSeek Harness Python SDK 执行;构建、测试与 memory audit 是任务内自动阶段,不由聊天工具逐步指挥。该 coding profile 含文件、搜索与 PowerShell 工具,且不包含本插件,避免任务递归。
核心功能:三个工具¶
| 工具 | 作用 |
|---|---|
gme_generate |
自主生成:按接口 ID 或自由目标创建测试、批量创建、修复已记录失败、扩展或重试任务 |
gme_check |
无副作用读取:接口目录、任务、增量事件、带观测的失败、测试结果、产物等 |
gme_decide |
需用户同意:任务 PR、已知失败跳过 PR、选中测试 PR、移除选中测试、清理、删除任务等(须 confirm: true) |
工作流上的约定(来自 README):
- 生成与扩展时,要么传目录里的
interface_ids,要么传自由文本goal,不可同时传;后端在提供 ID 时会丢弃goal,插件也会拒绝组合。批量创建必须用 ID。应先gme_check查接口,任务 ID 用后端 job ID,不要用 Harness session ID。 - 从受理到
needs_review由后端自主执行;模型用gme_check轮询,不干预中间构建、测试与 memory audit。 - 响应中的
suggested_next会提示阶段:执行中继续 poll →needs_review时汇报摘要、失败与 diff → 对外步骤交给gme_decide。 gme_decide未带confirm: true会直接失败并给出指引,请求不会打到后端。accepted: true只表示已排队,不代表校验已通过。大报告用分页字段content、total_characters、next_offset续查;进行中可用events.after做有界增量查询。
安装与启用¶
可从 DSH Settings → Plugin Market 一键安装,或在命令行执行(资料原文):
dsh plugin --profile web add dsh-gme-test-generator
命令会安装包并写入 profile 的 dsh.profile.bundles;包内带 dsh.bundle.patch 层,一般无需手改 profile 文件。安装后需重启 dsh web。
若 profile 里仍单独启用了旧包 tool-gme,应禁用该行;安装本插件不会自动移除其它包。
配置 backendRoot¶
backendRoot 是部署路径,无默认值,也不会作为模型参数传入。未配置时插件仍会挂载:不注册工具、打一条 warning,并把 setup 说明暴露给模型,便于 agent 解释缺什么,而不是报「无此工具」;校验失败不会拖垮整棵插件树。
方式一:环境变量(Harness 启动时读取):
$env:GME_TEST_GENERATOR_ROOT = 'D:/workspace/gme-test-generator'
$env:GME_TEST_GENERATOR_PYTHON = 'C:/ProgramData/Miniconda3/envs/agent/python.exe' # 可选,默认 python
dsh web
方式二:profile patch,路径为 $DSH_HOME/profiles/<profile>/cordis.patch.yml:
- id: gme-test-generator
config:
backendRoot: D:/workspace/gme-test-generator
pythonPath: C:/ProgramData/Miniconda3/envs/agent/python.exe
port: 8765
autoStart: true
patch 行只覆盖其列出的键;若保留其它字段,需在 patch 里写全 config。改完后重启 dsh web,backendRoot 解析成功后工具才会出现。
| 配置项 | 默认 | 含义 |
|---|---|---|
backendRoot |
(启用工具所必需) | 含 backend/run_backend.py 的 GME Test Generator 根目录 |
pythonPath |
python |
带后端依赖的解释器 |
configFile |
config.local.json |
后端配置,绝对路径或相对 backendRoot |
tokenFile |
logs/web-api-token.log |
API token;自动启动时若缺失会创建 |
port |
8765 |
后端监听 IPv4 loopback 的 TCP 端口 |
autoStart |
true |
端口无可用服务时启动插件托管的 Python worker |
timeoutMs |
15000 |
单次 HTTP 请求(含 body)超时 |
startupTimeoutMs |
45000 |
托管 worker 变为 healthy 的超时 |
maxResponseBytes |
8388608 |
单次响应保留的最大字节 |
pageChars |
12000 |
报告分页字符数(256–50000) |
后端可选的「历史分歧与知识库注入」在 backend 自己的 config.local.json 中配置(默认关闭),详见后端仓库 docs/knowledge-injection.md;与插件的交集主要在 owned worker 环境变量,见 setup 文档第 6 节。
典型用法(可复现流程)¶
下面是一条与 README 工具设计一致的对话侧流程,便于在本地复现:
- 配置
backendRoot(或环境变量)并重启dsh web,确认三个 GME 工具出现在 profile 中。 - 用
gme_check查询接口目录,选定interface_ids(或仅写goal,二选一)。 - 调用
gme_generate创建或扩展任务;返回accepted: true后,按suggested_next用gme_check轮询任务状态与增量events,直至needs_review。 - 在
needs_review阶段用gme_check拉取摘要、失败与 diff(大 JSON 用next_offset分页)。 - 需要提交 PR、清理或删任务时,调用
gme_decide,并显式传入confirm: true;否则调用会被插件拒绝。
生成与决策返回的 status: failed 仍是合法查询结果;基础设施类问题会以 tool error 形式出现。中止 tool 只会停止等待,不会取消已受理的后端 job;POST 不会自动重试,提交结果不确定时应再查任务列表。
适用场景与注意¶
适合谁:已在本地维护 GME Test Generator 与 GME 编译环境、希望在 DSH Web profile 里用统一工具链做「选接口 → 自主生成/修复 → 审阅 → consent 后对外动作」的开发者。
权限与安全:插件以当前 dsh 进程权限运行;安装与启用前应阅读 GitHub 源码 与 LICENSE,并理解本机后端会执行构建、测试与可能的 PR 相关操作。
Worker 生命周期:首次请求在健康检查与鉴权通过后会复用已有服务;否则 autoStart: true 会启动配置的 Python 入口,并发请求共享同一次启动。Harness 关闭或重载可能中断本插件启动的后端及其子进程;独立启动的后端不受影响。插件 dispose 时只终止自己拉起的 worker。端口被其它服务占用或鉴权失败时不会盲目起 worker。
生态说明:DSH 采用「一切皆插件」的扩展方式;SkillHub 插件目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。本包为社区插件,非 DeepSeek 官方发行。
结尾¶
dsh-gme-test-generator 把 GME 测试生成与修复收成 Harness 侧三个工具:生成走本地 Python 后端自治流水线,检查只读,对外动作经 confirm 闸门。若你已有 GME Test Generator 部署,可按上文命令安装并配置 backendRoot 接入工作流。