[chat] 机器人群内 @ / 引用回复能力缺失 + send-by-bot 文档↔二进制漂移
复核 2026-06-29(dws v1.0.44):仍开。源码 internal/helpers/chat.go:553-557 newChatMessageSendByBotCommand 仍只注册 group/robot-code/text/title/users,无任何 --at-*;dws chat message send-by-bot --help live 输出同样无 at flag。注意 --at-open-dingtalk-ids/--at-all 存在于普通 send 命令(chat.go:327,仅 --group 群聊生效),不是 send-by-bot。
- 分类(category): 能力缺失 + 文档漂移
- 归属: dws 仓(
dingtalk-workspace-cli / internal/helpers/chat.go)+ skill 文档(chat.md)
- 优先级: 中高(多用户反馈,影响"机器人答疑/群互动"核心场景)
- 发现日期: 2026-06-18
- 反馈来源: 肖志灿(alexxiao)、林闽琦Daniel 等("机器人群 at 回复消息命令没上线吗 / 用 bot 身份 @ 不行")
现象
用户想让机器人在群里 @ 某人并回复消息,找不到对应命令,怀疑"是没上线还是版本低"。实测 v1.0.38(最新版)确认:该组合能力当前 CLI 层未暴露。
根因
拆成两个独立缺口:
| 能力 |
现状 |
源码证据 |
| 机器人发群消息时 @ 成员 |
send-by-bot 只有 --group/--robot-code/--text/--title/--users,无任何 @ flag |
internal/helpers/chat.go newChatMessageSendByBotCommand:Flags 仅注册 group/robot-code/text/title/users,源码层就没有 at-* |
| 机器人引用回复某条消息 |
reply 命令硬编码用户身份,无机器人身份分支 |
newChatMessageReplyCommand:msgType:"reply" + clawType: edition.ClawType(),走当前用户身份,无 robot-code 路径 |
附带问题:文档↔二进制漂移。 skill chat.md(send-by-bot 段)明确文档化了 --at-user-ids / --at-open-dingtalk-ids / --at-all,但线上二进制根本没有这三个 flag。AI Agent 照文档生成命令会直接 unknown flag 报错。
复现
# 1) 机器人 @ 群成员 —— 文档说支持,实际 unknown flag
dws chat message send-by-bot --robot-code <code> --group <id> --at-user-ids <userId> --text "@x hi"
# → unknown flag: --at-user-ids
# 2) 机器人引用回复 —— 无机器人身份版本,reply 只走用户身份
dws chat message reply --help
# → "以当前用户身份引用某条消息并回复",无 robot-code 参数
修复建议
- (a) send-by-bot 补 @ 能力:在
newChatMessageSendByBotCommand 注册 --at-user-ids / --at-open-dingtalk-ids / --at-all,并映射到机器人发消息接口的 at 字段。与文档对齐后即可闭环肖志灿/林闽琦的诉求。
- (b) reply 增机器人身份分支(次优先):
reply 支持传 --robot-code 走机器人身份引用回复;或新增 reply-by-bot。
- (c) 文档兜底(最低成本,先做):若短期不补能力,先把
chat.md 里 send-by-bot 的 --at-* 文档删除/标注"未上线",消除文档误导。
临时绕过(已验证可用)
自定义机器人 webhook 支持 @(二进制实测 flag 真实存在):
dws chat message send-by-webhook --token <群机器人token> --title "x" --text "hi @10" --at-all
dws chat message send-by-webhook --token <token> --text "hi" --at-users <userId>
能 @,但不是"引用回复"形态。
验收标准
dws chat message send-by-bot --help 与 chat.md 文档一致:要么 at-* flag 真实存在且实测可 @,要么文档无 at-* 字样。
- 无"文档说支持、实跑 unknown flag"的撕裂。
[chat] 机器人群内 @ / 引用回复能力缺失 + send-by-bot 文档↔二进制漂移
dingtalk-workspace-cli/internal/helpers/chat.go)+ skill 文档(chat.md)现象
用户想让机器人在群里 @ 某人并回复消息,找不到对应命令,怀疑"是没上线还是版本低"。实测 v1.0.38(最新版)确认:该组合能力当前 CLI 层未暴露。
根因
拆成两个独立缺口:
send-by-bot只有--group/--robot-code/--text/--title/--users,无任何 @ flaginternal/helpers/chat.gonewChatMessageSendByBotCommand:Flags 仅注册 group/robot-code/text/title/users,源码层就没有 at-*reply命令硬编码用户身份,无机器人身份分支newChatMessageReplyCommand:msgType:"reply"+clawType: edition.ClawType(),走当前用户身份,无 robot-code 路径附带问题:文档↔二进制漂移。 skill
chat.md(send-by-bot 段)明确文档化了--at-user-ids/--at-open-dingtalk-ids/--at-all,但线上二进制根本没有这三个 flag。AI Agent 照文档生成命令会直接unknown flag报错。复现
修复建议
newChatMessageSendByBotCommand注册--at-user-ids/--at-open-dingtalk-ids/--at-all,并映射到机器人发消息接口的 at 字段。与文档对齐后即可闭环肖志灿/林闽琦的诉求。reply支持传--robot-code走机器人身份引用回复;或新增reply-by-bot。chat.md里 send-by-bot 的--at-*文档删除/标注"未上线",消除文档误导。临时绕过(已验证可用)
自定义机器人 webhook 支持 @(二进制实测 flag 真实存在):
能 @,但不是"引用回复"形态。
验收标准
dws chat message send-by-bot --help与chat.md文档一致:要么 at-* flag 真实存在且实测可 @,要么文档无 at-* 字样。