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

Qoder 免费子代理 baldovinmarques391-design/dsh-qoder-subagent

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

调用 Qoder 免费模型派发子任务并留存运行记录

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
数据截至 2026/11/03·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 18 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件
查看扫描证据(共 20 处,展示前 15 条)
  • 读取本地文件
    index-v020.js:75
    tried.push({ exe, worker, exeExists: existsSync(exe), workerExists: existsSync(worker) })
  • 读取本地文件
    index-v020.js:76
    if (existsSync(exe) && existsSync(worker)) return { exe, worker, tried }
  • 读取本地文件
    index-v020.js:100
    if (!existsSync(exe)) {
  • 读取本地文件
    index-v020.js:106
    if (!existsSync(worker)) {
  • 读取本地文件
    index-v020.js:115
    if (!existsSync(cwd)) {
  • 读取本地文件
    index-v020.js:122
    try { isDir = statSync(cwd).isDirectory() } catch { isDir = false }
  • 写入本地文件
    index-v020.js:169
    mkdirSync(stateDir, { recursive: true })
  • 写入本地文件
    index-v020.js:171
    if (!existsSync(emptyMcp)) writeFileSync(emptyMcp, '{"mcpServers":{}}\n', 'utf8')
  • 写入本地文件
    index-v020.js:178
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    index-v020.js:184
    writeFileSync(join(run.dir, 'meta.json'), JSON.stringify({
  • 写入本地文件
    index-v020.js:206
    appendFileSync(join(run.dir, 'events.jsonl'),
  • 写入本地文件
    index-v020.js:213
    appendFileSync(join(run.dir, 'events.jsonl'), JSON.stringify(ev) + '\n', 'utf8')
  • 执行外部命令来自配置/变量
    index-v020.js:284
    const child = spawn(built.command, built.args, {
  • 执行外部命令固定命令
    index-v020.js:321
    try { spawn('taskkill', ['/pid', String(child.pid), '/T', '/F'], { windowsHide: true }) } catch {}
  • 执行外部命令固定命令
    index-v020.js:573
    try { spawn('taskkill', ['/pid', String(run.pid), '/T', '/F'], { windowsHide: true }) } catch {}
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

让 Qoder CN 的免费模型(Qwen3.8-Flash 等)当 DSH 的子代理:逐次选模型、逐次传权限、零提示词注入、全程留痕。

README

由 DeepSeek 最新模型翻译生成
@local/dsh-qoder-subagent 把 Qoder CN 自带的 CLI(qoderclicn,藏在 resources\app.asar.unpacked\node_modules\@qoder-ai\qoder-cn-agent-sdk\dist\_worker\ 里)当成 DSH 的免费子代理用。默认模型 Qwen3.8-Flash(实测 billable: false、credits: 0、usd: 0)。 工具 | 工具 | 用途 | | freesub_run | 派一个子代理。wait_ms=0 立刻返回句柄;结束后自动注入完成通知;wait_ms>0 同步等结果 | | freesub_result | 取结果(取回后该条通知自动消失) | | freesub_send | 复用会话上下文继续说一句(Qoder 侧 --resume <session-id>) | | freesub_list | 谁在跑、谁跑完了、pending_notifications 有几条未取回 | | freesub_interrupt | 掐掉(杀进程树),被掐同样产生通知 | | freesub_models | 免费模型表 + 实际发现到的 Qoder 路径 |
展开完整文档(README 剩余 1 节)
@local/dsh-qoder-subagent

把 Qoder CN 自带的 CLI(qoderclicn,藏在 resources\app.asar.unpacked\node_modules\@qoder-ai\qoder-cn-agent-sdk\dist\_worker\ 里)当成 DSH 的免费子代理用。默认模型 Qwen3.8-Flash(实测 billable: false、credits: 0、usd: 0)。

工具

| 工具 | 用途 |
| freesub_run | 派一个子代理。wait_ms=0 立刻返回句柄;结束后自动注入完成通知;wait_ms>0 同步等结果 |
| freesub_result | 取结果(取回后该条通知自动消失) |
| freesub_send | 复用会话上下文继续说一句(Qoder 侧 --resume <session-id>) |
| freesub_list | 谁在跑、谁跑完了、pending_notifications 有几条未取回 |
| freesub_interrupt | 掐掉(杀进程树),被掐同样产生通知 |
| freesub_models | 免费模型表 + 实际发现到的 Qoder 路径 |

设计约束:逐次选模型(model 是调用参数)、逐次传权限(permission: readonly / edit / full)、 零提示词注入(发出去的就是 task 原文,另存 runs/<id>/prompt.txt 可逐字核对)、逐 run 留痕。

运行留痕(runs/<agent_id>/)

| 文件 | 内容 |
| prompt.txt | 实际发出的原文 |
| events.jsonl | Qoder 的原始事件流;结束时若无 result 事件,插件会补写一条 synthesized: true 的终止记录 |
| stderr.log | 子进程 stderr(失败排查用) |
| meta.json | 终态、stage、errorStage、cwd/cwdRequested、eventCount、lastEventAt、collected、noticeCount、discovery 等 |

v0.2.0 修的四条(对应 2026-10-16 两份报障单)

1. 完成即注入:注册 systemPrompt.context({ name: 'freesub-completions' }),每次组装提示词时把 "已结束但未取回"的子代理报给发起它的那个会话(scope.id 对 owner)。同一会话最多重复注入 5 次; freesub_result 取回后立即停止。→ 不再需要人肉轮询。
2. 失败也注入:discovery / spawn / child-exit / timeout / killed 全部算终态,同样进通知。
3. cwd 不存在不再谎报 ENOENT:spawn 前校验 cwd 与可执行文件,错误里带 stage / code / path / spawnargs / 实际 cwd;返回体带 startup_failed: true 与 detail。
(根因:child_process.spawn 在 cwd 不存在时抛的就是 spawn <cmd> ENOENT,看起来像程序缺失。)
4. 事件流必有收尾 + meta 可判活:见上表。

离线验收(不经过宿主,可直接复跑)

装好后从一个会话里跑一条普通任务即可验收这三件事:正常任务返回 status=done; cwd 不存在时返回 status=error 且 error_stage=spawn(不会谎报成 ENOENT);完成通知在取回之后从 pending_notifications 里消失。

生效方式(重要)

改插件源码不会热重载(base bundle 的 hmr 默认只监听配置,不监听模块;且宿主按目录缓存已加载的模块)。
所以本文件改动后需要重启该实例。重启后页面访问 token 会变,用新 token 重新打开页面。

已知问题

- 默认 cwd 是插件进程的工作目录(通常是实例目录),不是会话工作区。需要特定目录时请显式传 cwd。
- 不要用 profile 补丁层覆盖运行中 bundle 的行配置:实测在 profiles/web/cordis.patch.yml 里按 id 覆盖 dsh-compact 这类已安装 bundle 的行不生效(组合产物 cordis.yml 里根本没有那一行)。
本插件同理——目前没有可调配置,只有一个 stateDir/maxConcurrent 的 patch 默认值。
- Qoder 安装目录里存在多份 Qoder CN.exe(根目录 / .qoder-versions\*),存在版本漂移; freesub_models 会回报实际使用的那一份路径,报错时请以它为准。

版本

- 0.1.0(index-v010.js,备份留档):完成通知缺失、cwd 不存在谎报 ENOENT。
- 0.2.0(index-v020.js,当前入口):见上。
预览分享卡片长什么样 ↓baldovinmarques391-design/dsh-qoder-subagent
分享 · DeepSeek Harness Hub
baldovinmarques391-design/dsh-qoder-subagent

调用 Qoder 免费模型派发子任务并留存运行记录

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部