跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

DingTalk Workspace

通过已登录 DWS 账号接收私聊、群提及和文档评论通知。

DWS 渠道使用同一主机上已有的 DingTalk Workspace CLI 登录,以账号身份处理消息和文档评论。它与应用机器人 type: dingtalk 分开配置。

账号与配置

运行 Qwen Code 的主机需要 DWS CLI 1.0.57 或更新版本,且进程 PATH 能找到 dws。先检查和登录:

dws version --format json
dws auth login
dws profile list --format json
dws auth status --format json

无界面环境可用 dws auth login --device。渠道启动时固定一个 profile:profile 可写精确名称或 corpId,省略时选 isCurrent 项;不会依赖 user_id 元数据区分登录方式。

{
  "channels": {
    "dws-work": {
      "type": "dws",
      "profile": "profile-name-or-corp-id",
      "privatePolicy": "pairing",
      "groupPolicy": "pairing",
      "sessionScope": "chat_thread",
      "groups": { "*": { "requireMention": true } },
      "startReaction": "🤔",
      "endReaction": "赞",
      "cwd": "/path/to/project"
    }
  }
}
qwen channel start dws-work
qwen channel pairing approve dws-work CODE

第一条命令运行渠道;收到配对码后,在另一个终端执行第二条并替换 CODE。也可让 daemon 管理渠道,但不要同时运行独立服务和 daemon,因为它们共享服务租约。

谁能触发

新建的托管 DWS 渠道默认私聊和群均采用 pairing。privatePolicy 同时控制私聊、文档通知作者和原生待办创建者;后两种请求不受 groups.senders 控制。群准入由 groupPolicy 控制,获准群的成员默认 open;共享会话管理仍需明确 operators。

privatePolicy: disabled 会阻止这三类私人来源,watchTodos 则单独控制待办轮询。关闭的来源不会被订阅、轮询,也不能经迟到回调或持久重放启动新任务;既有待处理记录和历史游标仍保留,重新启用后可能处理较旧消息,包括停用期间的消息,并重新检查权限。

消息补收与反应

群消息先走实时个人事件流,再每 5 秒检查近期 @ 历史,补收平台未推送的外部群提及。私聊也有每 5 秒的历史补收;两条路径按会话和消息 ID 去重,引用文本在两条路径中均作为上下文。

requireMention 为 true 时只由提及唤醒,为 false 时还可接收已经通过群和成员策略的普通消息。startReaction 省略或空值使用 🤔;endReaction 省略或空值不添加结束反应。结束反应表示任务完成、失败或取消,消息投递可能在之后才完成。

文档评论

在文档评论中 @已登录账号,并开启给该账号发送钉钉通知的选项。渠道从私聊历史中的通知卡提取文档与评论,读取引用文档,再回复原评论;同一评论的重复通知只执行一次。

未产生通知的评论不会触发任务,也没有知识库或文档全量监视名单。文档任务默认 approvalMode 为 default,亦支持 plan、yolo;yolo 会自动批准工具调用,作用范围须与账号和工作区授权一致。

原生待办与回复重试见DWS 待办和投递。