在侧栏内嵌管理面板,启停服务并打开主会话
32.7/100
综合分
4
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add deepseekv41flash/dsh-superagent-panel该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · other
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 15 处,展示前 15 条)
- 读取本地文件lib/index.js:106
if (!existsSync(script)) { - 执行外部命令来自配置/变量lib/index.js:110
execFile(process.execPath, [script, ...args], { - 读取本地文件lib/index.js:123
const logs = readdirSync(dir) - 读取本地文件lib/index.js:126
.sort((a, b) => statSync(b).mtimeMs - statSync(a).mtimeMs) - 读取本地文件lib/index.js:128
const text = readFileSync(log, 'utf8') - 发起网络请求lib/index.js:139
const response = await fetch(instance.url.replace(/ +$/, '') + '/orchestrator/api/state', { - 发起网络请求lib/index.js:189
const response = await fetch(tokenUrl, { redirect: 'manual' }) - 读取本地文件lib/index.js:273
if (existsSync(file) && statSync(file).size > 200_000) return - 读取本地文件lib/index.js:273
if (existsSync(file) && statSync(file).size > 200_000) return - 写入本地文件lib/index.js:274
appendFileSync(file, `${new Date().toISOString()} ${req.method} ${sub} -> ${code}\n`) - 写入本地文件lib/index.js:346
try { appendFileSync(join(settings.repo, '.artifacts', 'panel-diag.log'), `${new Date().toISOString()} id=${id ?? '-'} ${text}\n`) } catch { } - 写入本地文件lib/index.js:375
appendFileSync(join(settings.repo, '.artifacts', 'panel-proxy.log'), - 发起网络请求lib/client.js:208
const sendDiag = (event, payload) => fetch(API + '/diag', { - 发起网络请求lib/client.js:297
return fetch(API + '/status' + suffix, { headers: HEADERS, cache: 'no-store' }).then(async (response) => { - 发起网络请求lib/client.js:439
const response = await fetch(API + '/action', {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-superagent-panel
English · 简体中文
一个 DSH(DeepSeek Harness)插件:在 DSH NEXT 里给 dsh-superagent 加一个侧栏入口,并把 Superagent 自己的完整管理面板嵌进同一个窗口。
它解决的是内嵌的最后一段路:DSH NEXT 的页面跑在自定义协议 dsh-app://app 下,Chromium 静默拒绝它嵌入 http://127.0.0.1:3082;而就算绕过这一点,DSH 客户端的事件长连接在跨协议代理的源下也建立不起来(页面会一直显示「没有响应 / 重新连接中」)。本插件因此:
1. 在 DSH NEXT 宿主里开一条同源反向代理,把 http://127.0.0.1:3082 搬到 dsh-app://app/@dsh-superagent-panel/proxy/…
展开完整文档(README 剩余 1 节)
dsh-superagent-panel
English · 简体中文
一个 DSH(DeepSeek Harness)插件:在 DSH NEXT 里给 dsh-superagent 加一个侧栏入口,并把 Superagent 自己的完整管理面板嵌进同一个窗口。
它解决的是内嵌的最后一段路:DSH NEXT 的页面跑在自定义协议 dsh-app://app 下,Chromium 静默拒绝它嵌入 http://127.0.0.1:3082;而就算绕过这一点,DSH 客户端的事件长连接在跨协议代理的源下也建立不起来(页面会一直显示「没有响应 / 重新连接中」)。本插件因此:
1. 在 DSH NEXT 宿主里开一条同源反向代理,把 http://127.0.0.1:3082 搬到 dsh-app://app/@dsh-superagent-panel/proxy/… 下;
2. 代理里剥掉会被服务拒绝的跨站头(Origin 等),并用最新日志里的 token URL 换一次上游 cookie;
3. iframe 指向 Superagent 侧插件 dsh-superagent-bridge 提供的独立面板页(它的 React 应用只走 HTTP 轮询,不依赖 DSH 长连接);
4. 顺带把 DSH 的主题令牌用 postMessage 注入 iframe——同源 iframe 里的独立文档拿不到宿主 CSS 变量。
DSH NEXT (dsh-app://app)
├── sidebar.panellist entry ──→ main(key=superagent) page
│ ├── toolbar: 实例切换 / 状态 / 打开主 Session / 刷新 / 停止|启动 / 重启 / 新标签 │ ├── iframe <proxy>/<id>/superagent-bridge/?lang=zh │ └── postMessage: theme tokens ↑ / open-session ↓ └── host routes ├── /@dsh-superagent-panel/api/status?id= → 运行 scripts/dsh-superagent.mjs status ├── /@dsh-superagent-panel/api/action → start / stop / restart(body 带 id) └── /@dsh-superagent-panel/proxy/<id>/* → 对应实例的 http://127.0.0.1:<port>/*
前置
| 项 | 说明 |
| DSH 宿主 | 桌面端(DSH NEXT)或 Web 端(dsh web)都行;本插件不依赖 Electron,Web 端反而少了跨协议 iframe 的问题 |
| dsh-superagent | 已按原型搭好、服务跑在 profile superagent、端口 3082(Windows 适配见 superagent-playground 的补丁) |
| 服务侧桥接插件 | dsh-superagent-bridge 必须装在跑服务那个 profile 里,否则 iframe 没有页面可显示 |
安装
1) 装进 DSH NEXT 所在的 profile(profile 名以本机为准,桌面端通常是 desktop)
dsh plugin --profile desktop add dsh-superagent-panel
2) 登记到该 profile 的 dsh.profile.bundles(设置页的插件管理器会自动写,命令行需要手动加)
"dsh.profile.bundles": [ ..., "dsh-superagent-panel" ]
3) 重启 DSH NEXT,侧栏出现 Superagent 图标
用注入器做开发态热挂载:
dev_inject_plugin { "dir": "<本仓库路径>" }
配置
host 半的默认值可以在 profile patch 的插件条目里覆盖,也可以用环境变量。
单实例(与 0.1.x 完全一致):
- id: dsh-superagent-panel
name: dsh-superagent-panel
config:
repo: 'D:\work\dsh-superagent-prototype' # 含 scripts/dsh-superagent.mjs 的 checkout profile: superagent # 服务运行的 DSH profile url: 'http://127.0.0.1:3082' # 管理 API 源 autoStart: true
多实例:给 instances 数组即可在同一个 DSH 宿主里并行管理多个实例:
- id: dsh-superagent-panel
name: dsh-superagent-panel
config:
autoStartDelayMs: 8000
instances:
- id: superagent # 实例标识:唯一、用于接口和代理路径 label: 主实例 # 工具条上显示的名字,缺省用 id repo: 'D:\work\dsh-superagent-prototype' profile: superagent url: 'http://127.0.0.1:3082' autoStart: true
- id: superagent2
label: 第二实例 repo: 'D:\work\dsh-superagent-prototype' profile: superagent2 url: 'http://127.0.0.1:3083' autoStart: false # 不随宿主自动启动;仍可手动启动
| 键 | 默认值 |
| instances | 不设置时按单实例运行(id=default);数组中每项支持 id / label / repo / profile / url / autoStart |
| repo | $DSH_SUPERAGENT_REPO,否则 <home>/src/dsh-superagent-prototype;也是 instances 中未填项的回退值 |
| profile | superagent;也是 instances 中未填项的回退值 |
| url | http://127.0.0.1:3082;也是 instances 中未填项的回退值 |
| autoStart | false;设 true 后,DSH NEXT 启动并加载本插件时会自动拉起未运行的服务(宿主机重启后与 DSH NEXT 同步启动);每个实例可用自己的 autoStart 覆盖 |
| autoStartDelayMs | 8000,等宿主就绪后再启动(所有实例共用) |
没有 instances 时,单实例的接口与 <proxy>/ 代理路径和 0.1.4 保持一致;配置多个实例后,每个实例各自跑自己的 scripts/dsh-superagent.mjs,停止其中一个不会影响其它实例。
开机后怎么启动
宿主机重启后,服务不会自己启动。三种方式任选:
1) 面板:打开 Superagent → 点「启动」
2) 命令:
node scripts/dsh-superagent.mjs start --profile superagent
3) 让插件随 DSH NEXT 一起启动(推荐):在 DSH NEXT 所用 profile 的 cordis.patch.yml 末尾加:
- id: dsh-superagent-panel
name: dsh-superagent-panel
config:
autoStart: true
autoStart 只影响「未运行」的情况:手动 stop 过的服务会留下 manually-stopped 标记,插件不会把它自动拉起来;要恢复自动启动,先 start 一次(或删掉该标记)。
配置多个实例时,每个实例分别判断(可以只给其中几个实例设 autoStart: true)。
Web 端
同一份插件在 dsh web 的宿主里也能用(dsh.client.platform 本来就是 web):
- 把本插件装进 dsh web 所用的那个 profile(--profile 参数对应的 profile,默认 web): dsh plugin --profile web add dsh-superagent-panel,并确认该 profile 的 dsh.profile.bundles 里有它;
- 浏览器打开 dsh web 打印的地址,侧栏同样出现 Superagent 入口,内嵌面板、主题注入、「打开主 Session」、启停/重启、autoStart 都照常工作;
- Web 页面的源是 http(s)://<host>:<port>,同源代理后的 iframe 天然可用——之前桌面端遇到的 dsh-app:// 跨协议拦截不存在;即使 Web 端走 HTTPS,代理在服务端转发到 http://127.0.0.1:3082,也不会触发混合内容拦截;
- 管理接口的校验允许两种来源:回环地址,或携带同源 Origin 的浏览器请求(防止跨站伪造)。
界面与行为
- 侧栏图标与「自动化任务」同排(sidebar.panellist,order 20),点击切到主面板。
- 工具条:实例切换(只有 1 个实例时隐藏,每项显示 label + 状态徽标)、运行状态徽标、打开主 Session(uiWorkspace.openSession(masterId))、刷新、停止/启动、重启、新标签(用 panel token 在新标签打开原面板)。
- 状态轮询、刷新、启停/重启、打开主 Session、iframe 都作用于当前选中的实例;选中的实例记在 localStorage,刷新/重开后保持。
- 内嵌面板 = Superagent 原面板的全部内容(概览 / 来源 / 触发 / 评估 / 执行 / 设置,含工单与线程详情页、搜索、术语表)。
- 面板里的「打开主 Session」通过 postMessage 回到外层,由 uiWorkspace.openSession 真正跳转。
- 主题:外层读取 --dsw-alias- 计算值后 postMessage 给 iframe;桥接页自带深色兜底,注入失败也能看。
- 安全:/api/ 只接受本机 Host + x-dsh-superagent-panel: 1 头,避免跨站请求误触发起停;代理会剥掉 Origin/Referer/Sec-Fetch-/x-dsh-desktop-renderer。
文件结构
dsh-superagent-panel/
├── package.json # dsh.bundle.patch + dsh.client(platform=web)
├── cordis.patch.yml # bundle 层:insert id=dsh-superagent-panel ├── lib/index.js # host 半:按实例的状态/动作接口 + 同源反向代理 + 多实例 autoStart ├── lib/client.js # client 半:侧栏入口 + 主面板(实例切换、iframe、工具条、主题桥) └── scripts/check.sh # 零构建校验:语法 + 导出 + npm 载荷
纯 JavaScript,无构建步骤。
已验证(2026-11-01,DSH 0.2.1-rc.4 / desktop-next 2.0.21-next,Windows 11)
| 项 | 结果 |
| 侧栏入口 | 与「自动化任务」同排出现,点击切到主面板 |
| 同源 iframe | dsh-app://app 下加载 <proxy>/superagent-bridge/ 成功;控制台无 error |
| 内嵌面板 | 六个页签、工单详情、线程详情、搜索、术语表全部可用 |
| 主题注入 | --dsw-alias- 由外层 postMessage;失败时深色兜底 |
| 打开主 Session | 面板内按钮 → postMessage → 外层 uiWorkspace.openSession,跳到 orchestrator 会话 |
| 启停重启 | 调用 checkout 里的 scripts/dsh-superagent.mjs,返回退出码与最新状态 |
| 服务未运行时 | 显示「启动」按钮,不产生白屏 |
| 多实例切换 | 双实例(3082 superagent + 3083 superagent2)配置下,切换实例后状态与 iframe 各自对应;/status?id= 返回各自的 masterId;选择写入 localStorage |
| 单实例兼容 | 无 instances 时行为与 0.1.4 一致:不显示切换器,旧 <proxy>/ 路径仍可用 |
已知限制:内嵌页的「部署」设置组是只读的——它依赖 DSH Plugin Manager 的 config form 服务,独立页面里不可用(与在 DSH 内直接打开该面板时的表现一致)。
配套
- 服务侧:dsh-superagent-bridge
- Superagent Windows 适配与踩坑记录:superagent-playground
许可
MIT。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
deepseekv41flash/dsh-superagent-panel
在侧栏内嵌管理面板,启停服务并打开主会话
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,148已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7
这是你的仓库?认领条目