- Add agent configuration files (AGENTS.md, USER.md, IDENTITY.md, SOUL.md) - Add git configuration and skills management scripts - Add frontend/backend analysis tools and reports - Add DingTalk media sender utilities and documentation - Fix OpenClaw runtime environment (Node.js and Python) - Configure git remotes and push scripts
3.8 KiB
3.8 KiB
2026-03-04 记忆
今天完成了 dingtalk-media-sender skill 的开发和调试工作。
dingtalk-media-sender skill 开发
背景
用户柏方需要在钉钉群聊中发送图片、文件、视频。OpenClaw 当前的 dingtalk-api skill 只支持发送文本消息,不支持媒体文件。
开发过程
1. 技能开发
- 创建位置:
C:\Users\ALC\.openclaw\skills\dingtalk-media-sender\ - 使用 Qwen3-coder-480b 模型(专门用于编程任务)
- 开发了 3 个 TypeScript 脚本:
upload-media.ts- 媒体文件上传send-media-group.ts- 群聊媒体消息发送send-media-user.ts- 单聊媒体消息发送
2. 依赖安装
- 使用
F:\openclaw-runtime\node-v24.14.0-win-x64下的 npm 进行依赖管理 - 成功安装所有需要的包
3. API 问题调试
问题描述:
- 初始实现使用
https://api.dingtalk.com/v1.0/media/upload - 返回 404 错误:
InvalidAction.NotFound
解决方案:
- 参考钉钉官方文档:
https://open.dingtalk.com/document/orgapp-server/upload-media-files - 修复内容:
- API URL 修正:
api.dingtalk.com/v1.0/media/upload→oapi.dingtalk.com/media/upload - Token 传递方式:Header
x-acs-dingtalk-access-token→ Query 参数access_token - 文件字段名:
file→media - 响应字段:
mediaId→media_id
- API URL 修正:
4. Git 版本管理
- 使用 Git 管理代码变更
- 共创建 3 个 commit:
e196269- 使用 createReadStream 修复内存问题119b012- 修复 API endpoint 和参数格式d632f9b- 修复 media_id 字段名读取
任务:日本 Yahoo 首页截图
执行过程
- 使用浏览器工具打开
https://www.yahoo.co.jp/ - 截取第一屏截图
- 上传到钉钉媒体服务器
- 尝试发送到群聊(robotCode 配置问题未成功发送)
结果
- 图片文件路径:
C:\Users\ALC\.openclaw\workspace\yahoo_japan_screenshot.jpg - 文件大小:87.95 KB
- media_id:
@lADPD0ni1-bFMwXNB9DNARg - 截图时间:2026-03-04 18:46 (Asia/Tokyo)
页面内容概览
- 天气:新宿区,今夜 15℃/5℃,花粉预警:非常多
- 体育:职业棒球 5 场比赛进行中
- 热搜:イクラちゃん、SFL、国立博物馆、馬事公苑、宗教配慮
配置相关
Qwen3 模型配置
- 模型:
nvidia/qwen/qwen3-coder-480b-a35b-instruct - 别名:
qwen3 - 上下文窗口:1,000,000 tokens
- 最大输出:65,536 tokens
- 用途:专门用于编程任务
OpenClaw 运行环境
- Node.js:
F:\openclaw-runtime\node-v24.14.0-win-x64\node.exe - npm:同样路径下的 npm.cmd
- 工作区:
C:\Users\ALC\.openclaw\workspace
工作方式
- 用户偏好:先制定计划 → 确认 → 执行,并要求提供替代方案
- 对于编程任务:指定使用 Qwen3 模型("用 qwen3 编写...")
- 日常对话:使用默认的 GLM-4.7 模型
dingtalk API 配置
- APP_KEY:
ding4ursdp0l2giat4bj - APP_SECRET:已配置
- 群聊 ID:
cidcjYshXVtKck5LfOO9AqOJg==
注意事项
robotCode 问题
尝试使用 4293382733 作为 robotCode 发送群聊图片时,返回 "robot 不存在" 错误。
- 可能原因:robotCode 配置不正确
- 影响:无法通过钉钉 SDK 的 orgGroupSend API 发送媒体消息到群聊
- 替代方案:使用 OpenClaw 的 message 工具发送文本消息
钉钉媒体上传 API 正确格式
- API URL:
https://oapi.dingtalk.com/media/upload - Query 参数:access_token(必填)
- Body 参数(multipart/form-data):
- type:媒体类型(image/voice/video/file)
- media:媒体文件(注意字段名是 media 不是 file)
- 返回字段:media_id(不是 mediaId)
重要决策
- ACP (Agent Coding Platform) 配置尝试失败,暂时不使用独立 coder agent
- 采用在 main agent 中按需切换模型的方式,根据任务类型选择合适的模型