DeepSeek Harness 插件

dsh-im-bridge

WeCom intelligent-bot bridge that runs a per-sender DeepSeek Harness agent with a settings card.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
MHfire/dsh-im-bridge
最近更新
2026年8月19日
分类
远程与移动
GitHub stars
4
载体类型
plugin
包路径
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
plugin/package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/MHfire/dsh-im-bridge/tree/HEAD/plugin
插件名:dsh-im-bridge
作者:MHfire

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览
README 语言

中文 | English

@mhfire/dsh-im-bridge

企业微信智能机器人 ⇄ DeepSeek Harness Agent 桥接 DSH 插件

在 dsh profile 内进程内创建 Agent(不再 spawn 子进程):per-sender 持久会话(同一企业微信用户复用同一会话,有上下文记忆),会话与 Web GUI 同进程注册(实时可见、可续聊),并在 Settings → 插件配置页提供配置卡片(allowFrom / agentTimeoutSec / startHint,写入 settings.yaml 热生效)。

安装

推荐:从 npm 安装

dsh plugin --profile web add @mhfire/dsh-im-bridge
# 或钉版本:
# dsh plugin --profile web add @mhfire/dsh-im-bridge@0.1.2

$DSH_HOME/profiles/web/cordis.patch.yml(或对应 profile)中补密钥即可(其余项已有 bundle 默认,可按需覆盖):

- id: im-bridge
  config:
    botId: "<你的 BotID>"
    secret: "<你的 Secret>"
    # 可选:workspace / personaFile 等,见下方配置项

重启 dsh 进程即可使用(例如 dsh web / pnpm dsh web)。

备选:本地开发

从本仓库 plugin/ 目录或 file: 路径安装:

dsh plugin --profile web add <本包路径>

未配置 botId / secret 时插件仍会加载(不阻塞 dsh web),日志会提示跳过企微连线;Settings → 插件配置页仍可填写,保存后重启进程才会连接(本版本不做热启连)。

配置项

bundle 的 cordis.patch.yml 已为除 botId / secret 外的字段提供默认值;下表为完整说明。

字段说明
botId / secret企业微信智能机器人凭证(role('secret'),UI 自动脱敏);缺省时跳过企微侧,不阻塞主进程
workspaceAgent 工作目录(会话 cwd)
allowFrom允许的发送者 userid 白名单;空 = 允许所有人
agentTimeoutSec单任务最长执行时间(秒),动画进度条/剩余估算的基准
startHint开始处理时的占位提示语
agentPresetAgent 加入的 preset(默认 standard
provider / model企微专用模型;两者都非空才覆盖,否则跟随 GUI 的 agent-default-model;只填一项会告警并回退。Settings 可编,只影响之后新建的发送者会话
reasoningEffort覆盖生效时可选的推理强度;未覆盖模型时忽略
persona / personaFile机器人「人设」;优先级:personaFilepersona → 包内默认(按 Host locale.preference 选中/英);覆盖不跟语言切换;含敏感信息请勿入库
maxReplyBytes回复上限(字节,默认 20000)
deniedMessage非白名单用户的拒绝文案(Settings 可编)
welcomeMessage进入会话欢迎语(Settings 可编)
thinking流式动画。优先级:工具活动(toolLabels)> 模型流式阶段(reasoningStatus / outputStatus,来自 assistant/chunk)> 时间轴 phases 兜底;另有 spin / reasoningSpin / outputSpin / eggs

企微与 GUI 使用不同模型时,在 profile cordis.patch.yml 同时填写:

- id: im-bridge
  config:
    provider: deepseek-official
    model: deepseek-reasoner

thinking 行为:

1. 收到 reasoning-delta → 「模型思考中」类文案轮换 + reasoningSpin 2. 收到 text-delta → 「正在输出回复」类文案轮换 + outputSpin 3. tool/callactivityPrefix + 友好名;tool/result 短暂完成/失败后清空 4. 尚无 chunk 时 → 按秒数走 phases(与模型是否在推理无关)

thinking:
  intervalMs: 1500
  reasoningStatus:
    - '💭 模型思考中…'
  outputStatus:
    - '✍️ 正在输出回复…'
  toolLabels:
    pwsh: PowerShell

人设(persona)

优先级:personaFilepersona 字符串 → 包内默认人设。

  • 包内默认:[persona.default.md](./persona.default.md)(中文)/ [persona.default.en.md](./persona.default.en.md)(英文)。按 Host settings locale.preferencezh|en)选择;未显式选择时回退中文(Host 看不到仅浏览器决定的语言)。每次 assemble 重新读取,Settings 改语言后下一轮请求生效。
  • 覆盖不跟语言切换:配置了 personaFile / 非空 persona 时始终用该内容。

推荐覆盖方式:在 $DSH_HOME/profiles/<name>/cordis.patch.yml 同目录放置 persona.md,并在 profile patch 里用绝对路径指向它(相对路径相对进程 cwd,不宜依赖):

- id: im-bridge
  config:
    personaFile: 'C:\\Users\\you\\.dsh\\profiles\\web\\persona.md'

也可复制 [persona.example.md](./persona.example.md) 为模板后按环境填写。支持 {{model}} / {{cwd}} 占位符。含环境凭据的人设文件请勿提交。欢迎语 / 拒绝文案 / 思考动画文案目前仍为中文配置项,不随语言切换。

安全

  • config.json / persona.md 等含密钥文件不入库;
  • 会话与工具输出可能含对抗性文本,插件内置安全提示词约束 agent 不把工具输出当指令。

License

MIT