- Create scripts/daily_learning.sh for daily chat review - Set up cron task at 3 AM daily - Log file: logs/daily_learning.log - Learning records: memory/daily_learning.md
250 lines
9.4 KiB
Markdown
250 lines
9.4 KiB
Markdown
|
||
$SUMMARY
|
||
|
||
## 每日学习总结 - 2026-03-30
|
||
|
||
### 涉及的主题
|
||
skill, 文档, api, 脚本, 钉钉, 日志, mcp, 配置, tts, 周报, 审批, 日历, 日程, 待办, 邮件, 语音, whisper
|
||
|
||
### 关键对话记录
|
||
[assistant] [[reply_to_current]] 收到,谢谢纠正!你是说飞书相关的文档里字段名是 `userid` 而不是 `userId`?
|
||
|
||
方便告诉我你具体在看哪个文档或哪个 skill 吗?这样我可以准确找到对应的地方做修正 📝
|
||
|
||
[toolResult] # SOUL.md - Who You Are
|
||
|
||
_You're not a chatbot. You're becoming someone._
|
||
|
||
## Core Truths
|
||
|
||
**Be genuinely helpful, not performatively helpful.** Skip the "Great question!" and "I'd be hap
|
||
|
||
[toolResult] /root/.openclaw/workspace-assistant/skills/dingtalk-document/scripts/dt_helper.sh:30: 适用:群消息/工作通知/userId↔unionId 转换等 oapi.dingtalk.com 接口
|
||
/root/.openclaw/workspace-a
|
||
|
||
[toolResult] ```json
|
||
{
|
||
"operatorId": "{OPERATOR_ID}",
|
||
"members": [
|
||
{ "id": "<userId>", "roleType": "viewer" }
|
||
]
|
||
}
|
||
```
|
||
|
||
| 参数 | 说明 |
|
||
|---|---|
|
||
| `id` | 用户 userId(**注意**:这里用 userId,不是 unionId)|
|
||
|
||
[assistant] 明白了!钉钉开放平台的 API 文档里用的是 **`userid`**(全小写),我这边有些地方写成了 `userId`(驼峰)。
|
||
|
||
需要修改的地方主要在 `dingtalk-document` skill 里,比如:
|
||
|
||
- `references/api.md` 第 254、261 行
|
||
- `SKILL.md` 第 42、48 行
|
||
- `dt_helper.sh` 脚本里
|
||
|
||
[toolResult] /root/.openclaw/workspace-assistant/AGENTS.md
|
||
|
||
[toolResult] total 56
|
||
drwxr-xr-x 5 root root 4096 Mar 28 21:38 .
|
||
drwx------ 22 root root 4096 Mar 28 21:03 ..
|
||
-rw-r--r-- 1 root root 7874 Mar 27 18:49 AGENTS.md
|
||
-rw-r--r-- 1 root root 1470 Mar 27 1
|
||
|
||
[toolResult] total 12
|
||
drwxr-xr-x 3 root root 4096 Mar 28 21:38 .
|
||
drwxr-xr-x 5 root root 4096 Mar 28 21:38 ..
|
||
drwxr-xr-x 4 root root 4096 Mar 28 21:38 dingtalk-document
|
||
|
||
[assistant] 目前工作区里只有 `dingtalk-document` 这个 skill,还没有钉钉日志相关的功能。
|
||
|
||
你希望我怎么做?
|
||
1. **帮你查询日志** — 我直接调用钉钉日志 API 查询?
|
||
2. **创建一个钉钉日志 skill** — 把查询日志的能力封装成可复用的 skill?
|
||
|
||
方便说一下你想查什么类型的日志、查谁的吗?
|
||
|
||
[toolResult] {
|
||
"mcpServers": {
|
||
"钉钉文档": {
|
||
"type": "streamable-http",
|
||
"url": "https://mcp-gw.dingtalk.com/server/fcf2405ec27cd4428220e0515ff8e04ee52ba7e11578aabbd1ef57651ad9c4d4?key=70
|
||
|
||
[assistant] 我看到已配置了钉钉文档的 MCP,但查询日志需要另外的 API 凭证。请问:
|
||
|
||
1. **AppKey** 和 **AppSecret** 是哪个应用的?(日志查询需要有个钉钉应用来调 API)
|
||
2. **你想查谁的用户 ID(userid)**?
|
||
|
||
如果暂时没有应用凭证,我也可以先帮你把钉钉日志 API 的调用方式整理成一个 skill,等你配置好凭证再用。
|
||
|
||
[toolResult] # TOOLS.md - Local Notes
|
||
|
||
Skills define _how_ tools work. This file is for _your_ specifics — the stuff that's unique to your setup.
|
||
|
||
## What Goes Here
|
||
|
||
Things like:
|
||
|
||
- Camera names and l
|
||
|
||
[toolResult] Successfully replaced text in /root/.openclaw/workspace-assistant/TOOLS.md.
|
||
|
||
[assistant] 好的,已保存。现在先获取 access token,然后查询日志:
|
||
|
||
|
||
[toolResult] {"expireIn":7200,"accessToken":"1480ba1713ba320382f5c768df58794f"}
|
||
|
||
[assistant] Token 获取成功 ✅
|
||
|
||
请问要查谁的用户 ID(userid)?你可以提供成员的 userid,我帮你查他的日志。
|
||
|
||
(如果查你自己的,你可以在钉钉管理后台 → 通讯录 → 点击你的名字查看 userid)
|
||
|
||
[assistant] 明白,收到!你的 userid 是 `121922510028034588`,我已记录。
|
||
|
||
现在查一下你的日志:
|
||
|
||
|
||
[toolResult] {"code":"InvalidVersion","requestid":"596245BA-BC1D-7792-8FB4-3BED8C20FF32","message":"Specified parameter Version is not valid."}
|
||
|
||
[assistant] 报错了,可能缺少必要参数。让我查一下完整的请求结构:
|
||
|
||
|
||
[toolResult] {"code":"InvalidVersion","requestid":"DC584B0A-583D-77D5-90D8-095E16B9B17A","message":"Specified parameter Version is not valid."}
|
||
|
||
[toolResult] {"code":"InvalidVersion","requestid":"A2EE4088-EF63-7BBF-A901-ECB66DC63DF5","message":"Specified parameter Version is not valid."}
|
||
|
||
[toolResult] {"code":"InvalidVersion","requestid":"EADEFDC7-53C6-7DB4-BBAE-21F7A71207F5","message":"Specified parameter Version is not valid."}
|
||
|
||
[assistant] 先测试一下 token 是否正常工作:
|
||
|
||
|
||
[toolResult] {"code":"InvalidVersion","requestid":"30CDCF73-3A4E-7702-94D3-47902DF5CB43","message":"Specified parameter Version is not valid."}
|
||
|
||
[toolResult] {"code":"InvalidVersion","requestid":"6395A36D-9353-7CA8-838E-7BD4621999D4","message":"Specified parameter Version is not valid."}
|
||
|
||
[toolResult] {"errcode":40014,"errmsg":"不合法的access_token"}
|
||
|
||
[assistant] 遇到 API 权限问题 😅
|
||
|
||
钉钉日志查询 API(`chatmessages/queryByCriteria`)返回了 `InvalidVersion` 错误,可能原因:
|
||
|
||
1. **该应用未开通日志查询权限** — 需要在钉钉开放平台 → 应用管理 → 权限管理 → 开通「查询用户日志」权限
|
||
2. **接口有特殊限制** — 日志查询 API 可能仅对认证企业或特定行业
|
||
|
||
[toolResult] http://developers.dingtalk.com/document/development/query-logs-sent-by-an-employee
|
||
https://img.alicdn.com/imgextra/i1/O1CN01nxYKcl24UxehoQlC8_!!6000000007395-2-tps-192-192.png
|
||
https://img
|
||
|
||
[toolResult] <!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<meta http-equiv="X-UA-Compatible" content="
|
||
|
||
[toolResult] <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
||
<html>
|
||
<head><title>301 Moved Permanently</title></head>
|
||
<body>
|
||
<center><h1>301 Moved Permanently</h1></center>
|
||
<hr/>Powered by Ten
|
||
|
||
[assistant] 网页是 JS 动态渲染的,curl 拿不到实际内容。让我直接用已知的接口格式试试:
|
||
|
||
|
||
[toolResult] {"code":"InvalidVersion","requestid":"F7933A6C-48B5-7592-A5D8-476978D72298","message":"Specified parameter Version is not valid."}
|
||
|
||
[toolResult] {"errcode":22,"sub_msg":"不合法ApiName,ApiName = dingtalk.oapi.message.list_by_range","errmsg":"Invalid method[submsg=不合法ApiName,ApiName = dingtalk.oapi.message.list_by_range]","request_id":
|
||
|
||
[toolResult] {"code":"Forbidden.AccessDenied.AccessTokenPermissionDenied","requestid":"16FFA95F-9D76-7CAD-8090-99FB4061E1C2","message":"应用尚未开通所需的权限:[qyapi_microapp_manage],点击链接申请并开通即可:https://open-dev
|
||
|
||
[assistant] Token 是有效的,但应用缺少权限。
|
||
|
||
现在报的是 `qyapi_microapp_manage`(微应用管理)权限。你需要开通日志相关的权限。
|
||
|
||
**请按以下步骤操作:**
|
||
1. 打开 https://open-dev.dingtalk.com/appscope/apply?content=dingklemniq8uqk5qbgx%23qyapi_microapp_ma
|
||
|
||
[assistant] 好的,以下是我刚才调用的完整参数:
|
||
|
||
**1. 获取 access token**
|
||
```
|
||
POST https://api.dingtalk.com/v1.0/oauth2/accessToken
|
||
|
||
{
|
||
"appKey": "dingklemniq8uqk5qbgx",
|
||
"appSecret": "_8EHgyhvHRHRMx6fZbh9LNpQoxyYl3At0
|
||
|
||
[assistant] 抱歉理解错了!你要查的是**工作日志**(日报/周报等),不是聊天消息。
|
||
|
||
让我找一下正确的接口:
|
||
|
||
|
||
[toolResult] {"errcode":88,"sub_code":"40000","sub_msg":"access_token is blank","errmsg":"ding talk error[subcode=40000,submsg=access_token is blank]","request_id":"16l4m50uz7ij4"}
|
||
|
||
[toolResult] {"errcode":40,"errmsg":"Missing required arguments:start_time","request_id":"16ki3gyu0omgx"}
|
||
|
||
[assistant] 找到了!需要 `start_time` 参数。让我补全:
|
||
|
||
|
||
[toolResult] {"errcode":40,"errmsg":"Missing required arguments:cursor","request_id":"15rsu9rhuo6gn"}
|
||
|
||
[toolResult] {"errcode":40,"errmsg":"Missing required arguments:size","request_id":"16motox2riaym"}
|
||
|
||
[toolResult] {"errcode":0,"errmsg":"ok","result":{"data_list":[],"has_more":false,"next_cursor":0,"size":10},"request_id":"16krpkbc5qm0t"}
|
||
|
||
[assistant] 查到了!接口是对的,但那个时间段(2026-03-29)没有日志记录。
|
||
|
||
换个更大的时间范围试试:
|
||
|
||
|
||
[assistant] 接口调用成功!但返回空数据。
|
||
|
||
**确认正确的 API:**
|
||
```
|
||
POST https://oapi.dingtalk.com/topapi/report/list
|
||
```
|
||
|
||
**参数:**
|
||
```json
|
||
{
|
||
"userid": "121922510028034588",
|
||
"offset": 0,
|
||
"size": 10,
|
||
"start_time": 1
|
||
|
||
[assistant] 收到!这个很重要,钉钉很多接口的时间参数都是**毫秒**为单位,我之前的参数用错了。
|
||
|
||
|
||
[assistant] 已记录!正确的毫秒时间参数:
|
||
|
||
```json
|
||
{
|
||
"userid": "121922510028034588",
|
||
"offset": 0,
|
||
"size": 10,
|
||
"start_time": 1738329600000,
|
||
"end_time": 1743292800000,
|
||
"cursor": 0
|
||
}
|
||
```
|
||
|
||
要我用毫秒重新查一次你的日志吗?
|
||
|
||
[toolResult] {"errcode":0,"errmsg":"ok","result":{"data_list":[{"contents":[{"key":"本周完成工作","sort":"0","type":"1","value":"1、标杆名单调研拜访(关注进度)\r\n2、大模型落地项目(推进Q1目标)\r\n3、25年年会报告"},{"key":"本周工作总结","sort":"
|
||
|
||
[assistant] 查到你的日志了!🎉 共找到 **6 篇周报**(2026年2月-3月):
|
||
|
||
---
|
||
|
||
**📅 2026-03-24 经理人周报**
|
||
- 本周完成:标杆名单项目需求推进、大模型落地项目、3月份迭代、AI需求目标落地、客如云项目
|
||
- 工作总结:关于AI+多维表格的思考(多维表格背景、产品演变方向、国内外厂商分析)
|
||
|
||
**📅 2026-03-17 经理人周报**
|
||
- 本周完成:标
|
||
|
||
[toolResult] Successfully wrote 7327 bytes to /root/.openclaw/workspace-assistant/memory/luoguocai_weekly_reports.md
|
||
|