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

AI 接线板 jhhjy/dsh-ai-bridge

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

让外部 AI 通过本机 HTTP 与当前会话双向收发提示词

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

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

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

状态速览

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

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 13 处,展示前 13 条)
  • 写入本地文件
    lib/index.js:84
    mkdirSync(dirOf(), { recursive: true })
  • 读取本地文件
    lib/index.js:92
    if (!existsSync(file)) return []
  • 读取本地文件
    lib/index.js:93
    const raw = readFileSync(file, 'utf8')
  • 写入本地文件
    lib/index.js:112
    appendFileSync(file, `${JSON.stringify(value)}\n`, 'utf8')
  • 读取本地文件
    lib/index.js:118
    if (existsSync(statePath())) {
  • 读取本地文件
    lib/index.js:119
    const parsed = JSON.parse(readFileSync(statePath(), 'utf8'))
  • 写入本地文件
    lib/index.js:144
    writeFileSync(tmp, `${JSON.stringify(state.config, null, 2)}\n`, 'utf8')
  • 读取本地文件
    lib/index.js:145
    writeFileSync(file, readFileSync(tmp))
  • 写入本地文件
    lib/index.js:145
    writeFileSync(file, readFileSync(tmp))
  • 写入本地文件
    lib/index.js:537
    writeFileSync(inboxPath(), state.inbox.map((entry) => JSON.stringify(entry)).join('\n') + '\n', 'utf8')
  • 发起网络请求
    lib/client.js:46
    return fetch(API + path, { cache: 'no-store' }).then(readJson)
  • 发起网络请求
    lib/client.js:52
    return fetch(API + path, {
  • 写入剪贴板
    lib/client.js:74
    return navigator.clipboard.writeText(text)
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

AI 接线板:让别的 AI 通过本机 HTTP 把提示词递进 DeepSeek Harness 会话,你的回复也同步到 outbox 供对方读取(双向)。在 DSH 会话和任意其他 AI 之间,通过本机 HTTP 双向转发提示词。

README

由 DeepSeek 最新模型翻译生成
dsh-ai-bridge · AI 接线板 让别的 AI 通过本机 HTTP 把提示词递进 DeepSeek Harness 的会话,我的回复也同步到 outbox 供对方读取 —— 双向。 给 DeepSeek Harness 用的双向提示词中继:任何外部 AI(另一个聊天窗口、脚本、自动化流程)都能通过本机 HTTP 服务把提示词 POST 进一个正在运行的 DSH 会话,再从 outbox 读回会话的回复。 它解决什么问题 单窗口里只有一个模型在跑,但现实里你常有两个 AI 同时干活:一个在 DSH 里改代码,另一个在别的窗口里查资料/写需求。没有这个插件时,你只能人肉复制粘贴。 装上之后,另一个 AI 直接调用两个接口: | 方向 | 机制 | 接口 | | 外部 AI → 我 | 入站队列;投递时变成这个会话里真正的用户消息(会唤醒 agent) | POST /api/ai-bridge/post | | 我 → 外部 AI | 我的每条回复自动进 outbox;也能主动写一条 | GET /api/ai-bridge/outbox | 外部来的话会被明确标注成「【外部 AI 输入 · 来自 X】」,不会被误当成用户本人说的。 安装 插件是纯 JS 的 Cordis bundle(宿主半 + 浏览器半),不需要构建。
展开完整文档(README 剩余 1 节)
dsh-ai-bridge · AI 接线板

让别的 AI 通过本机 HTTP 把提示词递进 DeepSeek Harness 的会话,我的回复也同步到 outbox 供对方读取 —— 双向。

给 DeepSeek Harness 用的双向提示词中继:任何外部 AI(另一个聊天窗口、脚本、自动化流程)都能通过本机 HTTP 服务把提示词 POST 进一个正在运行的 DSH 会话,再从 outbox 读回会话的回复。

它解决什么问题

单窗口里只有一个模型在跑,但现实里你常有两个 AI 同时干活:一个在 DSH 里改代码,另一个在别的窗口里查资料/写需求。没有这个插件时,你只能人肉复制粘贴。

装上之后,另一个 AI 直接调用两个接口:

| 方向 | 机制 | 接口 |
| 外部 AI → 我 | 入站队列;投递时变成这个会话里真正的用户消息(会唤醒 agent) | POST /api/ai-bridge/post |
| 我 → 外部 AI | 我的每条回复自动进 outbox;也能主动写一条 | GET /api/ai-bridge/outbox |

外部来的话会被明确标注成「【外部 AI 输入 · 来自 X】」,不会被误当成用户本人说的。

安装

插件是纯 JS 的 Cordis bundle(宿主半 + 浏览器半),不需要构建。

1. 拿到源码

git clone https://github.com/OWNER/dsh-ai-bridge.git "$env:USERPROFILE\.dsh\plugins\dsh-ai-bridge"

(或者直接把这个仓库的 zip 解压到 %USERPROFILE%\.dsh\plugins\dsh-ai-bridge。)

2. 挂进 profile

方式 A(推荐,让 agent 装):在 DSH 里对 agent 说「把这个本地包装成插件」,它会用 plugin_manager 的 install_bundle 指向该目录,走 link 安装。

方式 B(手工两步):编辑 %USERPROFILE%\.dsh\profiles\<profile>\package.json

- dependencies 加一行 "dsh-ai-bridge": "link:../../plugins/dsh-ai-bridge"
- dsh.profile.bundles 加一行 "dsh-ai-bridge"

然后重开 DSH。

3. 使用

设置 → 接线板。第一次打开会看到「接入说明」,点「复制给另一个 AI」,把那段话(地址 + 令牌 + 示例)贴到另一个窗口,对面照着做就能说话。

设置页

- 目标会话:默认「跟随最近活跃会话」,也可以钉死某一个;
- 三个开关:启用 / 收到就自动投递 / 我的回复同步到 outbox;
- 入站队列:逐条「投递进会话」或「丢弃」,带状态(未投递 / 已投递 / 已处理);
- 出站列表:看我的回复、复制;
- 主动发一条:写进 outbox,对方按时间戳增量拉取;
- 换令牌:一键轮换。

HTTP API

基础地址:http://127.0.0.1:<DSH 端口>/api/ai-bridge,写操作都要 x-bridge-token(也接受 ?token=)。

| 方法 | 路径 | 作用 |
| GET | /state | 全量状态(开关、目标会话、队列、令牌、会话列表) |
| POST | /post | 外部 AI 发提示词 {from, text},按配置自动投递 |
| GET | /outbox?since=<ms> | 按时间戳增量拉我的消息 |
| POST | /reply | 我这边主动写一条给出站(也由模型工具 ai_bridge 调用) |
| POST | /deliver | 把某条入站消息立刻投递给模型 {id} |
| POST | /ack | 把入站消息标记为已处理 {ids: []} |
| POST | /config | 改开关 / 目标会话 |
| POST | /rotate-token | 换令牌 |
| GET | /diag | 运行时自检(目标会话、agent 方法、投递通道) |

中文必须走 UTF-8

最常见的坑:发送端把字符串按 ANSI/GBK 编码,对面收到的全是 ???。正确姿势——先转字节:

$json = '{"from":"Claude","text":"看一下这个报错"}'
$bytes = [System.Text.Encoding]::UTF8.GetBytes($json)
Invoke-RestMethod -Method Post -Uri "http://127.0.0.1:PORT/api/ai-bridge/post"
-Headers @{"x-bridge-token"="<TOKEN>"}
-ContentType "application/json; charset=utf-8" -Body $bytes

curl:curl.exe -X POST ... -H "content-type: application/json; charset=utf-8" --data-binary "@body.json"。

投递是怎么实现的

优先走官方入口 sessionController.prompt({ sessionId, mode:'queue', content:[{type:'text', text}] }) —— 这就是一条真正的用户消息,会唤起 agent;该服务不可用时退化为 agent.inject() + agent.followup()。

回复同步监听 session/event 的 assistant/message,只处理目标会话,文本上限 16k。

安全与数据

- 服务只在 DSH 自己的 loopback HTTP 上,不额外开端口、不对外暴露;
- 写接口校验令牌,可随时轮换;
- 请求体上限 1 MB,单条文本上限 16k;
- 数据落在 <DSH_HOME>/ai-bridge/:state.json + inbox.jsonl + outbox.jsonl(追加写、坏行跳过)。

兼容性

- 需要 DSH 提供 webServer(同源 HTTP);sessionController / agents / sessions 都是可选读取;
- 浏览器半侧用 settings.section 槽位,宿主不提供该槽位的旧版本上只是页面不出现,投递仍可用。

卸载

从配置档的 dsh.profile.bundles / dependencies 删掉两行,删掉 node_modules/dsh-ai-bridge,重启即可。数据目录可保留。

License

MIT
预览分享卡片长什么样 ↓jhhjy/dsh-ai-bridge
分享 · DeepSeek Harness Hub
jhhjy/dsh-ai-bridge

让外部 AI 通过本机 HTTP 与当前会话双向收发提示词

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