钉钉消息发送技能用于通过钉钉向个人或群组推送消息,基于 Python 脚本(scripts/dingtalk.py)以命令行方式完成配置、机器人管理和消息发送。
【接入方式】 支持两种接入:
- Webhook 自定义机器人:通过 access_token 向群聊发送消息,接入简单;可选加签密钥 secret。
- 企业内部机器人:通过 app_key/app_secret 发送单聊、群聊消息,功能更全,另需 robot_code(可选 agent_id)。
【环境要求】 Python 3.7+,需安装 requests(pip install requests)。
【配置与机器人管理】 配置文件统一存放在系统配置目录,供所有 AI agent 共享:macOS/Linux 为 ~/.config/dingtalk/config.json 与 state.json;Windows 为 %APPDATA%\dingtalk\config.json 与 state.json。可通过 robot-add 命令或直接编辑配置文件添加机器人,每个机器人以 name 标识,description 描述用途。 常用命令:robot-add(添加)、robot-list(查看,含描述、使用次数、最近消息)、robot-update(更新描述/重命名)、robot-default(设为默认)、robot-enable/--disable(启用禁用)、robot-remove(删除);config --show 验证配置。 选择逻辑:仅一个机器人时自动使用;多个时按 --robot 指定 > default_robot > 最近使用过的 > 第一个可用,也可依据 description 与最近消息记录智能匹配或询问用户。 每次发送会自动记录使用次数、最近使用时间与状态、最近10条消息摘要到状态文件。
【Webhook 消息】 命令以 webhook- 前缀开头,URL 获取方式为钉钉群 > 群设置 > 智能群助手 > 添加自定义机器人 > 复制 Webhook 地址。 支持文本(webhook-text,可用 --at-mobiles、--at-all @用户或所有人)、Markdown(webhook-markdown,--title)、链接(webhook-link,--title/--url/--pic-url)、ActionCard(webhook-action-card,单按钮或 --buttons 多按钮、--btn-orientation)、FeedCard(webhook-feed-card,--links)。支持加签:config --set webhook_secret=... 一次设置,或用 --webhook-secret 临时指定。
【企业内部机器人消息】 单聊:text、markdown、link、action-card、file(--users 指定用户,--file 与 --file-name 发送文件)。 群聊:加 --mode group 与 --conversation-id,可用 --at-mobiles @指定用户。
【CLI 语法规则】 content 为位置参数,放在可选参数之后;换行用 \n;content 需用双引号包裹;可用 --app-key、--robot-code 等临时覆盖配置文件。
【限制与注意事项】 钉钉 Markdown 仅支持标题、加粗、链接、图片、无序/有序列表、引用的有限子集,不支持分隔线、表格、代码块、行内代码、删除线、任务列表、斜体、嵌套列表(脚本会自动移除 ---)。 频率限制:企业内部机器人每秒20次,Webhook 每分钟20条。Webhook 仅支持群聊,link/feedCard 不支持 @功能;单聊需用户先主动给机器人发过消息;单次批量最多100个用户;过长内容建议拆分或改用文件发送。 常见错误码:企业内部机器人 40001(token过期)、40004(无效机器人)、40009(用户不在可见范围)、40010(未建立会话)、40037(发送过频);Webhook 300001(无效token)、310000(签名校验失败)、302503(频率限制)。