D

dsh-expert-team

github.com/yangdcm/dsh-expert-team

v1.5.3 工具与效率 可执行外部程序发起网络请求写入文件

dsh「专家团」bundle:一句自然语言组建角色化多智能体「数字员工」团队,按九阶段门控流水线协作交付,实现者直接改代码并产出持久工件;带 live 团队浮层。 · Role-based multi-agent expert team for DeepSeek Harness: one sentence in, a staged and gated team delivery out.

该插件尚未翻译,显示作者原文。

dshdsh-plugindeepseekdeepseek-harnessmulti-agentai-agentsagent-teamorchestration
分类
tools
发布
2026-09-27
版本
v1.5.3

检测报告

关注度高。命中了不少能力模式,其中可能有需要留意的。逐条看下面的清单。
1高关注2需留意4一般17未命中
高关注需留意一般

能力清单

  • 可执行外部程序spawns-processes高关注2 处命中
    • lib/memory-backend.js:56import { execFile as execFileCb, spawn as spawnCb } from 'node:child_process';
    • lib/metrics/session-usage.js:23import { spawn } from 'node:child_process';
    • 看它调用哪些程序。调用本机已有的工具是常见做法。
  • 发起网络请求network需留意21 处命中
    • client.js:572return fetch('/plugins/dsh-expert-team/settings').then(function (r) {
    • client.js:599fetch('/plugins/dsh-expert-team/settings', {
    • client.js:2162fetch('/plugins/dsh-expert-team/settings', {
    • client.js:2178fetch('/plugins/dsh-expert-team/memory-backend', {
    • 看请求发往哪些域名。发往作者自己的后端是常见做法。
  • 写入文件writes-files需留意9 处命中
    • lib/host-state-file.js:94await fh.writeFile(body, 'utf8');
    • lib/host-state-file.js:99await rename(tmp, target); // 同目录 rename ⇒ 原子替换
    • lib/host-state-file.js:102try { await unlink(tmp); } catch { /* 临时文件可能压根没建起来 */ }
    • lib/host-state-file.js:144await mkdir(parent, { recursive: true, mode: dirMode });
    • 看写入位置。写自己的配置目录是正常的,写系统目录不是。
  • 读取文件reads-files一般25 处命中
    • lib/metrics/collect.js:19try { return JSON.parse(await readFile(p, 'utf8')); } catch { return null; }
    • lib/metrics/collect.js:36const entries = await readdir(root, { withFileTypes: true });
    • lib/metrics/collect.js:65try { state = JSON.parse(await readFile(join(dir, 'STATE.json'), 'utf8')); } catch { /* 缺件按 null */ }
    • lib/metrics/collect.js:66try { log = await readFile(join(dir, 'RUN.log.md'), 'utf8'); } catch { /* 缺件按空串 */ }
    • 读文件是绝大多数插件的正常工作方式,本身不构成顾虑。
  • 读取环境变量reads-env一般24 处命中
    • lib/hindsight-config-write.js:25* 事实来源:Hindsight 0.6.1 的配置真源是 `process.env.HINDSIGHT_CONFIG || ~/.hindsight/coding-agent.json`;
    • lib/hindsight-config-write.js:234* @param {object} [input.env] - 环境变量(默认 `process.env`,认 `HINDSIGHT_CONFIG`)。
    • lib/hindsight-config-write.js:239export async function saveHindsightConfig({ body, env = process.env, home, io } = {}) {
    • lib/hindsight-config.js:24* `process.env.HINDSIGHT_CONFIG || ~/.hindsight/coding-agent.json`(其 `dist/dsh.js:1301`),
    • 环境变量里常混有密钥。看它是否把整个 env 都读走。
  • 接触凭据或密钥credentials一般8 处命中
    • lib/artifact-writer.js:36/(^|\/)credentials(\.json)?$/i,
    • lib/artifact-writer.js:37/(^|\/)secrets?(\/|$)/i,
    • client.js:2274* ① **token 值不回显** —— 输入框是 password、保存后立刻清空,界面只显示"已配置/未配置";
    • client.js:2873h('input', { className: 'exp-hs-input', type: 'password', value: token, autoComplete: 'off', spellCheck: false,
    • 看它读取哪些凭据、发往哪里。用于登录自己的服务是正常的。
  • 动态加载模块dynamic-import一般4 处命中
    • lib/host-settings.js:167const load = typeof loadSchema === 'function' ? loadSchema : () => import('@deepseek-ai/schemastery');
    • lib/lead-toolface.js:445const loader = typeof loadScope === 'function' ? loadScope : () => import('@deepseek-ai/dsh-scope');
    • lib/metrics/session-usage.js:77const { zstdDecompressSync } = await import('node:zlib');
    • lib/metrics/session-usage.js:107const { zstdDecompressSync } = await import('node:zlib');
    • 动态导入本身无害,但会让依赖关系难以静态审阅。
逐条扫描明细
能力标识关注度命中次数
可执行外部程序spawns-processes高关注2
发起网络请求network需留意21
写入文件writes-files需留意9
读取文件reads-files一般25
读取环境变量reads-env一般24
接触凭据或密钥credentials一般8
动态加载模块dynamic-import一般4

这份报告的口径

扫描读的是包里的源码,全程不执行第三方代码。 本次读了 61 个文件,扫描于 2026-10-14。 命中次数只说明源码里出现过这类调用,不说明行为好坏——一个插件读写文件 500 次和 1 次 都会被记为「读取文件」。这是能力清单,不是信任评分,也不是安全结论: 没扫出来的能力可能只是写法没被规则覆盖。

依赖安全公告

已查询这个插件声明的全部依赖,没有匹配到已公开的安全公告。(含 DSH 框架包在内的 @deepseek-ai/* 不作查询——那是运行时自己的问题,不是插件的。)

← 返回全部插件