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

钉钉中继插件 fieldnote-ops/relayloom

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

把钉钉消息接入 Agent 并先回执再回复

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么[目录]—
dsh 原生插件 · platform
暂无时间戳·判据 →
装得上吗[实装验证]—
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
数据截至 2026/10/08·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 82 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
  • 写入本地文件
    tenant-smoke.js:75
    writeFileSync(path, `${JSON.stringify(report, null, 2)}\n`, { encoding: 'utf8', flag: 'wx', mode: 0o600 })
扫描于 2026/11/5(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-presets@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 接入钉钉消息
  • 会话白名单
  • 先回执再回复

独立、默认关闭的钉钉 Stream 中继插件,用于 DeepSeek Harness:会话白名单、先 ACK 再回复、审批。

README

由 DeepSeek 最新模型翻译生成
RelayLoom Self-test RelayLoom 是一个独立、默认关闭的外部聊天中继。首个兼容适配器把钉钉 Stream 公共协议接入 DeepSeek Harness Agent。 当前仓库属于开发者预览,不能宣称为已验证的生产机器人:无凭据协议核心、官方 SDK 绑定、Webhook 出站传输和真实 DSH 安装/启动已经过测试;但尚未在真实钉钉租户中完成“接收 → ACK → 回复”闭环。 不只是通知 Webhook | 维度 | 已实现边界 | | 方向 | 接收钉钉 Stream 回调并发送有界 sessionWebhook 回复,不局限于单向群通知。 | | 回调顺序 | 异步 Agent 任务结束前先 ACK;按 msgId 去重重试。 | | 会话隔离 | 会话按发送者和 conversation 隔离;持久化 id 确定且不暴露原始租户标识。 | | 审批回退 | /approve、/reject 一次性、会过期,并绑定原发送者与 conversation;不宣称交互式卡片已实现。 | | 默认安全 | bundle 默认关闭;启用时要求非空 staff-id 白名单;凭据只从指定环境变量读取;拒绝不安全 Webhook 目标和重定向。
展开完整文档(README 剩余 1 节)
RelayLoom

Self-test

RelayLoom 是一个独立、默认关闭的外部聊天中继。首个兼容适配器把钉钉 Stream 公共协议接入 DeepSeek Harness Agent。

当前仓库属于开发者预览,不能宣称为已验证的生产机器人:无凭据协议核心、官方 SDK 绑定、Webhook 出站传输和真实 DSH 安装/启动已经过测试;但尚未在真实钉钉租户中完成“接收 → ACK → 回复”闭环。

不只是通知 Webhook

| 维度 | 已实现边界 |
| 方向 | 接收钉钉 Stream 回调并发送有界 sessionWebhook 回复,不局限于单向群通知。 |
| 回调顺序 | 异步 Agent 任务结束前先 ACK;按 msgId 去重重试。 |
| 会话隔离 | 会话按发送者和 conversation 隔离;持久化 id 确定且不暴露原始租户标识。 |
| 审批回退 | /approve、/reject 一次性、会过期,并绑定原发送者与 conversation;不宣称交互式卡片已实现。 |
| 默认安全 | bundle 默认关闭;启用时要求非空 staff-id 白名单;凭据只从指定环境变量读取;拒绝不安全 Webhook 目标和重定向。 |
| 证据缺口 | 无凭据测试与 DSH rc.6/latest/next consumer 已通过;真实租户“接收 → ACK → 回复”仍未通过。 |

已实现

- 在异步模型任务结束前立即 ACK;
- 按 msgId 去重并限制内存;
- 私聊与群聊 @ 过滤;
- staff id 白名单默认拒绝;
- 稳定、发送者隔离的会话,以及不暴露原始会话信息的确定性存储 id;
- DSH Agent 创建/恢复、preset 挂载、已提交回答转发、取消与有界拆卸;
- 一次性、会过期、绑定发送者和会话的 /approve、/reject 决策;
- 官方 sessionWebhook Markdown 回复,并限制精确 HTTPS 域名、拒绝重定向、限制响应大小、设置超时、检查过期时间及拆分长输出;
- bundle 默认 enabled: false,所以安装和启动不会读取钉钉凭据或发起钉钉请求。

文字审批是安全回退协议,不代表交互式审批卡已经可用。卡片渲染/更新、附件、重连重放和真实租户闭环仍待验证。

真实租户传输探针

0.2.3 提供一个显式启用的探针,在不调用模型或 DSH Agent 的前提下补齐传输证据。它只等待一个已配置 staff 账号发来的随机挑战,立即 ACK Stream 回调,发送一条有界 sessionWebhook 回复,并新建权限为 0600 的 JSON 报告。报告不记录凭据、原始 staff id、会话 id、消息 id、Webhook 或消息正文。

在钉钉开发者后台创建企业内部应用,在该应用内部添加机器人扩展,并保持机器人为 Stream 模式。从应用信息页复制 Client ID(AppKey)与 Client Secret(AppSecret);不要使用旧版独立机器人入口。详见钉钉官方的创建机器人与 Node Stream 机器人说明。

先克隆仓库,并在禁用生命周期脚本的情况下安装锁定依赖:

git clone https://github.com/fieldnote-ops/relayloom.git
cd relayloom
npm ci --ignore-scripts --registry=https://registry.npmjs.org

通过交互读取 Client ID、Client Secret 和允许发送者的 staff id,避免任何一个值进入 shell 历史,然后运行:

printf 'DingTalk Client ID: '
IFS= read -r DINGTALK_CLIENT_ID
printf 'DingTalk Client Secret: '
IFS= read -r -s DINGTALK_CLIENT_SECRET
printf '\n允许发送者 staff id: '
IFS= read -r RELAYLOOM_ALLOWED_USER
export DINGTALK_CLIENT_ID DINGTALK_CLIENT_SECRET RELAYLOOM_ALLOWED_USER
npm run tenant:smoke
unset DINGTALK_CLIENT_ID DINGTALK_CLIENT_SECRET RELAYLOOM_ALLOWED_USER

从该 staff 账号向企业内部机器人发送进程打印的精确随机挑战。默认等待 180 秒;可用 RELAYLOOM_PROBE_REPORT 指定新的工作区相对报告路径,已有报告绝不会被覆盖。该命令会真实访问钉钉,但安装、DSH 启动、测试和 CI 都不会自动运行它。

从 GitHub 安装

为保证命令可以直接复制,请固定到最近一次完成公开验证的运行时提交,不要依赖移动分支:

dsh plugin --profile web add github:fieldnote-ops/relayloom#e789dded22a6eeb00bddde0d06e47d15e23eced6

该提交已经通过公开 Node 24 单元任务以及 DSH rc.6/latest/next consumer matrix。安装后仍默认关闭。创建钉钉企业内部机器人、并在启动环境设置凭据后,才修改 profile:

- id: relayloom
name: relayloom
config:
enabled: true
clientIdEnv: DINGTALK_CLIENT_ID
clientSecretEnv: DINGTALK_CLIENT_SECRET
allowedUsers:
- your-staff-id
preset: standard

RelayLoom 不从 YAML 读取凭据;启用时空白名单会直接拒绝启动。

证据边界

本地测试覆盖协议规范化、ACK 顺序、去重、串行化、DSH 会话创建/恢复、已提交输出、取消、审批身份绑定、Webhook SSRF 防护和默认关闭生命周期。HarnessProof v0.1.6 在隔离副本中安装精确锁定依赖,通过官方 DSH 命令加入插件,观察到 bundle 层,启动 DSH 0.1.0-rc.6 并收到 HTTP 200;全过程不需要凭据,也不访问外部服务。真实租户探针是另一个显式网络操作,不能从 HarnessProof 结果推断其成功。

这些证据不证明真实钉钉机器人、审批卡行为、独立安全审计、陌生用户采用、Marketplace 接受、购买或收入。

开发

npm ci --ignore-scripts
npm run check

直接运行依赖为钉钉官方 dingtalk-stream Node SDK。协议参考见英文 README。

RelayLoom 是 FIELD NOTE 的 AI 辅助、人工复核互操作实验,与钉钉、阿里巴巴、DeepSeek 或其关联方无隶属、赞助、背书或官方关系。产品名称仅用于说明兼容目标;项目不使用相应 logo 或品牌视觉。

MIT 许可。
预览分享卡片长什么样 ↓fieldnote-ops/relayloom
分享 · DeepSeek Harness Hub
fieldnote-ops/relayloom

把钉钉消息接入 Agent 并先回执再回复

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