Skip to content
FunCoding

Search

Search docs, Skills and MCP

DWS 待办与投递

启用原生待办触发,区分 IM 重试队列和评论发送策略。

This page has not been translated into English yet. The original Chinese version is shown below.

DWS 的原生待办触发和消息投递有各自的持久状态。看到结束反应不等于收件方已经收到结果。

原生待办触发

watchTodos 默认 false。在已有 DWS 渠道配置中启用后,每 30 秒检查固定 profile 所在组织中、当前账号作为执行人的未完成原生待办。

{
  "watchTodos": true
}

第一次成功扫描只建立基线,不执行历史待办。后续新分配、重新打开,或标题、优先级、截止时间、执行人等可执行字段变化,才会启动任务,并把结果作为待办评论。

仅评论元数据和修改时间变化不触发,因此自己的回复不会形成循环。完成或移除会从待处理集合删除,重新打开则形成新触发。

准入身份是待办创建者,遵循 privatePolicy。pairing 下未获准的创建者会收到一次配对码评论,待办保持待处理;本地批准后,后续扫描可执行没有再次修改的待办。启动 IM 消息来源需要权威的自身 openDingTalkId,缺少且无同 profile 的已知身份时会拒绝连接;不能靠评论文本推测账号身份,重连保留既有身份记录。

IM 回复队列

群 @ 或私聊任务的结果在首次发送前写入检查点。发送失败时后台重试回复,不重新执行 agent 任务。

条件处理
传输失败从 5 秒开始指数退避,最多 5 分钟,16 次失败后放弃
渠道断开或配对记录暂时不可读最多连续 32 次本地延后检查,不消耗传输尝试次数
发信人、群或私聊权限确定撤销立即丢弃待发送回复
队列超过 100 条移除最旧条目,不论已经尝试几次
配置改为另一个 DWS profile清空旧回复队列

丢弃原因写入渠道 stderr,不通过聊天通知。超过 12000 个 Unicode 码点的排队回复会截断,并在用户看到的内容后追加 [Response truncated for DWS delivery.]。

文档和待办评论不同

文档评论、原生待办评论每轮只调用一次评论发送,不进入上述 IM 队列,也不采用其截断逻辑。结果未知时不继续抛出发送错误;确定失败则交给已有入站轮次重试策略。

排查时应先分清失败发生在任务执行、IM 发送还是评论发送,不要套用同一种重试次数。任务结束的反应只标记执行状态,不能作为评论或 IM 已送达的证明。