前言¶
DeepSeek Harness(DSH)目前以原生插件和「频道」会话为主,会话层面的个性化能力有限。当需要在某个 DSH 会话中模拟特定人格、使用专属表情,或让该会话在飞书群中自主参与对话时,现有方案往往需要手动转发消息或通过复杂脚本拼凑。
下面介绍 dsh-task-personas 插件,它为 DSH 的飞书会话提供人格切换、表情库和自主群聊能力。插件维护者 chencujinlin,开源在 GitHub。
插件定位¶
dsh-task-personas 是一个 DSH 插件,为单个会话添加「小鲸鱼」或「傲娇助手」两种预设人格、表情库以及主动聊天与自主参与群聊的能力。每个会话可以单独设置,普通任务和新会话默认关闭。插件依赖配套的 IM Connect 人格扩展版,以实现飞书消息接收与原生发送。
核心功能¶
人格与表情¶
- 支持两种预设人格:「小鲸鱼」和「傲娇助手」。在 DSH 频道目标会话的输入栏人格菜单中选择。
- 表情库:导入 PNG / JPG / WEBP / GIF,填写名称与适用场景后收藏;也可收藏当前飞书会话收到的图片或原生表情。发布仓库不附带任何个人表情收藏。
- 人格切换从下一次模型请求生效,聊天记录保留。使用
/new或重置生成新会话时,不会继承旧人格;子智能体也不继承。
自主参与群聊¶
- 在「群机器人」里查看其他机器人的 ID,选择可互聊的对象;为该群开启「自主参与群聊」。
- 已开启自主参与的群:收到的真人消息与已选机器人消息都会进入模型判断,没有 5% 抽样、每分钟一次或每小时 12 次的群消息唤醒限制。
- 连续消息先合并约 8 秒,再分批交给模型;每批最多 40 条未读消息。会话忙时排队,超过两分钟也不会丢弃实时未读消息。
- 未读队列与最近 12 条已读背景分开;消息进入宿主模型输入事件后才确认已读。模型可以调用
feishu_social_skip,安静结束。 - 台北时间 22:00–次日 08:00 不回应其他机器人,真人消息照常。夜间不补发机器人旧消息;机器人草稿发送前会再检查时段。
- 旁观文字每条最多 500 字;未 @ 的图片、表情和文件提供占位,不自动下载或声称已看图。实时观察和未读队列暂存在内存,退出应用后不自动补发。
- 可手动用「补读接入后群消息」读取该会话首次接入后的可见历史:最多查询 200 条,最近 40 条作为背景;模型不会逐条补答旧消息。
主动聊天¶
- 人格菜单的「主动聊天」控制冷场开聊:30~90 分钟检查、安静至少 15 分钟、基础概率 30%。
- 图片和文字保留发送频率保护,未确认的发送不自动重试。发送目标由当前会话绑定决定,模型不能任意指定收件人。
安装与启用¶
环境要求¶
- DeepSeek Harness 桌面端:已验证版本
0.2.1-rc.2。 - Node.js:22 或更高版本(用于本地开发与验证,不影响安装包)。
桌面界面安装¶
在 v0.7.0 Release 下载两个安装包:
michengai-dsh-im-connect-1.0.8-personas.6.tgz:配套 IM 插件。dsh-task-personas-0.7.0.tgz:人格插件。
在 DSH 的「插件 → 添加插件」中依次安装这两个本地安装包并启用,然后重启 DSH。
已有 IM Connect 用户使用第一个包替换上游包;如界面提示同名包已安装,先通过原生插件管理器移除旧包,再安装扩展版。
macOS 桌面端 CLI 安装¶
先完全退出 DSH,再使用桌面端自带的 CLI:
dsh_bin='/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh'
"$dsh_bin" plugin --profile desktop add --ignore-scripts \
'https://github.com/chencujinlin/dsh-task-personas/releases/download/v0.7.0/michengai-dsh-im-connect-1.0.8-personas.6.tgz' \
'https://github.com/chencujinlin/dsh-task-personas/releases/download/v0.7.0/dsh-task-personas-0.7.0.tgz'
Desktop 的 profile 与普通全局/Web CLI 独立。安装后打开桌面应用,在插件页确认两项均已启用。发布包包含预构建 JavaScript,无需修改应用包或编译宿主;--ignore-scripts 跳过依赖安装脚本,本项目不需要执行这些脚本。若界面安装遇到 Ignored build scripts: protobufjs,使用上述命令,无需放宽全局脚本审批设置。
配置飞书凭据¶
在飞书应用后台配置相应权限及 im.message.receive_v1 事件订阅,发布应用版本使变更生效:
- 基础私聊、回复、图片:消息接收/发送及图片上传权限。
- 无需 @ 读取群消息:获取群组中所有消息,如
im:message.group_msg。 - 接收其他机器人群消息:
im:message.group_msg.include_bot:read。 - 手动补读历史、读取新版卡片正文:群消息和消息读取权限。
权限名称可能随平台变化,以飞书接收消息文档和历史消息文档为准。仅有 @ 权限时,本地开关不能让平台推送未 @ 消息。
使用步骤¶
- 在 IM Connect 中配置飞书账号并建立会话。
- 打开 DSH「频道」中的目标会话,在输入栏的人格菜单选择「小鲸鱼」或「傲娇助手」。
- 想让机器人参与群聊时,为该群打开「自主参与群聊」。
- 在「群机器人」里查看其他机器人的 ID,选择可互聊的对象;在「表情库」里导入或收藏表情。
数据与隐私¶
插件默认在 DSH_HOME(未设置时为 ~/.dsh)下保存:
task-personas/sessions.json:人格选择。task-personas/social.json:聊天设置、已选机器人和时间状态。task-personas/stickers/:个人表情素材及元数据。- IM Connect 自己的会话映射、凭据与日志继续由桥接管理。
这些运行数据不属于源码,也不应提交到 GitHub。聊天内容会交给你在 DSH 中选择的模型服务处理;发送消息仍调用飞书接口。项目没有额外的聊天收集服务,公开发布包不包含开发者的聊天、账号、群 ID、凭据、截图或本机安装状态。管理接口沿用 DSH 登录认证与跨站校验。
开发与验证¶
本地开发需要 Node.js 22 或更高版本:
npm ci
npm run check
npm run check:bridge
npm test
npm run test:privacy
测试使用合成数据和模拟飞书 SDK,不发送真实消息。宿主集成测试使用根目录锁定的 DSH SDK 开发依赖;可用 DSH_SDK_ROOT 指定另一套 SDK 根目录。当前覆盖 59 项行为测试,包含全量读取、106 条消息分批、忙时保留、@ 抢占、夜间规则、鉴权和原子写入失败。
许可与来源¶
- 主插件:MIT,见 LICENSE。
- 人格卡来自 Derpyu520/qq-bridge,固定提交及校验值见
roles/source.json;原文保存在roles/upstream/,活动卡片为飞书适配版。 - 配套 IM 插件基于 MichengAI/dsh-im-connect 1.0.8,遵循 Apache-2.0;见配套说明和本地扩展记录。
本项目未移植 QQ 拍一拍、QQ 收藏同步或群友黑话后台学习。它是独立社区扩展,不是 DSH、飞书或上游 IM Connect 的官方发行版。
适用场景与注意¶
- 适合需要在某个 DSH 会话中模拟特定人格、使用专属表情,或让该会话在飞书群中自主参与对话的场景。
- 插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证。
- 配套 IM Connect 人格扩展版会替换同名 IM Connect 包,不要并行启动两份桥接。
结尾¶
dsh-task-personas 通过人格、表情与自主群聊能力,为 DSH 的飞书会话提供了更贴近真实聊天的交互方式。如需了解更多细节或反馈问题,可访问:
- 插件目录页:https://www.skillhub.cn/plugins/chencujinlin/dsh-task-personas
- GitHub 仓库:https://github.com/chencujinlin/dsh-task-personas