Koishi 会话桥接 FloraAurella/dsh-plugin-koishi
DeepSeek Harness把 Koishi 频道消息安全转发给 Agent 并回传回复
28.4/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/8/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add FloraAurella/dsh-plugin-koishi该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 81 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包@dsh-plugin-koishi/workspace(未发布到 npm,仅可源码安装)
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/8/30 10:55:17
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
- 发起网络请求packages/dsh-plugin-koishi/src/routing.test.ts:81
formatPrompt({ ...request("Alice"), conversation: direct }, true), - 发起网络请求packages/dsh-plugin-koishi/src/server.test.ts:26
const unauthorized = await fetch(`${server.address()}/healthz`); - 发起网络请求packages/dsh-plugin-koishi/src/server.test.ts:147
return fetch(url, { - 发起网络请求packages/koishi-plugin-dsh-bridge/src/client.ts:55
const value = await this.request(this.config.messagePath, "POST", request); - 发起网络请求packages/koishi-plugin-dsh-bridge/src/client.ts:69
const value = await this.request(this.config.resetPath, "POST", request); - 发起网络请求packages/koishi-plugin-dsh-bridge/src/client.ts:82
const value = await this.request(this.config.healthPath, "GET");
扫描于 2026/11/3(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 转发频道消息给Agent
- 回传Agent回复
DeepSeek Harness 与 Koishi 的安全双端文本会话桥接插件
README
由 DeepSeek 最新模型翻译生成dsh-plugin-koishi
CI
License: MIT
Node.js
dsh-plugin-koishi 是一个双端桥接项目:DeepSeek Harness 侧运行带鉴权的消息网关,Koishi 侧通过伴侣插件把经过允许和触发判断的文本会话转发给 Harness Agent,再把最终文本回复送回原会话。
这是本系列的第二个项目。第一个项目 koishi-plugin-adapter-harness 由 Koishi 启动和管理独立 Harness 子进程;本项目反转所有权,由已经运行的 Harness 持有 Agent 和 Session,Koishi 只作为消息入口。两者适合不同部署方式,并不互相替代。
[!IMPORTANT]
当前仓库完成的是 GitHub 源码开源与可发布 npm 包产物验证,不代表两个包已经发布到 npm Registry。首次使用请按“从源码安装”构建并安装本地包目录。
展开完整文档(README 剩余 1 节)
dsh-plugin-koishi
CI
License: MIT
Node.js
dsh-plugin-koishi 是一个双端桥接项目:DeepSeek Harness 侧运行带鉴权的消息网关,Koishi 侧通过伴侣插件把经过允许和触发判断的文本会话转发给 Harness Agent,再把最终文本回复送回原会话。
这是本系列的第二个项目。第一个项目 koishi-plugin-adapter-harness 由 Koishi 启动和管理独立 Harness 子进程;本项目反转所有权,由已经运行的 Harness 持有 Agent 和 Session,Koishi 只作为消息入口。两者适合不同部署方式,并不互相替代。
[!IMPORTANT]
当前仓库完成的是 GitHub 源码开源与可发布 npm 包产物验证,不代表两个包已经发布到 npm Registry。首次使用请按“从源码安装”构建并安装本地包目录。
项目组成
| 包 | 运行位置 | 主要职责 |
| dsh-plugin-koishi | DeepSeek Harness | Bearer Token 鉴权、严格协议校验、允许频道复核、Agent 创建、每会话 FIFO、超时取消、请求去重、会话回收 |
| koishi-plugin-dsh-bridge | Koishi | 允许频道与触发判断、脱离 live Session、HTTP 转发、错误反馈、dsh.reset 命令 |
核心特性
- 双重默认拒绝:Harness 与 Koishi 两端的 allowedChannels 默认都是空数组,未显式配置时不接收任何会话。
- 安全连接基线:Harness 默认只监听 127.0.0.1;共享 Token 至少 32 个字符;Koishi 默认拒绝向非本机地址发送明文 HTTP。
- 严格协议:请求版本、字段集合、标识符、输入长度、Content-Type 和请求体大小都在 HTTP 边界验证。
- 会话隔离:支持 channel、user、channel-user 三种范围;平台原始 ID 只参与 SHA-256 派生,不出现在 Harness Session ID 中。
- 明确并发:同一会话严格串行,不同会话可以并行;每会话排队数和全局会话数都有上限。
- 幂等重试:同一会话中的相同 requestId 在 TTL 内复用同一结果,不会重复启动模型回合。
- 可控故障:超时会取消并淘汰当前 Agent,下一条消息使用新 Session 代次;重置、空闲回收和关闭都释放持有的 Agent Handle。
- 日志最小化:不记录 Token、完整用户消息、原始频道 ID 或用户 ID;诊断只包含平台名、错误类型和不可逆短指纹。
- 双格式 Koishi 产物:伴侣包同时提供 ESM、CommonJS 和对应类型声明;Harness 包保持 ESM。
- 独立安装:共享协议会内联到 Koishi 伴侣产物,Koishi 宿主不需要安装 Harness 端包。
架构概览
flowchart LR
KS["Koishi live Session"] --> KR["触发规则 + 允许频道"]
KR --> KD["脱离 Session 的 JSON 请求"]
KD -->|"Bearer Token / HTTP(S)"| HG["DSH Koishi Gateway"]
HG --> HV["协议校验 + 允许频道复核"]
HV --> SP["按会话隔离的有界 FIFO"]
SP --> HA["Harness Agent + Session log"]
HA --> FR["最终 assistant/message 文本"]
FR --> KS
详细的数据流、生命周期和错误语义见 架构说明。
环境要求
- Node.js ^22.19.0 或 >=24.0.0
- DeepSeek Harness 包 0.1.0-rc.6
- @deepseek-ai/cordis 4.0.1
- Koishi ^4.18.11
- 一个由 Harness 已加载的模型 Provider;示例使用 DeepSeek Provider
- 同一个随机共享 Token;推荐 64 个十六进制字符
Harness 仍处于 RC 阶段,本项目把相关开发与 Peer 兼容范围精确固定到 0.1.0-rc.6。升级 Harness 时必须重新执行完整检查。
快速开始
1. 克隆并构建
git clone https://github.com/nazidada/dsh-plugin-koishi.git
cd dsh-plugin-koishi
npm ci --ignore-scripts
npm run check
npm run check 会依次执行 lint、格式检查、严格类型检查、测试、构建、publint 和干跑打包清单检查,不会调用真实模型。
2. 生成共享 Token
bash
openssl rand -hex 32
将结果分别注入 Harness 进程和 Koishi 进程: bash
export DSH_KOISHI_TOKEN="刚生成的 64 位十六进制字符串"
不要把真实 Token 写进 cordis.yml、koishi.yml、Issue、日志或 Git 历史。
3. 安装 Harness 端包
在承载 Harness Runtime 的项目中安装构建后的本地包: bash
npm install /absolute/path/to/dsh-plugin-koishi/packages/dsh-plugin-koishi
把下面的网关条目加入现有 Harness 组合;Provider 与 Agent Spine 仍由现有 Runtime 负责: yaml
- id: koishi-gateway
name: dsh-plugin-koishi
config:
host: 127.0.0.1
port: 8787
provider: deepseek-official
model: deepseek-v4-flash
sessionScope: channel
allowedChannels:
- platform: onebot
channelId: "123456"
isDirect: false
完整的无工具聊天组合见 examples/dsh/cordis.yml,程序化启动方式见 examples/dsh/runtime.mjs。
[!WARNING]
网关创建的 Agent 继承当前 Harness 组合中的全部工具与权限。如果 Runtime 已加载 Bash、文件写入、子代理或无人值守工具,来自聊天平台的消息也可能驱动这些能力。普通聊天部署建议使用示例中的无工具 Agent Spine,或单独审计 sandbox、approval、工作目录和 Provider。
4. 安装 Koishi 端包
在 Koishi 应用目录安装构建后的伴侣包: bash
npm install /absolute/path/to/dsh-plugin-koishi/packages/koishi-plugin-dsh-bridge
在 koishi.yml 中启用短名 dsh-bridge: yaml plugins: dsh-bridge: baseURL: http://127.0.0.1:8787 trigger: direct-and-mention allowedChannels:
- platform: onebot
channelId: "123456"
isDirect: false
两端 allowedChannels 应保持一致。默认 eagerCheck: true,因此建议先启动 Harness,再启动 Koishi。完整示例见 examples/koishi/koishi.yml。
5. 验证网关
健康接口也要求 Token,用于同时验证连通性和凭据: bash
curl --fail-with-body \
-H "Authorization: Bearer ${DSH_KOISHI_TOKEN}" \
http://127.0.0.1:8787/healthz
预期返回: json { "ok": true, "version": 1, "service": "dsh-plugin-koishi", "sessions": 0, "activeSessions": 0, "pendingTurns": 0 }
默认行为
- 私聊消息会触发转发;群聊仅在机器人被 @ 或昵称点名时转发。
- 群聊提示会附带经过控制字符清理的发送者显示名。
- 相同会话内的模型回合严格按到达顺序执行。
- 不同会话可以并行,直到 Harness 自身资源或 maxSessions 上限。
- 只发送最后一个 assistant/message 的文本块,不转发 reasoning、工具状态、图片或流式 chunk。
- dsh.reset 会为当前会话切换到一个新的不透明 Harness Session ID。
- 空闲会话在 idleTtlMs 后于下一次请求到来时回收。
- Harness 或插件重启后使用新的 Runtime 随机前缀;本版本不自动恢复旧 Session。
允许频道
规则按 OR 合并。platform 和 channelId 支持精确值或 ,isDirect 省略时同时匹配私聊与群聊: yaml allowedChannels:
- platform: onebot
channelId: "group-123"
isDirect: false
- platform: discord
channelId: "dm-456"
isDirect: true
明确允许所有路由必须显式写出: yaml allowedChannels:
- platform: ""
channelId: "*"
详细配置字段见 配置参考。
远程部署
同机回环连接是推荐模式。跨主机部署时至少满足以下之一:
1. 使用 HTTPS 反向代理,并让 Harness 网关只监听代理可达的私有地址。
2. 使用 WireGuard、Tailscale、SSH Tunnel 等可信隧道,再显式设置 allowInsecureRemote: true。
3. 使用主机防火墙只允许 Koishi 来源地址,并定期轮换 Token。
不要直接把 0.0.0.0:8787 暴露到公网。完整清单见 部署指南 和 安全策略。
文档索引
- 实施规划:目标、范围、里程碑和验收标准。
- 架构说明:数据流、信任边界、FIFO、去重、超时和生命周期。
- 配置参考:Harness 与 Koishi 两端全部配置字段。
- 部署指南:本机、跨主机、启动顺序、健康检查和安全清单。
- 开发指南:目录、命令、测试、构建和发布流程。
- 故障排查:401、403、429、504、空回复和连接问题。
- 来源说明:三个参考项目的提交、文件和设计映射。
- 贡献指南 与 安全策略。
当前限制
- 仅支持文本输入和最终文本输出。
- HTTP 请求在整轮完成后返回;暂不支持流式输出或中间工具状态。
- 请求幂等缓存仅在当前进程内有效。
- Gateway 不恢复旧的持久 Session;Harness 持久化后端可能保存日志,但本插件每次进程启动使用新的 Session 前缀。
- HTTP Bridge 不传递 Koishi Session、Bot 对象、引用消息、图片或其他资源元素。
- Harness RC API 继续变化时可能需要同步升级。
开源与许可证
项目使用 MIT License。三个参考项目均采用 MIT License;本项目基于公开接口与架构原则独立实现,没有复制其大段源码。具体来源版本与参考文件记录在 SOURCES.md。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
FloraAurella/dsh-plugin-koishi
把 Koishi 频道消息安全转发给 Agent 并回传回复
相关插件 · 对话 / 记忆
上下文中枢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
这是你的仓库?认领条目