让外部 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 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jhhjy/dsh-ai-bridge
让外部 AI 通过本机 HTTP 与当前会话双向收发提示词
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。