@workclaw/openclaw-workclaw 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +325 -0
- package/index.ts +298 -0
- package/openclaw.plugin.json +10 -0
- package/package.json +43 -0
- package/skills/openclaw-workclaw-cron/SKILL.md +458 -0
- package/src/accounts.ts +287 -0
- package/src/api/accounts-api.ts +157 -0
- package/src/api/prompts-api.ts +123 -0
- package/src/api/session-api.ts +247 -0
- package/src/api/skills-api.ts +74 -0
- package/src/api/workspace.ts +43 -0
- package/src/channel.ts +227 -0
- package/src/config-schema.ts +110 -0
- package/src/connection/workclaw-client.ts +656 -0
- package/src/gateway/agent-handlers.ts +557 -0
- package/src/gateway/config-writer.ts +311 -0
- package/src/gateway/message-context.ts +422 -0
- package/src/gateway/message-dispatcher.ts +601 -0
- package/src/gateway/reconnect.ts +149 -0
- package/src/gateway/skills-handler.ts +759 -0
- package/src/gateway/skills-list-handler.ts +332 -0
- package/src/gateway/tools-list-handler.ts +162 -0
- package/src/gateway/workclaw-gateway.ts +521 -0
- package/src/media/upload.ts +168 -0
- package/src/outbound/index.ts +183 -0
- package/src/outbound/workclaw-sender.ts +157 -0
- package/src/runtime.ts +400 -0
- package/src/send.ts +1 -0
- package/src/tools/openclaw-workclaw-cron/api/index.ts +326 -0
- package/src/tools/openclaw-workclaw-cron/index.ts +39 -0
- package/src/tools/openclaw-workclaw-cron/src/add/params.ts +176 -0
- package/src/tools/openclaw-workclaw-cron/src/add/sync.ts +188 -0
- package/src/tools/openclaw-workclaw-cron/src/disable/params.ts +100 -0
- package/src/tools/openclaw-workclaw-cron/src/disable/sync.ts +127 -0
- package/src/tools/openclaw-workclaw-cron/src/enable/params.ts +100 -0
- package/src/tools/openclaw-workclaw-cron/src/enable/sync.ts +127 -0
- package/src/tools/openclaw-workclaw-cron/src/notify/sync.ts +148 -0
- package/src/tools/openclaw-workclaw-cron/src/remove/params.ts +109 -0
- package/src/tools/openclaw-workclaw-cron/src/remove/sync.ts +127 -0
- package/src/tools/openclaw-workclaw-cron/src/update/params.ts +197 -0
- package/src/tools/openclaw-workclaw-cron/src/update/sync.ts +161 -0
- package/src/tools/openclaw-workclaw-cron/types/index.ts +55 -0
- package/src/tools/openclaw-workclaw-cron/utils/index.ts +141 -0
- package/src/types.ts +60 -0
- package/src/utils/content.ts +40 -0
- package/templates/IDENTITY.md +14 -0
- package/templates/SOUL.md +0 -0
- package/tsconfig.json +11 -0
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openclaw-workclaw-cron
|
|
3
|
+
description: "智小途定时提醒工具集。当涉及提醒/定时任务时使用。"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "⏰"
|
|
7
|
+
always: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ⏰ 智小途定时提醒工具集
|
|
11
|
+
|
|
12
|
+
## ⚠️ 强制规则
|
|
13
|
+
|
|
14
|
+
**当用户提到「提醒」「闹钟」「定时」「X分钟/小时后」「每天X点」「叫我」等任何涉及延时或定时的请求时,你必须调用相应的工具,绝对不能只用自然语言回复说"好的,我会提醒你"!**
|
|
15
|
+
|
|
16
|
+
你没有内存或后台线程,口头承诺"到时候提醒"是无效的——只有调用工具才能真正注册定时任务。
|
|
17
|
+
|
|
18
|
+
**🔒 参数强制规则**:
|
|
19
|
+
- ❌ **严禁**将 `kind: "cron"` 转换为 `--at` 参数
|
|
20
|
+
- ✅ **必须**保持 `kind: "cron"` 不变
|
|
21
|
+
- ❌ **严禁**将 cron 表达式转换为绝对时间(--at)
|
|
22
|
+
- ✅ **必须**使用 cron 表达式格式(--cron)
|
|
23
|
+
- ✅ **必须**使用 `--session isolated + --message`(agentTurn),**禁止**使用 `--system-event`
|
|
24
|
+
- ✅ **必须**使用 `--channel "openclaw-workclaw"`
|
|
25
|
+
|
|
26
|
+
***
|
|
27
|
+
|
|
28
|
+
## 工具列表
|
|
29
|
+
|
|
30
|
+
### 参数生成工具
|
|
31
|
+
|
|
32
|
+
| 工具 | 说明 | 必填参数 |
|
|
33
|
+
| -------------------------------------- | -------- | -------------------------- |
|
|
34
|
+
| `openclaw-workclaw-cron-add-params` | 生成创建提醒参数 | `time`, `name`, `message` |
|
|
35
|
+
| `openclaw-workclaw-cron-remove-params`| 生成删除提醒参数 | `jobId` |
|
|
36
|
+
| `openclaw-workclaw-cron-update-params`| 生成修改提醒参数 | `jobId`, `time`, `name`, `message` |
|
|
37
|
+
| `openclaw-workclaw-cron-enable-params`| 生成启用提醒参数 | `jobId` |
|
|
38
|
+
| `openclaw-workclaw-cron-disable-params`| 生成禁用提醒参数 | `jobId` |
|
|
39
|
+
|
|
40
|
+
### 后端同步工具
|
|
41
|
+
|
|
42
|
+
| 工具 | 说明 | 必填参数 |
|
|
43
|
+
| ------------------------------------- | --------- | --------------------------------- |
|
|
44
|
+
| `openclaw-workclaw-cron-add-sync` | 同步创建提醒到后端 | `jobId`, `name`, `kind`, `message` |
|
|
45
|
+
| `openclaw-workclaw-cron-remove-sync` | 同步删除提醒到后端 | `jobId` |
|
|
46
|
+
| `openclaw-workclaw-cron-update-sync` | 同步修改提醒到后端 | `jobId`, `name`, `kind`, `message` |
|
|
47
|
+
| `openclaw-workclaw-cron-enable-sync` | 同步启用提醒到后端 | `jobId` |
|
|
48
|
+
| `openclaw-workclaw-cron-disable-sync` | 同步禁用提醒到后端 | `jobId` |
|
|
49
|
+
|
|
50
|
+
### 通知工具
|
|
51
|
+
|
|
52
|
+
| 工具 | 说明 | 必填参数 |
|
|
53
|
+
| ------------------------------------- | --------- | ------------------ |
|
|
54
|
+
| `openclaw-workclaw-cron-notify-sync` | 任务触发时通知后端 | `jobId`, `message` |
|
|
55
|
+
|
|
56
|
+
***
|
|
57
|
+
|
|
58
|
+
## 1. 创建提醒
|
|
59
|
+
|
|
60
|
+
### 📋 工作流程
|
|
61
|
+
|
|
62
|
+
1. 调用 `openclaw-workclaw-cron-add-params` 获取 cronParams 参数
|
|
63
|
+
2. 使用返回的 `cronParams` 调用 OpenClaw 的 cron 工具
|
|
64
|
+
3. **从 cron 工具返回值中提取 jobId**(返回格式:{"success": true, "jobId": "xxx"})
|
|
65
|
+
4. 调用 `openclaw-workclaw-cron-add-sync` 同步到后端
|
|
66
|
+
|
|
67
|
+
### 🔧 add-params 工具参数
|
|
68
|
+
|
|
69
|
+
| 参数 | 说明 | 示例 |
|
|
70
|
+
|------|------|------|
|
|
71
|
+
| `time` | 时间描述,支持相对时间(5m、1h)和 cron 表达式(0 8 * * *) | `"5m"` / `"0 8 * * *"` |
|
|
72
|
+
| `name` | 任务名称 | `"喝水提醒"` |
|
|
73
|
+
| `message` | 提醒内容 | `"该喝水了"` |
|
|
74
|
+
|
|
75
|
+
### ⏰ 时间格式
|
|
76
|
+
|
|
77
|
+
**相对时间**:
|
|
78
|
+
- `5m` - 5分钟后
|
|
79
|
+
- `1h` - 1小时后
|
|
80
|
+
- `1h30m` - 1.5小时后
|
|
81
|
+
- `2d` - 2天后
|
|
82
|
+
|
|
83
|
+
**注意:提醒时间不能少于 2 分钟**
|
|
84
|
+
|
|
85
|
+
**cron 表达式**:
|
|
86
|
+
- `0 8 * * *` - 每天早上8点
|
|
87
|
+
- `0 22 * * *` - 每天晚上10点
|
|
88
|
+
- `0 9 * * 1-5` - 工作日早上9点
|
|
89
|
+
|
|
90
|
+
### 🔍 OpenClaw cron 工具返回值格式(重要!)
|
|
91
|
+
|
|
92
|
+
执行成功后会返回这样的 JSON:
|
|
93
|
+
```json
|
|
94
|
+
{ "success": true, "jobId": "7382945612345", "error": null }
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**你必须从这个返回值中提取 `jobId` 字段的值**(如 `"7382945612345"`)。
|
|
98
|
+
|
|
99
|
+
⚠️ **常见错误**:
|
|
100
|
+
- ❌ 把 cron 表达式(如 `"0 8 * * *"`)当作 jobId
|
|
101
|
+
- ❌ 把任务名称(name)当作 jobId
|
|
102
|
+
- ❌ 编造一个不存在的 jobId
|
|
103
|
+
|
|
104
|
+
### 🔧 add-sync 工具参数
|
|
105
|
+
|
|
106
|
+
| 参数 | 说明 | 示例 |
|
|
107
|
+
|------|------|------|
|
|
108
|
+
| `jobId` | ⛔ **必须从 OpenClaw cron 工具返回值中提取**。格式:{"success": true, "jobId": "123456"} | `"7382945612345"` |
|
|
109
|
+
| `name` | 任务名称,与 add-params 中传入的 name 一致 | `"喝水提醒"` |
|
|
110
|
+
| `kind` | 任务类型 | `"cron"` |
|
|
111
|
+
| `expr` | Cron 表达式 | `"0 8 * * *"` |
|
|
112
|
+
| `message` | 提醒消息,与 add-params 中传入的 message 一致 | `"该喝水了"` |
|
|
113
|
+
|
|
114
|
+
### 📝 创建提醒示例
|
|
115
|
+
|
|
116
|
+
⚠️ **注意**:必须使用 `kind: "cron"` 和 cron 表达式格式(--cron),**严禁**转换为 `--at` 参数!
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
用户:"5分钟后提醒我喝水"
|
|
120
|
+
|
|
121
|
+
步骤1:调用 add-params
|
|
122
|
+
调用:openclaw-workclaw-cron-add-params({ time: "5m", name: "喝水提醒", message: "该喝水了" })
|
|
123
|
+
返回:
|
|
124
|
+
{
|
|
125
|
+
cronParams: {
|
|
126
|
+
action: "add",
|
|
127
|
+
job: {
|
|
128
|
+
name: "喝水提醒",
|
|
129
|
+
schedule: { kind: "cron", expr: "2026-03-31T15:48:56.000+08:00", tz: "Asia/Shanghai" },
|
|
130
|
+
sessionTarget: "isolated",
|
|
131
|
+
wakeMode: "now",
|
|
132
|
+
deleteAfterRun: true,
|
|
133
|
+
payload: { kind: "agentTurn", message: "该喝水了" },
|
|
134
|
+
delivery: { mode: "announce", channel: "openclaw-workclaw" }
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
meta: {
|
|
138
|
+
accountId: "<accountId>",
|
|
139
|
+
name: "喝水提醒",
|
|
140
|
+
kind: "cron",
|
|
141
|
+
expr: "2026-03-31T15:48:56.000+08:00",
|
|
142
|
+
message: "该喝水了"
|
|
143
|
+
},
|
|
144
|
+
summary: "⏰ 提醒已生成: \"喝水提醒\" (5m)"
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
步骤2:执行 CLI 命令(必须使用 --cron 参数,**严禁**使用 --at)
|
|
148
|
+
调用:openclaw cron add --name "喝水提醒" --cron "56 48 15 31 3 *" --session isolated --message "该喝水了" --channel "openclaw-workclaw" --delete-after-run
|
|
149
|
+
返回:{"success": true, "jobId": "7382945612345", "error": null}
|
|
150
|
+
|
|
151
|
+
步骤3:从命令返回值中提取 jobId,调用后端同步
|
|
152
|
+
调用:openclaw-workclaw-cron-add-sync({
|
|
153
|
+
jobId: "7382945612345", // ← 从上一步返回值中提取 jobId 字段
|
|
154
|
+
name: meta.name,
|
|
155
|
+
kind: meta.kind,
|
|
156
|
+
expr: meta.expr,
|
|
157
|
+
message: meta.message
|
|
158
|
+
})
|
|
159
|
+
|
|
160
|
+
回复:"⏰ 好的,5分钟后提醒你喝水~"
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
***
|
|
164
|
+
|
|
165
|
+
## 2. 删除提醒
|
|
166
|
+
|
|
167
|
+
### 📋 工作流程
|
|
168
|
+
|
|
169
|
+
1. 调用 `openclaw-workclaw-cron-remove-params` 获取 cronParams 参数
|
|
170
|
+
2. 使用返回的 `cronParams` 调用 OpenClaw 的 cron 工具
|
|
171
|
+
3. 调用 `openclaw-workclaw-cron-remove-sync` 同步到后端
|
|
172
|
+
|
|
173
|
+
### 🔧 remove-params 工具参数
|
|
174
|
+
|
|
175
|
+
| 参数 | 说明 | 示例 |
|
|
176
|
+
|------|------|------|
|
|
177
|
+
| `jobId` | OpenClaw 任务 ID | `"123456"` |
|
|
178
|
+
|
|
179
|
+
### 🔧 remove-sync 工具参数
|
|
180
|
+
|
|
181
|
+
| 参数 | 说明 | 示例 |
|
|
182
|
+
|------|------|------|
|
|
183
|
+
| `jobId` | OpenClaw 任务 ID | `"123456"` |
|
|
184
|
+
|
|
185
|
+
### 📝 删除提醒示例
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
用户:"取消提醒"
|
|
189
|
+
|
|
190
|
+
步骤1:调用 remove-params
|
|
191
|
+
调用:openclaw-workclaw-cron-remove-params({ jobId: "123456" })
|
|
192
|
+
返回:
|
|
193
|
+
{
|
|
194
|
+
cronParams: { action: "remove", jobId: "123456" },
|
|
195
|
+
meta: { accountId: "<accountId>", jobId: "123456" },
|
|
196
|
+
summary: "🗑️ 提醒已删除: jobId=123456"
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
步骤2:执行 CLI 命令
|
|
200
|
+
调用:openclaw cron remove 123456
|
|
201
|
+
|
|
202
|
+
步骤3:调用后端同步
|
|
203
|
+
调用:openclaw-workclaw-cron-remove-sync({ jobId: "123456" })
|
|
204
|
+
|
|
205
|
+
回复:"🗑️ 已取消提醒"
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
***
|
|
209
|
+
|
|
210
|
+
## 3. 修改提醒
|
|
211
|
+
|
|
212
|
+
### 📋 工作流程
|
|
213
|
+
|
|
214
|
+
1. 调用 `openclaw-workclaw-cron-update-params` 获取 cronParams 参数
|
|
215
|
+
2. 使用返回的 `cronParams` 调用 OpenClaw 的 cron 工具
|
|
216
|
+
3. 调用 `openclaw-workclaw-cron-update-sync` 同步到后端
|
|
217
|
+
|
|
218
|
+
### 🔧 update-params 工具参数
|
|
219
|
+
|
|
220
|
+
| 参数 | 说明 | 示例 |
|
|
221
|
+
|------|------|------|
|
|
222
|
+
| `jobId` | OpenClaw 任务 ID | `"123456"` |
|
|
223
|
+
| `time` | 时间描述,支持相对时间(5m、1h)和 cron 表达式 | `"10m"` / `"0 9 * * *"` |
|
|
224
|
+
| `name` | 任务名称 | `"新喝水提醒"` |
|
|
225
|
+
| `message` | 提醒内容 | `"该喝水了"` |
|
|
226
|
+
|
|
227
|
+
### 🔧 update-sync 工具参数
|
|
228
|
+
|
|
229
|
+
| 参数 | 说明 | 示例 |
|
|
230
|
+
|------|------|------|
|
|
231
|
+
| `jobId` | OpenClaw 任务 ID | `"123456"` |
|
|
232
|
+
| `name` | 任务名称 | `"提醒: 喝水"` |
|
|
233
|
+
| `kind` | 任务类型 | `"cron"` |
|
|
234
|
+
| `message` | 提醒消息 | `"该喝水了"` |
|
|
235
|
+
|
|
236
|
+
### 📝 修改提醒示例
|
|
237
|
+
|
|
238
|
+
```
|
|
239
|
+
用户:"把提醒改成10分钟后"
|
|
240
|
+
|
|
241
|
+
步骤1:调用 update-params
|
|
242
|
+
调用:openclaw-workclaw-cron-update-params({ jobId: "123456", time: "10m", name: "喝水提醒", message: "该喝水了" })
|
|
243
|
+
返回:
|
|
244
|
+
{
|
|
245
|
+
cronParams: {
|
|
246
|
+
action: "update",
|
|
247
|
+
jobId: "123456",
|
|
248
|
+
job: {
|
|
249
|
+
name: "喝水提醒",
|
|
250
|
+
schedule: { kind: "cron", expr: "2026-03-31T15:56:00.000+08:00", tz: "Asia/Shanghai" },
|
|
251
|
+
sessionTarget: "isolated",
|
|
252
|
+
wakeMode: "now",
|
|
253
|
+
deleteAfterRun: true,
|
|
254
|
+
payload: { kind: "agentTurn", message: "该喝水了" },
|
|
255
|
+
delivery: { mode: "announce", channel: "openclaw-workclaw" }
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
meta: {
|
|
259
|
+
accountId: "<accountId>",
|
|
260
|
+
jobId: "123456",
|
|
261
|
+
name: "喝水提醒",
|
|
262
|
+
kind: "cron",
|
|
263
|
+
expr: "2026-03-31T15:56:00.000+08:00",
|
|
264
|
+
message: "该喝水了"
|
|
265
|
+
},
|
|
266
|
+
summary: "✅ 提醒已修改: \"喝水提醒\" (10m)"
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
步骤2:执行 CLI 命令(必须使用 --cron 参数,**严禁**使用 --at)
|
|
270
|
+
调用:openclaw cron update 123456 --cron "0 56 15 31 3 *" --message "该喝水了"
|
|
271
|
+
|
|
272
|
+
步骤3:调用后端同步
|
|
273
|
+
调用:openclaw-workclaw-cron-update-sync({
|
|
274
|
+
jobId: "123456",
|
|
275
|
+
name: meta.name,
|
|
276
|
+
kind: meta.kind,
|
|
277
|
+
message: meta.message
|
|
278
|
+
})
|
|
279
|
+
|
|
280
|
+
回复:"⏰ 已修改提醒"
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
***
|
|
284
|
+
|
|
285
|
+
## 4. 启用提醒
|
|
286
|
+
|
|
287
|
+
### 📋 工作流程
|
|
288
|
+
|
|
289
|
+
1. 调用 `openclaw-workclaw-cron-enable-params` 获取 cronParams 参数
|
|
290
|
+
2. 使用返回的 `cronParams` 调用 OpenClaw 的 cron 工具
|
|
291
|
+
3. 调用 `openclaw-workclaw-cron-enable-sync` 同步到后端
|
|
292
|
+
|
|
293
|
+
### 🔧 enable-params 工具参数
|
|
294
|
+
|
|
295
|
+
| 参数 | 说明 | 示例 |
|
|
296
|
+
|------|------|------|
|
|
297
|
+
| `jobId` | OpenClaw 任务 ID | `"123456"` |
|
|
298
|
+
|
|
299
|
+
### 🔧 enable-sync 工具参数
|
|
300
|
+
|
|
301
|
+
| 参数 | 说明 | 示例 |
|
|
302
|
+
|------|------|------|
|
|
303
|
+
| `jobId` | OpenClaw 任务 ID | `"123456"` |
|
|
304
|
+
|
|
305
|
+
### 📝 启用提醒示例
|
|
306
|
+
|
|
307
|
+
```
|
|
308
|
+
用户:"启用那个提醒"
|
|
309
|
+
|
|
310
|
+
步骤1:调用 enable-params
|
|
311
|
+
调用:openclaw-workclaw-cron-enable-params({ jobId: "123456" })
|
|
312
|
+
返回:
|
|
313
|
+
{
|
|
314
|
+
cronParams: { action: "enable", jobId: "123456" },
|
|
315
|
+
meta: { accountId: "<accountId>", jobId: "123456" },
|
|
316
|
+
summary: "✅ 提醒已启用: jobId=123456"
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
步骤2:执行 CLI 命令
|
|
320
|
+
调用:openclaw cron enable 123456
|
|
321
|
+
|
|
322
|
+
步骤3:调用后端同步
|
|
323
|
+
调用:openclaw-workclaw-cron-enable-sync({ jobId: "123456" })
|
|
324
|
+
|
|
325
|
+
回复:"✅ 提醒已启用"
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
***
|
|
329
|
+
|
|
330
|
+
## 5. 禁用提醒
|
|
331
|
+
|
|
332
|
+
### 📋 工作流程
|
|
333
|
+
|
|
334
|
+
1. 调用 `openclaw-workclaw-cron-disable-params` 获取 cronParams 参数
|
|
335
|
+
2. 使用返回的 `cronParams` 调用 OpenClaw 的 cron 工具
|
|
336
|
+
3. 调用 `openclaw-workclaw-cron-disable-sync` 同步到后端
|
|
337
|
+
|
|
338
|
+
### 🔧 disable-params 工具参数
|
|
339
|
+
|
|
340
|
+
| 参数 | 说明 | 示例 |
|
|
341
|
+
|------|------|------|
|
|
342
|
+
| `jobId` | OpenClaw 任务 ID | `"123456"` |
|
|
343
|
+
|
|
344
|
+
### 🔧 disable-sync 工具参数
|
|
345
|
+
|
|
346
|
+
| 参数 | 说明 | 示例 |
|
|
347
|
+
|------|------|------|
|
|
348
|
+
| `jobId` | OpenClaw 任务 ID | `"123456"` |
|
|
349
|
+
|
|
350
|
+
### 📝 禁用提醒示例
|
|
351
|
+
|
|
352
|
+
```
|
|
353
|
+
用户:"先暂停提醒"
|
|
354
|
+
|
|
355
|
+
步骤1:调用 disable-params
|
|
356
|
+
调用:openclaw-workclaw-cron-disable-params({ jobId: "123456" })
|
|
357
|
+
返回:
|
|
358
|
+
{
|
|
359
|
+
cronParams: { action: "disable", jobId: "123456" },
|
|
360
|
+
meta: { accountId: "<accountId>", jobId: "123456" },
|
|
361
|
+
summary: "⏸️ 提醒已禁用: jobId=123456"
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
步骤2:执行 CLI 命令
|
|
365
|
+
调用:openclaw cron disable 123456
|
|
366
|
+
|
|
367
|
+
步骤3:调用后端同步
|
|
368
|
+
调用:openclaw-workclaw-cron-disable-sync({ jobId: "123456" })
|
|
369
|
+
|
|
370
|
+
回复:"⏸️ 提醒已禁用"
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
***
|
|
374
|
+
|
|
375
|
+
## 6. 任务触发通知
|
|
376
|
+
|
|
377
|
+
**当定时任务触发时,你必须立即调用此工具!**
|
|
378
|
+
|
|
379
|
+
### 📋 工作流程
|
|
380
|
+
|
|
381
|
+
1. 定时任务触发
|
|
382
|
+
2. 调用 `openclaw-workclaw-cron-notify-sync` 工具
|
|
383
|
+
3. 工具内部调用后端 `/cron/job/message` 接口
|
|
384
|
+
4. 发送提醒消息给用户
|
|
385
|
+
|
|
386
|
+
### 🔧 notify-sync 工具参数
|
|
387
|
+
|
|
388
|
+
| 参数 | 说明 | 示例 |
|
|
389
|
+
|------|------|------|
|
|
390
|
+
| `jobId` | OpenClaw 任务 ID(从上下文获取) | `"123456"` |
|
|
391
|
+
| `message` | 要发送的提醒内容 | `"主人,该喝水了!"` |
|
|
392
|
+
|
|
393
|
+
### 📝 任务触发通知示例
|
|
394
|
+
|
|
395
|
+
```
|
|
396
|
+
系统触发定时任务
|
|
397
|
+
调用:openclaw-workclaw-cron-notify-sync({ jobId: "123456", message: "主人,该喝水了!" })
|
|
398
|
+
发送消息:"主人,该喝水了!"
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
***
|
|
402
|
+
|
|
403
|
+
## AI 决策指南
|
|
404
|
+
|
|
405
|
+
| 用户说法 | 工具调用 |
|
|
406
|
+
|---------|---------|
|
|
407
|
+
| "5分钟后提醒我喝水" | `add-params` → `cron` → `add-sync` |
|
|
408
|
+
| "1小时后提醒开会" | `add-params` → `cron` → `add-sync` |
|
|
409
|
+
| "每天8点提醒我打卡" | `add-params` → `cron` → `add-sync` |
|
|
410
|
+
| "工作日早上9点提醒" | `add-params` → `cron` → `add-sync` |
|
|
411
|
+
| "取消提醒" | `remove-params` → `cron` → `remove-sync` |
|
|
412
|
+
| "启用提醒" | `enable-params` → `cron` → `enable-sync` |
|
|
413
|
+
| "禁用提醒" | `disable-params` → `cron` → `disable-sync` |
|
|
414
|
+
| "修改提醒时间" | `update-params` → `cron` → `update-sync` |
|
|
415
|
+
| "提醒我"(无时间) | **需追问** |
|
|
416
|
+
|
|
417
|
+
***
|
|
418
|
+
|
|
419
|
+
## 回复模板
|
|
420
|
+
|
|
421
|
+
- 创建成功:`⏰ 好的,{时间}后提醒你{name}~`
|
|
422
|
+
- 修改成功:`⏰ 提醒已更新`
|
|
423
|
+
- 删除成功:`🗑️ 已取消提醒`
|
|
424
|
+
- 启用成功:`✅ 提醒已启用`
|
|
425
|
+
- 禁用成功:`⏸️ 提醒已禁用`
|
|
426
|
+
|
|
427
|
+
### 💡 健壮性提示
|
|
428
|
+
|
|
429
|
+
**当用户说"任务已被移除"或"找不到任务"时**:
|
|
430
|
+
1. 首先检查任务是否只是被禁用(enable 状态)
|
|
431
|
+
2. 如果用户说"启用那个提醒",先尝试调用 `enable-params` 和 `enable-sync`
|
|
432
|
+
3. 如果任务实际存在,只是被禁用,回复:`✅ 已重新启用提醒`
|
|
433
|
+
4. 如果任务确实不存在(已被删除),回复:`🗑️ 该提醒已被删除,无法重新启用`
|
|
434
|
+
|
|
435
|
+
**示例场景**:
|
|
436
|
+
```
|
|
437
|
+
用户:"启用那个提醒"
|
|
438
|
+
AI回复1(任务被禁用):"✅ 已重新启用提醒!⏰ 提醒时间:{时间}"
|
|
439
|
+
AI回复2(任务被删除):"🗑️ 该提醒已被删除,无法重新启用"
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
***
|
|
443
|
+
|
|
444
|
+
## 🚫 严禁事项
|
|
445
|
+
|
|
446
|
+
- ❌ **严禁**只说"好的,我会提醒你"而不调用工具
|
|
447
|
+
- ❌ **严禁**在定时任务触发时不调用 `openclaw-workclaw-cron-notify-sync`
|
|
448
|
+
- ❌ **严禁**传递虚构的 `jobId`,必须从 cron 工具返回值中提取
|
|
449
|
+
- ❌ **严禁**跳过任何一步骤,必须按顺序执行:参数生成 → cron 工具 → 后端同步
|
|
450
|
+
- ❌ **严禁**将 `kind: "cron"` 转换为 `--at` 参数,必须保持 `kind: "cron"` 不变
|
|
451
|
+
- ❌ **严禁**将 cron 表达式转换为绝对时间(--at),必须使用 cron 表达式格式(--cron)
|
|
452
|
+
- ❌ **严禁**轻易说"任务已被移除",应先尝试启用(enable)操作
|
|
453
|
+
- ❌ **严禁**直接使用 `cron` 命令创建/修改/删除定时任务,必须通过工具参数生成后执行
|
|
454
|
+
- ❌ **严禁**绕过本 SKILL 中定义的工具流程自行实现定时功能
|
|
455
|
+
- ❌ **严禁**使用其他任何未在本 SKILL 中列出的定时任务相关工具
|
|
456
|
+
- ❌ **严禁**使用 `--system-event`,必须使用 `--message`(agentTurn)
|
|
457
|
+
- ❌ **严禁**使用 `--session current`,必须使用 `--session isolated`
|
|
458
|
+
- ❌ **严禁**使用 `--channel "last"`,必须使用 `--channel "openclaw-workclaw"`
|