- 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
107 lines
3.8 KiB
Markdown
107 lines
3.8 KiB
Markdown
# 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`
|
||
|
||
#### 4. Git 版本管理
|
||
- 使用 Git 管理代码变更
|
||
- 共创建 3 个 commit:
|
||
1. `e196269` - 使用 createReadStream 修复内存问题
|
||
2. `119b012` - 修复 API endpoint 和参数格式
|
||
3. `d632f9b` - 修复 media_id 字段名读取
|
||
|
||
## 任务:日本 Yahoo 首页截图
|
||
|
||
### 执行过程
|
||
1. 使用浏览器工具打开 `https://www.yahoo.co.jp/`
|
||
2. 截取第一屏截图
|
||
3. 上传到钉钉媒体服务器
|
||
4. 尝试发送到群聊(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 中按需切换模型的方式,根据任务类型选择合适的模型
|