智能体团队美术包 Fish-under-sea/dsh-agent-teams-fish
DeepSeek Harnessv1.0.0DSH 插件(上游 NanmiCoder/dsh-agent-teams 的补充版):AgentTeams 多智能体团队协作 —— 自然语言组队、任务依赖 DAG、信箱通信、右侧栏树状监测…
数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
dsh plugin --profile web add @fish-under-sea/dsh-agent-teams-fish状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/21 02:57:49
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
查看扫描证据(共 52 处,展示前 45 条)
- 发起网络请求lib/client.js:514
const fetchState = runtime.fetchState ?? ((url, init) => fetch(url, init)); - 发起网络请求lib/client.js:1140
const response = await fetch(PLAN_URL, { - 发起网络请求lib/client.js:2835
const response = await fetch(ACTIVITY_HALT_URL, { - 读取本地文件scripts/doctor.mjs:8
return JSON.parse(readFileSync(path, 'utf8')) - 读取本地文件scripts/doctor.mjs:15
if (existsSync(candidate)) return realpathSync(candidate) - 读取本地文件scripts/doctor.mjs:27
const hostPath = existsSync(own) && manifest(own).name === '@deepseek-ai/dsh' - 读取本地文件lib/snapshot.js:162
entries = await readdir(root.stateRoot, { withFileTypes: true }); - 写入本地文件lib/state.js:195
await mkdir(join(dir, 'inbox'), { recursive: true }); - 读取本地文件lib/state.js:205
const raw = await readFile(join(stateRoot, teamId, 'team.json'), 'utf8'); - 读取本地文件lib/state.js:231
const raw = readFileSync(join(stateRoot, teamId, 'team.json'), 'utf8'); - 读取本地文件lib/state.js:265
return parseRetiredMemberIds(readFileSync(join(stateRoot, RETIRED_MEMBERS_FILE), 'utf8')); - 读取本地文件lib/state.js:275
return parseRetiredMemberIds(await readFile(join(stateRoot, RETIRED_MEMBERS_FILE), 'utf8')); - 写入本地文件lib/state.js:293
await mkdir(stateRoot, { recursive: true }); - 读取本地文件lib/state.js:308
entries = await readdir(stateRoot, { withFileTypes: true }); - 读取本地文件lib/state.js:344
entries = await readdir(stateRoot, { withFileTypes: true }); - 写入本地文件lib/state.js:382
await mkdir(join(stateRoot, teamId, 'inbox'), { recursive: true }); - 写入本地文件lib/state.js:593
await writeFile(temporary, content, { encoding: 'utf8', flag: 'wx' }); - 删除本地文件lib/state.js:596
await rm(temporary, { force: true }).catch(() => undefined); - 写入本地文件lib/state.js:600
rename: (from, to) => rename(from, to), - 写入本地文件lib/state.js:601
writeFile: (target, payload) => writeFile(target, payload, 'utf8'), - 删除本地文件lib/state.js:602
remove: (path) => rm(path, { force: true }), - 删除本地文件递归lib/state.js:1071
await rm(join(stateRoot, teamId), { recursive: true, force: true }); - 删除本地文件递归lib/state.js:1144
await rm(previous, { recursive: true, force: true }).catch(() => undefined); - 读取本地文件lib/capabilities.js:19
entries = readdirSync(root, { withFileTypes: true }); - 读取本地文件lib/artwork-source.js:201
return { path, contentType, data: await readFile(path) }; - 读取本地文件lib/artwork-source.js:240
return { path, contentType: packagedArtworkContentType(name), data: await readFile(path) }; - 读取本地文件scripts/compatibility.mjs:4
export const policy = JSON.parse(readFileSync(new URL('../compatibility.json', import.meta.url), 'utf8')) - 读取本地文件scripts/compatibility.mjs:6
export const workspacePolicy = JSON.parse(readFileSync(new URL('../pnpm-workspace.yaml', import.meta.url), 'utf8')) - 读取本地文件scripts/compatibility.mjs:107
const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')) - 读取本地文件lib/artifacts.js:106
stats = lstatSync(absolute); - 读取本地文件lib/artifacts.js:127
stats = statSync(absolute); - 读取本地文件lib/artifacts.js:192
entries = readdirSync(join(input.workspace, current), { withFileTypes: true }); - 发起网络请求lib/client/ActivityPanel.js:354
const response = await fetch(ACTIVITY_HALT_URL, { - 发起网络请求lib/client/StagingPlanEditor.js:22
const response = await fetch(PLAN_URL, { - 发起网络请求lib/client/activity-monitor.js:133
const fetchState = runtime.fetchState ?? ((url, init) => fetch(url, init)); - 读取本地文件scripts/legacy-session-source-repair.mjs:63
return createHash('sha256').update(readFileSync(path)).digest('hex') - 读取本地文件scripts/legacy-session-source-repair.mjs:88
if (!existsSync(sessionDir)) return [] - 读取本地文件scripts/legacy-session-source-repair.mjs:89
return readdirSync(sessionDir) - 读取本地文件scripts/legacy-session-source-repair.mjs:165
const raw = readFileSync(path) - 读取本地文件scripts/legacy-session-source-repair.mjs:220
if (existsSync(publishedPath)) return fail(`${publishedName} already exists; refusing to overwrite it`) - 读取本地文件scripts/legacy-session-source-repair.mjs:242
sourceBytes: readFileSync(join(sessionDir, source.name)).byteLength, - 写入本地文件scripts/legacy-session-source-repair.mjs:288
copyFileSync(sourcePath, backupPath, fsConstants.COPYFILE_EXCL) - 写入本地文件scripts/legacy-session-source-repair.mjs:315
writeFileSync(temporaryPath, encoded, { flag: 'wx' }) - 删除本地文件scripts/legacy-session-source-repair.mjs:323
rmSync(temporaryPath, { force: true }) - 删除本地文件scripts/legacy-session-source-repair.mjs:327
rmSync(temporaryPath, { force: true })
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
@deepseek-ai/cordis@deepseek-ai/dsh@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-chat@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-model-selection@deepseek-ai/dsh-client-ui-primitives给这个插件打分还没有人投票↓
功能亮点
- 按模型切换团队头像
- 自带厂商与岗位头像
- 支持自定义美术目录
展开完整介绍(142 字)↓
DSH 插件(上游 NanmiCoder/dsh-agent-teams 的补充版):AgentTeams 多智能体团队协作 —— 自然语言组队、任务依赖 DAG、信箱通信、右侧栏树状监测;随包自带 15 厂商 × 10 岗位头像与 15 个厂商徽标,支持自定义美术目录与中文岗位名。
最近更新
在 GitHub 查看全部 →README
由 DeepSeek 最新模型翻译生成展开完整文档(README 剩余 1 节)
@fish-under-sea/dsh-agent-teams-fish 1.0.2 · 持久团队协作与 Fish 厂商美术 安装与兼容 dsh plugin --profile <profile> add @fish-under-sea/dsh-agent-teams-fish@1.0.2 @fish-under-sea/dsh-fish@1.0.2 也提供本插件,不要重复挂载。安装后重启 DSH。Node 要求 ^22.19.0 || >=24。推荐宿主 0.2.0-rc.2;0.2.1-rc.2 为预览支持。精确支持列表以 compatibility.json 为唯一事实源,不要用桌面应用版本推断核心版本。 功能 - 先规划后审批:成员编排、任务依赖 DAG、信箱通信与进度监测。 - 持久成员、失败处理、重派能力凭据、停机与恢复,遵守宿主路由和模型白名单。 - 可选质量门:需求、实现、验证、审查、修复及集成,审查与产物绑定。 - Fish 美术:十八厂商识别,厂商与岗位头像、自定义 artworkDir、商标徽标及队长模型路由头像。缺图按「厂商+岗位 → 厂商 → 岗位」降级,不代表每个厂商都有全部岗位图。 - 新宿主预设型成员组合在子上下文安装人设和工具限制;缺失或损坏的限制在派发前拒绝。 迁移与配置 旧 npm 名 dsh-agent-teams-fish 改为当前 scoped 名。更新直接依赖、bundle 名和覆盖行的 name,保留 id: agent-teams;不要同时加载两个来源。状态目录默认是工作区 .agent-teams,memberProvider 默认 spawn,自定义 artworkDir 使用本机路径。配置字段与团队数据格式不因本次包名整理改变。 先安全备份再迁移。成员使用真实模型额度;工具策略由部署方声明,不能以改名绕过。不会自动修复损坏日志、删除历史事件或重发中断任务。旧会话损坏应独立诊断。 开发检查 以下命令按需手动执行。GitHub 验证仅保留手动触发,不再由 push、PR 或发布触发;标签发布直接使用已提交的构建产物,不依赖测试矩阵。已存在的 npm 版本跳过重复发布。本地 prepublishOnly 自动构建和验证钩子已移除,发布前是否构建与检查由维护者决定。插件运行时的权限确认与可选质量任务规则不变。 pnpm install --frozen-lockfile pnpm typecheck pnpm build pnpm verify 诊断器 dsh-agent-teams-doctor 只检查清单和依赖闭包,不证明运行行为或识别当前进程。真实宿主验收与 UI 检查需要另行执行。 来源与记录 基于 NanmiCoder/dsh-agent-teams (原作者 Relakkes / 程序员阿江). MIT. 保留上游 README、NOTICE 和历史发布说明。1.0.2 统一包名与版本,不表示已合并上游最新 HEAD。 - 1.0.2 - 1.0.1 - 1.0.0 - 历史记录 - NOTICE
预览分享卡片长什么样 ↓
DSH 插件(上游 NanmiCoder/dsh-agent-teams 的补充版):AgentTeams 多智能体团队协作 —— 自然语言组队、任务依赖 DAG、信箱通信、右侧栏树状监测…