dsh-notify
baka-world
DeepSeek Harness desktop notification plugin (notify-send / D-Bus)
PROJECT TOPICS
PROJECT README
基于腾讯官方 QQ 机器人开放平台,将 QQ 私聊或群聊安全地接入 DeepSeek Harness(DSH)。给机器人发送消息,就等同于向一个独立的 DSH Agent 会话发送消息。
当前版本:
0.1.0。项目仍处于早期阶段,建议先使用专用测试机器人、专用工作目录和私聊白名单。
/approve CODE 或 /deny CODE。$DSH_HOME/.env,不进入项目配置和日志。本项目仅面向腾讯官方机器人能力。使用前请遵守腾讯 QQ 开放平台规则、机器人运营规范和所在地法律法规。平台审核、接口权限、主动消息窗口和频率限制以腾讯当前规则为准。本项目无法承诺账号绝对不会受到限制,但不会提供绕过风控或协议限制的实现。
>= 2211.x(推荐通过 Corepack 管理)>= 0.1.0-rc.6如果 DSH 使用 DeepSeek 官方接口,请把 API Key 写入本机 DSH 环境文件,而不是项目目录:
# Windows 默认位置:C:\Users\<你>\.dsh\.env
# macOS/Linux 默认位置:~/.dsh/.env
DEEPSEEK_API_KEY="你的 API Key"
下载或克隆仓库后,在项目根目录执行:
corepack enable
pnpm install --frozen-lockfile
powershell -ExecutionPolicy Bypass -File .\scripts\dev-start.ps1
脚本会完成:
qqbot-safe-dev profile;首次没有 QQ 凭据时,终端会显示官方绑定二维码。扫码成功后,插件会自动写入:
QQBOT_APPID="..."
QQBOT_SECRET="..."
QQBOT_C2C_ALLOW="..."
这些值保存在 $DSH_HOME/.env,不会写入仓库。扫码用户会自动成为第一个私聊白名单用户。看到以下内容后即可在 QQ 中发送“你好”:
[im-qqbot] Bot ready! appId=...
以后启动可直接执行:
node "$env:USERPROFILE\.dsh\profiles\node_modules\@deepseek-ai\dsh\lib\bin.js" --profile qqbot-safe-dev
如果设置了自定义 DSH_HOME,请将路径替换为对应目录。
dsh plugin --profile qqbot add dsh-qqbot-bridge
dsh --profile qqbot
如果 dsh 没有加入 PATH,可直接调用 $DSH_HOME/profiles/node_modules/@deepseek-ai/dsh/lib/bin.js。
所有敏感配置统一放在:
$DSH_HOME/.env
默认位置:
C:\Users\<你>\.dsh\.env~/.dsh/.env示例:
QQBOT_APPID="机器人 AppID"
QQBOT_SECRET="机器人 AppSecret"
QQBOT_C2C_ALLOW="用户OpenID1,用户OpenID2"
DEEPSEEK_API_KEY="DeepSeek API Key"
多个用户 OpenID 使用英文逗号分隔。不要把个人 QQ 号当作 OpenID。
Profile 配置位于 $DSH_HOME/profiles/<profile>/cordis.patch.yml。推荐保持 OpenID 在 .env,YAML 只读取环境变量:
- id: im-qqbot
config:
cwd: 'D:/dsh-workspaces/qqbot'
provider: deepseek-official
model: deepseek-v4-flash
requireMention: true
access:
c2cMode: allowlist
c2cAllow: !!js >-
(process.env.QQBOT_C2C_ALLOW ?? '')
.split(',')
.map((value) => value.trim())
.filter(Boolean)
groupMode: disabled
groupAllow: []
acknowledgeOpenAccess: false
allowUnsafeCwd: false
logMessageContent: false
enableApprovals: true
approvalTimeoutMs: 120000
debug: false
修改 .env 或 profile 后应完整重启 DSH:Ctrl+C 停止,再重新运行启动命令。
不要提交或粘贴到 Issue、PR、截图和日志中:
$DSH_HOME/.env 或项目 .envQQBOT_SECRET、DEEPSEEK_API_KEY$DSH_HOME/sessions、qqbot-workspace、聊天记录和生成文件提交前运行:
pnpm privacy:check
pnpm check
.gitignore 已排除常见本地敏感文件,但不能替代人工复核。
当工具需要访问工作区之外的位置时,DSH 会先触发审批。插件向任务发起者发送:
⚠️ DSH 权限申请
工具:pwsh
原因:需要访问工作区外路径
允许本次操作:/approve A1B2C3
拒绝本次操作:/deny A1B2C3
审批具有以下边界:
| 配置 | 默认值 | 说明 |
|---|---|---|
provider |
deepseek-official |
DSH LLM provider |
model |
deepseek-v4-flash |
DSH 模型;可通过 /model 切换 |
cwd |
./qqbot-workspace |
Agent 专用工作目录 |
requireMention |
true |
群聊是否必须 @机器人 |
access.c2cMode |
allowlist |
私聊访问策略 |
access.c2cAllow |
来自环境变量 | 允许的用户 OpenID |
access.groupMode |
disabled |
群聊访问策略 |
access.groupAllow |
[] |
允许的群 OpenID |
acknowledgeOpenAccess |
false |
开放访问的二次风险确认 |
allowUnsafeCwd |
false |
是否允许根目录或用户主目录 |
logMessageContent |
false |
是否记录消息正文 |
enableApprovals |
true |
是否启用 QQ 一次性审批 |
approvalTimeoutMs |
120000 |
审批超时,超时自动拒绝 |
debug |
false |
SDK 诊断日志开关 |
不建议使用开放模式。如果确实需要:
access:
c2cMode: open
acknowledgeOpenAccess: true
开放模式会让任何能找到机器人的用户触发 DSH Agent。
/bot-help:查看帮助/bot-status:查看会话、模型和用量状态/bot-ping:连接测试/bot-version:查看版本/bot-reset:清除当前会话上下文/bot-new:开始新会话/bot-stop:终止当前任务/model:查看或切换模型/approve CODE:允许当前一次权限申请/deny CODE:拒绝当前一次权限申请src/
├─ approval.ts QQ 一次性审批通道
├─ commands/ 斜杠命令
├─ model/ 模型发现、路由和用户偏好
├─ session/ QQ peer 与 DSH Session 映射
├─ shared/ 通用工具和发送辅助
├─ transport/ 入站组装、出站缓冲和分片
├─ config.ts 配置 Schema
├─ security.ts 启动前安全校验
├─ setup.ts 官方扫码与私密凭据落盘
└─ index.ts Cordis 插件入口和生命周期编排
详细设计见 架构说明。
pnpm install --frozen-lockfile
pnpm build
pnpm test
pnpm typecheck
pnpm privacy:check
pnpm check
pnpm check 会执行隐私扫描、构建、单元测试、类型检查和 npm 打包预览。
Bot ready。QQBOT_C2C_ALLOW 是否存在且是用户 OpenID,不是机器人 AppID。turn/end:显式配置 provider 和 model,并确认模型凭据可用。enableApprovals: true、审批策略为 ask,且操作确实触发沙箱升级。.env 后无效:完整停止并重启 DSH。更多排查步骤见 故障排查。
提交改动前请阅读 CONTRIBUTING.md 和 SECURITY.md。安全问题请通过 GitHub Security Advisory 私下报告,不要公开提交凭据或日志。
1722800850欢迎交流使用体验、问题反馈和改进建议。请勿通过公开 Issue、截图或聊天记录发送 AppSecret、API Key、OpenID 等敏感信息。
本项目派生自腾讯官方 MIT 项目 @tencent-connect/dsh-qqbot,由社区独立维护,并非腾讯官方产品。详见 LICENSE 和 NOTICE。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。