dsh-wechat
把 DeepSeek Harness 接进微信:扫码绑定后在微信里派活、收结果、回审批(iLink/ClawBot 协议) 适合希望在微信中派发任务、接收结果和处理审批的移动办公场景。
同名パッケージの別リポジトリ
インストール
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zgat/dsh-wechatドキュメント
README 全文を読む ↗4.2 覆盖配置
在 profile 的 $DSH_HOME/profiles/ /cordis.patch.yml 里重复该行 id 即可覆盖(patch 会整体替换 config,请写全要保留的键):
- id: dsh-wechat
name: 'dsh-wechat'
config:
enabled: true
accessPolicy: allowlist
allowedUserIds:
- o9cq800kum_4g8Py8Qw5G0a@im.wechat
workspace: /Users/me/projects/demo
typing: true
progress: brief
chunkChars: 1800
6. 配置项
| 键 | 默认 | 说明 |
|---|---|---|
enabled | true | false 时插件完全不动(不注册监听、不连网) |
stateDir | $DSH_HOME/integrations/dsh-wechat | 凭据、状态、媒体、二维码的存放目录 |
workspace | 第一个 DSH 工作区,否则 process.cwd() | 新会话的工作目录(绝对路径) |
accessPolicy | allowlist | allowlist 只服务白名单;open 接受任何发送者 |
allowedUserIds | [] | 允许的微信用户 ID 列表(也接受逗号分隔字符串) |
ownerUserId | null | 机器人所有者,始终放行;留空时自动采用扫码绑定的那个微信号,避免默认白名单把自己的消息也拦掉 |
autoLogin | true | 无凭据时自动走扫码登录 |
loginPage | true | 是否启动本机扫码页(关闭后二维码只进日志与文件) |
loginPagePort | 30989 | 扫码页端口;被占用时自动改用系统分配的端口 |
openLoginPage | true | 需要扫码时是否自动用默认浏览器打开扫码页 |
baseUrl | null | 覆盖 iLink 网关地址(默认官方 https://ilinkai.weixin.qq.com,私有部署/调试用) |
cdnBaseUrl | null | 覆盖媒体 CDN 地址 |
chunkChars | 1800 | 单条微信消息的最大字符数 |
typing | true | 是否显示「对方正在输入」 |
typingKeepaliveSeconds | 5 | 输入状态的保活间隔 |
progress | brief | off 只回最终答案;brief 加工具进度;verbose 再加中间说明 |
showToolProgress | true | progress != off 时是否推送 🔧 tool 行 |
progress: brief + showToolProgress: false | — | 工具照常调用,只是不把调用记录发到微信;本行只影响通知,不影响工具可用性 |
turnTimeoutSeconds | 900 | 单轮最长等待,超时后在微信里提示(回合仍在后台继续) |
approvalTimeoutSeconds | 300 | 审批等待时长,超时交给下一个应答者(例如桌面端弹窗) |
questionsTimeoutSeconds | 600 | 提问等待时长,超时同上 |
idleDisposeMinutes | 0 | 安静超过这么多分钟后释放常驻 Agent(会话绑定保留,下条消息自动 resume);0 表示一直常驻,可写小数 |
agentPreset | null | 会话挂载的 agent preset;留空时自动采用 DSH 的默认 preset(standard)。这决定 Agent 有没有工具:standard 带 tool-bash、tool-fs、tool-fs-search、plan-mode 等,未挂载时微信里的 Agent 只能使用插件自己注册的 wechat_* 工具 |
model | null | 形如 deepseek-account/deepseek-flash,或 { provider, model, reasoningEffort?, maxTokens? };留空时自动采用 DSH 的默认模型(必须能解析出一个路由,否则系统提示词里的 {{model}} 无法渲染) |
media.enabled | true | 是否收发图片/文件 |
media.dir | stateDir/media | 入站附件落盘目录 |
media.maxInboundBytes | 20971520 | 入站媒体上限,超出直接拒绝 |
media.maxOutboundBytes | 52428800 | 出站文件上限 |
notifyLifecycle | false | 是否发送 `msg/notifystart |
routeTag | null | SKRouteTag 路由标签,仅部署方需要时填写 |
channelVersion | 1.0.0 | base_info.channel_version |
logLevel | info | silent / error / warn / info / debug |
配置非法时插件会在日志里明确报错并回退到默认值,不会让整个 profile 起不来。