@honor-claw/yoyo 2026.9.4-beta.3 → 2026.9.4-beta.5

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.
@@ -5,71 +5,74 @@ import { resolveChatIdFromTo as r } from "../../messaging/target/outbound.mjs";
5
5
  import "../../messaging/target/index.mjs";
6
6
  import { CronRunStatus as i } from "../../messaging/notification/types.mjs";
7
7
  import "../../messaging/notification/index.mjs";
8
+ import { resolveListTimezone as a } from "./timezone.mjs";
8
9
  //#region src/capabilities/cron/service.ts
9
- var a = t("cron"), o = 50, s;
10
- function c(e) {
11
- s = e, a.info("cron service handle updated", { available: e !== void 0 });
10
+ var o = t("cron"), s = 50, c;
11
+ function l(e) {
12
+ c = e, o.info("cron service handle updated", { available: e !== void 0 });
12
13
  }
13
- function l() {
14
- s = void 0;
14
+ function u() {
15
+ c = void 0;
15
16
  }
16
- async function u(t, r) {
17
+ async function d(t, r) {
17
18
  let i = await n(t, r);
18
- if (!i) return a.info("cron list: request device has no chat mapping, empty result", {
19
+ if (!i) return o.info("cron list: request device has no chat mapping, empty result", {
19
20
  accountId: t,
20
21
  requestDeviceId: r
21
22
  }), {
22
23
  ok: !0,
23
24
  jobs: [],
24
- total: 0
25
+ total: 0,
26
+ timezone: a()
25
27
  };
26
- let c = s;
27
- if (!c) return {
28
+ let l = c;
29
+ if (!l) return {
28
30
  ok: !1,
29
31
  error: "cron_unavailable"
30
32
  };
31
- let l;
33
+ let u;
32
34
  try {
33
- l = await c.list({ includeDisabled: !0 });
35
+ u = await l.list({ includeDisabled: !0 });
34
36
  } catch (t) {
35
- return a.error("cron list failed", t), {
37
+ return o.error("cron list failed", t), {
36
38
  ok: !1,
37
39
  error: e(t)
38
40
  };
39
41
  }
40
- let u = [];
41
- for (let e of l) {
42
- if (!await m(e, t, i)) continue;
43
- let n = h(e);
44
- n && u.push(n);
42
+ let d = [];
43
+ for (let e of u) {
44
+ if (!await h(e, t, i)) continue;
45
+ let n = g(e);
46
+ n && d.push(n);
45
47
  }
46
- return a.info("cron list for chat", {
48
+ return o.info("cron list for chat", {
47
49
  accountId: t,
48
50
  requestDeviceId: r,
49
51
  requestChatId: i,
50
- total: l.length,
51
- owned: u.length,
52
- returned: Math.min(u.length, o)
52
+ total: u.length,
53
+ owned: d.length,
54
+ returned: Math.min(d.length, s)
53
55
  }), {
54
56
  ok: !0,
55
- jobs: u.slice(0, o),
56
- total: l.length
57
+ jobs: d.slice(0, s),
58
+ total: u.length,
59
+ timezone: a()
57
60
  };
58
61
  }
59
- async function d(t) {
60
- let n = s;
62
+ async function f(t) {
63
+ let n = c;
61
64
  if (n) try {
62
65
  return (await n.list({ includeDisabled: !1 })).find((e) => e?.id === t);
63
66
  } catch (n) {
64
- a.warn("cron job lookup failed", {
67
+ o.warn("cron job lookup failed", {
65
68
  jobId: t,
66
69
  error: e(n)
67
70
  });
68
71
  return;
69
72
  }
70
73
  }
71
- async function f(t) {
72
- let n = s;
74
+ async function p(t) {
75
+ let n = c;
73
76
  if (!n) return {
74
77
  ok: !1,
75
78
  error: "cron_unavailable"
@@ -80,36 +83,36 @@ async function f(t) {
80
83
  removed: (await n.remove(t))?.removed === !0
81
84
  };
82
85
  } catch (r) {
83
- return await p(n, t) === !1 ? (a.warn("cron remove errored but job no longer exists, treated as success", {
86
+ return await m(n, t) === !1 ? (o.warn("cron remove errored but job no longer exists, treated as success", {
84
87
  jobId: t,
85
88
  error: e(r)
86
89
  }), {
87
90
  ok: !0,
88
91
  removed: !1
89
- }) : (a.error("cron remove failed", r, { jobId: t }), {
92
+ }) : (o.error("cron remove failed", r, { jobId: t }), {
90
93
  ok: !1,
91
94
  error: e(r)
92
95
  });
93
96
  }
94
97
  }
95
- async function p(t, n) {
98
+ async function m(t, n) {
96
99
  try {
97
100
  return (await t.list({ includeDisabled: !0 })).some((e) => e?.id === n);
98
101
  } catch (t) {
99
- a.warn("cron job presence lookup failed", {
102
+ o.warn("cron job presence lookup failed", {
100
103
  jobId: n,
101
104
  error: e(t)
102
105
  });
103
106
  return;
104
107
  }
105
108
  }
106
- async function m(e, t, n) {
109
+ async function h(e, t, n) {
107
110
  let i = e.delivery?.to;
108
111
  return typeof i != "string" || i.length === 0 ? !1 : await r(i, t) === n;
109
112
  }
110
- function h(e) {
113
+ function g(e) {
111
114
  if (e.enabled !== !0) return;
112
- let t = g(e.schedule);
115
+ let t = _(e.schedule);
113
116
  if (!t) return;
114
117
  let n = e.state, r = n?.lastRunAtMs;
115
118
  if (r != null) {
@@ -122,11 +125,11 @@ function h(e) {
122
125
  ...e.description ? { description: e.description } : {},
123
126
  schedule: t,
124
127
  nextRunAtMs: n?.nextRunAtMs ?? null,
125
- ...n?.lastRunStatus === void 0 ? {} : { lastRunStatus: _(n.lastRunStatus) },
128
+ ...n?.lastRunStatus === void 0 ? {} : { lastRunStatus: v(n.lastRunStatus) },
126
129
  ...r === void 0 ? {} : { lastRunAtMs: r }
127
130
  };
128
131
  }
129
- function g(e) {
132
+ function _(e) {
130
133
  switch (e?.kind) {
131
134
  case "cron": return {
132
135
  kind: "cron",
@@ -146,7 +149,7 @@ function g(e) {
146
149
  default: return;
147
150
  }
148
151
  }
149
- function _(e) {
152
+ function v(e) {
150
153
  switch (e) {
151
154
  case "ok": return i.Success;
152
155
  case "error": return i.Failed;
@@ -154,4 +157,4 @@ function _(e) {
154
157
  }
155
158
  }
156
159
  //#endregion
157
- export { c as captureCronService, d as findCronJobById, u as listCronJobsForChat, l as releaseCronService, f as removeCronJob };
160
+ export { l as captureCronService, f as findCronJobById, d as listCronJobsForChat, u as releaseCronService, p as removeCronJob };
@@ -0,0 +1,16 @@
1
+ import { getRuntimeConfig as e } from "openclaw/plugin-sdk/config-runtime";
2
+ //#region src/capabilities/cron/timezone.ts
3
+ function t() {
4
+ let t = e().agents?.defaults?.userTimezone, r = typeof t == "string" ? t.trim() : "";
5
+ return n(r) ? r : Intl.DateTimeFormat().resolvedOptions().timeZone?.trim() || "UTC";
6
+ }
7
+ function n(e) {
8
+ if (!e) return !1;
9
+ try {
10
+ return new Intl.DateTimeFormat("en-US", { timeZone: e }).format(/* @__PURE__ */ new Date()), !0;
11
+ } catch {
12
+ return !1;
13
+ }
14
+ }
15
+ //#endregion
16
+ export { t as resolveListTimezone };
@@ -16,7 +16,8 @@ var n = "cron.list", r = "cron.remove", i = async ({ event: t, accountId: n }) =
16
16
  ok: !0,
17
17
  responsePayload: {
18
18
  ok: !0,
19
- jobs: i.jobs
19
+ jobs: i.jobs,
20
+ timezone: i.timezone
20
21
  }
21
22
  } : {
22
23
  ok: !1,
@@ -51,6 +51,7 @@ function m(e, t) {
51
51
  ` 请求方:account=\`${t.accountId}\` deviceId=\`${t.deviceId}\``,
52
52
  ` 归属过滤键:\`chat:${t.chatId}\`(delivery.to 归一后等于该 chatId 的任务才返回)`,
53
53
  ` 任务统计:网关共 ${e.total} 条,归属当前会话 ${e.jobs.length} 条`,
54
+ ` 展示时区:\`${e.timezone}\`(at/every 墙钟换算)`,
54
55
  ""
55
56
  ];
56
57
  return e.jobs.length === 0 ? (n.push(e.total > 0 ? `(当前会话无归属任务;网关另有 ${e.total} 条任务,其 delivery.to 未指向 \`chat:${t.chatId}\`)` : "(网关无任何任务)", "", "验证提示:端侧任务列表应同样为空"), n.join("\n")) : (n.push("| # | 名称 | jobId | 调度 | 下次执行 | 上次执行 |", "| --- | --- | --- | --- | --- | --- |", ...e.jobs.map((e, t) => p(t + 1, e)), "", "&nbsp;", "", "验证提示:", "- 端侧任务列表应与上表一致(列即端侧 DTO 投影,无 delivery 等内部字段)", "- 删除验证:`/yoyo mock cron remove <jobId>` 后重新执行本命令,对应任务应消失"), n.join("\n"));
@@ -2,27 +2,29 @@ import { resolveAgentPromptContribution as e } from "./agent.mjs";
2
2
  import { resolveCloudToolPromptContribution as t } from "./cloud-tool.mjs";
3
3
  import { resolveCronDeliveryPromptContribution as n } from "./cron.mjs";
4
4
  import { resolveLocationPromptContribution as r } from "./location.mjs";
5
- import { resolveSkillPromptContribution as i } from "./skill.mjs";
5
+ import { resolveCronSkillFallbackContribution as i } from "./skill-fallback.mjs";
6
+ import { resolveSkillPromptContribution as a } from "./skill.mjs";
6
7
  //#region src/core/prompt/builder.ts
7
- function a(e) {
8
+ function o(e) {
8
9
  let t = e.filter((e) => !!e);
9
10
  return t.length > 0 ? t.join("\n\n") : void 0;
10
11
  }
11
- function o(e) {
12
- let t = a(e.map((e) => e.prependSystemContext)), n = a(e.map((e) => e.prependContext));
12
+ function s(e) {
13
+ let t = o(e.map((e) => e.prependSystemContext)), n = o(e.map((e) => e.prependContext));
13
14
  return {
14
15
  ...t ? { prependSystemContext: t } : {},
15
16
  ...n ? { prependContext: n } : {}
16
17
  };
17
18
  }
18
- async function s(a) {
19
- return o([
19
+ async function c(o) {
20
+ return s([
20
21
  t(),
21
22
  e(),
22
- n(a),
23
- await i(),
23
+ n(o),
24
+ await a(),
25
+ await i(o),
24
26
  r()
25
27
  ]);
26
28
  }
27
29
  //#endregion
28
- export { s as resolvePromptBuildContribution };
30
+ export { c as resolvePromptBuildContribution };
@@ -22,7 +22,11 @@ function a(e) {
22
22
  - 无论用哪种方式创建,delivery 必须完整包含以下三个字段,缺一不可:
23
23
  {mode:"announce", channel:"yoyo", to:"chat:${a}"}
24
24
  - 特别注意 to 字段必须显式写为 "chat:${a}"。即使工具或命令行看起来能自动推断投递目标,也不省略 to —— 缺少 to 的任务执行结果无法推送回本会话。
25
- - 当用户显式指定投递给其他手机、设备或者 channel 时,可以不按当前规则处理,to 也可以为目标设备对应的 device:{deviceId}` });
25
+ - 当用户显式指定投递给其他手机、设备或者 channel 时,可以不按当前规则处理,to 也可以为目标设备对应的 device:{deviceId}
26
+
27
+ # 定时任务处理策略
28
+ - 严格聚焦当前用户请求:对上下文中已触发过的定时任务及其结果,未经用户明确要求(如"总结一下""结果怎么样")不主动总结、复述或汇报。
29
+ - 不刻意隐式总结前序定时任务:不用"顺带提醒""补充说明"等方式带出用户未问及的历史任务;任务结果由任务自身投递,无需对话轮次代述。` });
26
30
  }
27
31
  //#endregion
28
32
  export { a as resolveCronDeliveryPromptContribution };
@@ -0,0 +1,34 @@
1
+ import { clawLogger as e } from "../../utils/claw-logger.mjs";
2
+ import { loadYoyoSkillCatalog as t } from "../../provisioning/toolset/skill-catalog.mjs";
3
+ //#region src/core/prompt/skill-fallback.ts
4
+ var n = e("hooks"), r = new Set(["yoyo-update"]);
5
+ async function i(e) {
6
+ if (!e || e.trigger !== "cron" || e.channel !== "yoyo") return n.debug("cron skill fallback skipped: not a yoyo cron turn", {
7
+ trigger: e?.trigger ?? null,
8
+ channel: e?.channel ?? null
9
+ }), {};
10
+ let i = (await t())?.filter((e) => !r.has(e.name)) ?? [];
11
+ return i.length === 0 ? (n.warn("cron skill fallback skipped: empty skill catalog"), {}) : (n.info("cron skill fallback prompt injected", {
12
+ sessionKey: e.sessionKey ?? null,
13
+ skillCount: i.length
14
+ }), { prependSystemContext: a(i) });
15
+ }
16
+ function a(e) {
17
+ return `# 定时任务技能目录
18
+ 当前会话由定时任务触发,系统提示词中可能缺少技能目录。以下是 YOYO 插件自带技能,使用规则与常规会话一致:
19
+ - 先扫描 <available_skills>:与当前任务明确匹配的技能,用 read 工具按 <location> 的绝对路径读取 SKILL.md 全文,并严格遵守其内容执行;没有匹配则不读取。
20
+ - 多个匹配时只选最贴切的一个,最多预读一个;禁止编造路径。
21
+ - 技能正文引用相对路径时,以 SKILL.md 所在目录为基准解析为绝对路径后再调用工具。
22
+
23
+ <available_skills>
24
+ ${e.map((e) => {
25
+ let t = [" <skill>", ` <name>${o(e.name)}</name>`];
26
+ return e.description && t.push(` <description>${o(e.description)}</description>`), t.push(` <location>${o(e.location)}</location>`, " </skill>"), t.join("\n");
27
+ }).join("\n")}
28
+ </available_skills>`;
29
+ }
30
+ function o(e) {
31
+ return e.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
32
+ }
33
+ //#endregion
34
+ export { i as resolveCronSkillFallbackContribution };
@@ -3,3 +3,4 @@ import "./normalize.mjs";
3
3
  import "./processor.mjs";
4
4
  import "./ack.mjs";
5
5
  import "./cleanup.mjs";
6
+ import "./skill-catalog.mjs";
@@ -0,0 +1,61 @@
1
+ import { clawLogger as e } from "../../utils/claw-logger.mjs";
2
+ import { normalizeString as t } from "../../utils/normalize.mjs";
3
+ import { resolveExtensionRoot as n } from "../../utils/home-dir.mjs";
4
+ import r from "node:path";
5
+ import i from "node:fs/promises";
6
+ import { parseDocument as a } from "yaml";
7
+ //#region src/provisioning/toolset/skill-catalog.ts
8
+ var o = e("toolset"), s = "skills", c = "SKILL.md", l;
9
+ async function u() {
10
+ if (l) return l;
11
+ try {
12
+ l = await d();
13
+ } catch (e) {
14
+ o.warn("skill catalog scan failed", { error: String(e) });
15
+ return;
16
+ }
17
+ return l;
18
+ }
19
+ async function d() {
20
+ let e = r.join(n(), s), t = await i.readdir(e, { withFileTypes: !0 }), a = [];
21
+ for (let n of t) {
22
+ if (!n.isDirectory()) continue;
23
+ let t = r.join(e, n.name, c), i = await f(t);
24
+ if (!i) {
25
+ o.warn("skill catalog entry skipped: missing or incomplete frontmatter", { skillPath: t });
26
+ continue;
27
+ }
28
+ a.push({
29
+ ...i,
30
+ location: t
31
+ });
32
+ }
33
+ return a.sort((e, t) => e.name.localeCompare(t.name)), a;
34
+ }
35
+ async function f(e) {
36
+ let t;
37
+ try {
38
+ t = await i.readFile(e, "utf8");
39
+ } catch {
40
+ return;
41
+ }
42
+ return p(t);
43
+ }
44
+ function p(e) {
45
+ let n = /^---\r?\n([\s\S]*?)\r?\n---/.exec(e);
46
+ if (!n) return;
47
+ let r = a(n[1], {
48
+ schema: "core",
49
+ prettyErrors: !1
50
+ });
51
+ if (r.errors.length > 0) return;
52
+ let i = r.toJS();
53
+ if (typeof i != "object" || !i) return;
54
+ let o = i, s = t(o.name) || void 0, c = t(o.description) || void 0;
55
+ return s && c ? {
56
+ name: s,
57
+ description: c
58
+ } : void 0;
59
+ }
60
+ //#endregion
61
+ export { u as loadYoyoSkillCatalog };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@honor-claw/yoyo",
3
- "version": "2026.9.4-beta.3",
3
+ "version": "2026.9.4-beta.5",
4
4
  "description": "OpenClaw Honor Yoyo connection plugin",
5
5
  "keywords": [
6
6
  "ai",
@@ -48,6 +48,7 @@
48
48
  "undici": "^7.3.0",
49
49
  "winreg": "^1.2.5",
50
50
  "ws": "^8.18.0",
51
+ "yaml": "^2.9.0",
51
52
  "zod": "^4.3.6"
52
53
  },
53
54
  "devDependencies": {
@@ -256,18 +256,18 @@ metadata: { "openclaw": { "emoji": "📱", "always": true } }
256
256
  | cancel_countdown_timer | 用于取消倒计时的工具。当用户query中包含取消计时、取消倒计时等意图时调用。支持根据事件标题、计时器序号、整体选择或最近对象引用定位需要取消的计时器。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
257
257
  | cancel_countdown_timer | 用于取消倒计时的工具。当用户query中包含取消计时、取消倒计时等意图时调用。支持根据事件标题、计时器序号、整体选择或最近对象引用定位需要取消的计时器。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
258
258
  | cancel_countup_timer | 打开秒表页面的工具,不能直接取消或结束秒表,也不能返回具体数据。如果用户想取消正在运行的秒表,可以使用该工具进入秒表页面后继续操作。仅适用于秒表场景,不适用于倒计时、闹钟、暂停、恢复或查看记录等其他操作。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
259
- | cancel_countup_timer | 用于取消秒表,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
259
+ | cancel_countup_timer | 用于取消秒表,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6 |
260
260
  | capture_screenshot | 该工具用于触发设备的截图能力将当前屏幕内容保存为图片。当前支持两种操作类型分别为普通截屏和滚动截屏。普通截屏用于对当前屏幕进行一次性截图保存。滚动截屏用于对可上下滚动的页面进行连续截图并生成长图在部分场景例如横屏界面下可能不支持滚动截屏。 | 108F7D788D85A4CE6351059315981D355A86FC02C00395F74535993D6D379028, 3C244B66EADC10727B3007AE9D5F5E501A60A2ECAD30E1C854CF45DBA1A1A938, 806DBF7ABEDD992AC377D9A817D240D46BFE880CB7B76FC1782B272D4C3602CA, A3CF0B829A24C2806B5543BB7D3695115AC018B3E3878478B47850F554678667, A4E3C0F7E672F16266FEDD53272A0678F1828BD45D05BAFB604C124048484ADF |
261
261
  | capture_screenshot | 该工具用于触发设备的截图能力将当前屏幕内容保存为图片。当前支持两种操作类型分别为普通截屏和滚动截屏。普通截屏用于对当前屏幕进行一次性截图保存。滚动截屏用于对可上下滚动的页面进行连续截图并生成长图在部分场景例如横屏界面下可能不支持滚动截屏。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
262
262
  | capture_screenshot | 该工具提供对截屏功能(将当前手机屏幕内容以图片的形式保存)的管理与触发能力,支持截屏和滚动截屏等操作。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
263
263
  | check_alarm | 用于查看闹钟的工具。当用户意图涉及查询闹钟或闹铃时,可以使用该工具。支持按日期时间、事件、启用状态,以及查询最近一个闹钟等条件进行查询。不适用于创建、修改、删除、开启、关闭闹钟等非查询操作场景。 | 108F7D788D85A4CE6351059315981D355A86FC02C00395F74535993D6D379028, 3C244B66EADC10727B3007AE9D5F5E501A60A2ECAD30E1C854CF45DBA1A1A938, 806DBF7ABEDD992AC377D9A817D240D46BFE880CB7B76FC1782B272D4C3602CA, A3CF0B829A24C2806B5543BB7D3695115AC018B3E3878478B47850F554678667, A4E3C0F7E672F16266FEDD53272A0678F1828BD45D05BAFB604C124048484ADF |
264
264
  | check_alarm | 用于查看闹钟的工具。当用户意图涉及查询闹钟或闹铃时,可以使用该工具。支持按日期时间、事件、序号、启用状态、是否跳过节假日,以及查询最近一个闹钟等条件进行查询。不适用于创建、修改、删除、开启、关闭闹钟等非查询操作场景。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
265
- | check_alarm | 用于查看闹钟的工具。当用户意图涉及查询闹钟或闹铃时,可以使用该工具。支持按日期时间、事件、启用状态,以及查询最近一个闹钟等条件进行查询。不适用于创建、修改、删除、开启、关闭闹钟等非查询操作场景。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
265
+ | check_alarm | 用于查看闹钟的工具。当用户意图涉及查询闹钟或闹铃时,可以使用该工具。支持按日期时间、事件、序号、启用状态,以及查询最近一个闹钟等条件进行查询。不适用于创建、修改、删除、开启、关闭闹钟等非查询操作场景。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
266
266
  | check_countdown_timer | 用于查询倒计时状态的工具。当用户query中包含查询计时、查看倒计时、查看计时器等意图时调用。支持查询当前是否存在运行中的计时器,也支持根据事件标题查询指定计时器,并返回计时器状态信息。 | 108F7D788D85A4CE6351059315981D355A86FC02C00395F74535993D6D379028, 3C244B66EADC10727B3007AE9D5F5E501A60A2ECAD30E1C854CF45DBA1A1A938, 806DBF7ABEDD992AC377D9A817D240D46BFE880CB7B76FC1782B272D4C3602CA, A3CF0B829A24C2806B5543BB7D3695115AC018B3E3878478B47850F554678667, A4E3C0F7E672F16266FEDD53272A0678F1828BD45D05BAFB604C124048484ADF |
267
267
  | check_countdown_timer | 用于查询倒计时状态的工具。当用户query中包含查询计时、查看倒计时、查看计时器等意图时调用。支持查询当前是否存在运行中的计时器,也支持根据事件标题查询指定计时器,并返回计时器状态信息。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
268
268
  | check_countdown_timer | 用于查询倒计时状态的工具。当用户query中包含查询计时、查看倒计时、查看计时器等意图时调用。支持查询当前是否存在运行中的计时器,也支持根据事件标题查询指定计时器,并返回计时器状态信息。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
269
269
  | check_countup_timer | 打开秒表页面的工具。若用户想查看秒表是否正在计时或查看秒表当前情况,可使用该工具进入秒表页面查看。该工具通过跳转闭环执行,不能直接返回具体数据。仅适用于秒表场景,不适用于计时器、倒计时、闹钟、创建或修改计时任务。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
270
- | check_countup_timer | 用于查看秒表当前情况,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
270
+ | check_countup_timer | 用于查看秒表当前情况,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6 |
271
271
  | check_schedule | 用于查看日程的工具。当用户意图涉及查询日程、安排、计划、行程时,属于查询日程。查询日程支持日期、日期段、时间、时间段、标题的查询。 | 108F7D788D85A4CE6351059315981D355A86FC02C00395F74535993D6D379028, 3C244B66EADC10727B3007AE9D5F5E501A60A2ECAD30E1C854CF45DBA1A1A938, 806DBF7ABEDD992AC377D9A817D240D46BFE880CB7B76FC1782B272D4C3602CA, A3CF0B829A24C2806B5543BB7D3695115AC018B3E3878478B47850F554678667, A4E3C0F7E672F16266FEDD53272A0678F1828BD45D05BAFB604C124048484ADF |
272
272
  | check_schedule | 用于查看日程的工具。当用户意图涉及查询日程、安排、计划、行程时,属于查询日程。查询日程支持日期、日期段、时间、时间段、标题的查询。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
273
273
  | check_schedule | 用于查看日程的工具。当用户意图涉及查询日程、安排、计划、行程时,属于查询日程。查询日程支持日期、日期段、时间、时间段、标题、地点、优先级的查询。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
@@ -278,7 +278,7 @@ metadata: { "openclaw": { "emoji": "📱", "always": true } }
278
278
  | clean_dirty | 该工具用于清理和维护设备扬声器,通过播放特定音频振动,帮助去除扬声器孔洞内的灰尘或水分,从而改善音质。支持启动和停止清灰功能。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
279
279
  | close_alarm | 用于关闭闹钟的工具,可根据标题、时间、最近一次引用及当前开关状态筛选目标闹钟,支持关闭单个或多个闹钟。当用户意图涉及关闭闹钟或闹铃时,可以使用该工具。 | 108F7D788D85A4CE6351059315981D355A86FC02C00395F74535993D6D379028, 3C244B66EADC10727B3007AE9D5F5E501A60A2ECAD30E1C854CF45DBA1A1A938, 806DBF7ABEDD992AC377D9A817D240D46BFE880CB7B76FC1782B272D4C3602CA, A3CF0B829A24C2806B5543BB7D3695115AC018B3E3878478B47850F554678667, A4E3C0F7E672F16266FEDD53272A0678F1828BD45D05BAFB604C124048484ADF |
280
280
  | close_alarm | 用于关闭闹钟的工具,可根据标题、时间、最近一次引用及当前开关状态筛选目标闹钟,支持关闭单个或多个闹钟。当用户意图涉及关闭闹钟或闹铃时,可以使用该工具。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
281
- | close_alarm | 用于关闭或取消闹钟的工具,可根据标题、时间、最近一次引用及当前开关状态筛选目标闹钟,支持关闭或取消单个或多个闹钟。当用户意图涉及关闭或取消闹钟、闹铃时,可以使用该工具。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
281
+ | close_alarm | 用于关闭闹钟的工具,可根据标题、时间、最近一次引用及当前开关状态筛选目标闹钟,支持关闭单个或多个闹钟。当用户意图涉及关闭闹钟或闹铃时,可以使用该工具。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
282
282
  | close_app | 支持用户关闭设备上正在运行的应用。工具会根据应用名称匹配正在运行的实例,当有多个运行实例时会返回列表供用户选择。支持关闭指定应用或关闭所有运行中的应用。 | 108F7D788D85A4CE6351059315981D355A86FC02C00395F74535993D6D379028, 3C244B66EADC10727B3007AE9D5F5E501A60A2ECAD30E1C854CF45DBA1A1A938, 806DBF7ABEDD992AC377D9A817D240D46BFE880CB7B76FC1782B272D4C3602CA, A3CF0B829A24C2806B5543BB7D3695115AC018B3E3878478B47850F554678667, A4E3C0F7E672F16266FEDD53272A0678F1828BD45D05BAFB604C124048484ADF |
283
283
  | close_app | 支持用户关闭设备上正在运行的应用。工具会根据应用名称匹配正在运行的实例,当有多个运行实例时会返回列表供用户选择。支持关闭指定应用或关闭所有运行中的应用。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
284
284
  | close_app | 支持用户关闭设备上正在运行的应用。工具会根据应用名称匹配正在运行的实例,当有多个运行实例时会返回列表供用户选择。支持关闭指定应用或关闭所有运行中的应用。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
@@ -286,7 +286,7 @@ metadata: { "openclaw": { "emoji": "📱", "always": true } }
286
286
  | close_countdown_timer | 用于关闭倒计时的工具。当用户query中包含关闭计时、关闭倒计时、关闭计时器等意图时调用。支持根据事件标题、计时器序号、范围或最近一次对象引用定位需要关闭的计时器。该工具仅适用于倒计时,不适用于闹钟、秒表、世界时钟或关闭时钟应用等场景。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
287
287
  | close_countdown_timer | 用于关闭倒计时的工具。当用户query中包含关闭计时、关闭倒计时、关闭计时器等意图时调用。支持根据事件标题、计时器序号、范围或最近一次对象引用定位需要关闭的计时器。该工具仅适用于倒计时,不适用于闹钟、秒表、世界时钟或关闭时钟应用等场景。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
288
288
  | close_countup_timer | 关闭秒表页面。如果用户想关闭秒表,可以使用该工具关闭秒表页面。该工具仅关闭页面,不能直接返回具体数据。该工具仅适用于秒表场景,不适用于计时器、倒计时、闹钟或世界时钟。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
289
- | close_countup_timer | 用于关闭秒表,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
289
+ | close_countup_timer | 用于关闭秒表,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6 |
290
290
  | close_ring | 用于关闭响铃的工具。用户意图中涉及关闭正在响的闹钟响铃时,属于关闭响铃。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
291
291
  | close_ring | 用于关闭响铃的工具。用户意图中涉及关闭正在响的闹钟响铃时,属于关闭响铃。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
292
292
  | close_schedule | 用于关闭日历App当前页面的工具。仅当用户明确表达关闭、退出或结束当前日历页面时使用,例如“关闭日历”“退出日程页面”。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
@@ -302,7 +302,7 @@ metadata: { "openclaw": { "emoji": "📱", "always": true } }
302
302
  | create_countdown_timer | 创建倒计时;当倒计时时长不超过60分钟时,可直接创建倒计时;当时长超过60分钟时,仅打开倒计时页面,用户可在页面中继续设置和操作。用户想开始倒计时或按指定时长计时时可使用该工具。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
303
303
  | create_countdown_timer | 创建倒计时;当倒计时时长不超过60分钟时,可直接创建倒计时;当时长超过60分钟时,仅打开倒计时页面,用户可在页面中继续设置和操作。用户想开始倒计时或按指定时长计时时可使用该工具。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
304
304
  | create_countup_timer | 打开秒表并立即开始计时,不返回具体数据。当用户想启动秒表时,可以调用此工具。不适用于倒计时、闹钟、世界时钟。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
305
- | create_countup_timer | 用于创建并启动秒表,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
305
+ | create_countup_timer | 用于创建并启动秒表,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6 |
306
306
  | create_file | 打开荣耀文档的新建文档页面,支持按文档类型进入对应的新建入口,包括 Word、Excel 和 PPT。如果用户想新建对应类型的空白文档,可以使用该工具进入相应的新建页面进行操作。通过跳转闭环,该工具只能打开新建文档页面,不能返回具体数据。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
307
307
  | create_schedule | 用于创建日程的工具。支持设置事件标题、日期和时间、持续时长、地点,以及基于地点条件或相对时间偏移的触发信息。当用户需要新增日程、安排事项,或设置在指定时间、时间段或周期性执行的计划时,应调用该工具。 | 108F7D788D85A4CE6351059315981D355A86FC02C00395F74535993D6D379028, 3C244B66EADC10727B3007AE9D5F5E501A60A2ECAD30E1C854CF45DBA1A1A938, 806DBF7ABEDD992AC377D9A817D240D46BFE880CB7B76FC1782B272D4C3602CA, A3CF0B829A24C2806B5543BB7D3695115AC018B3E3878478B47850F554678667, A4E3C0F7E672F16266FEDD53272A0678F1828BD45D05BAFB604C124048484ADF |
308
308
  | create_schedule | 用于创建日程的工具。支持设置事件标题、日期和时间、持续时长、地点,以及基于地点条件或相对时间偏移的触发信息。当用户需要新增日程、安排事项,或设置在指定时间、时间段或周期性执行的计划时,应调用该工具。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
@@ -430,7 +430,7 @@ metadata: { "openclaw": { "emoji": "📱", "always": true } }
430
430
  | pause_countdown_timer | 用于暂停倒计时的工具。当用户query中包含暂停计时、暂停倒计时、暂停计时器等意图时调用。支持根据事件标题、计时器序号或范围定位需要暂停的计时器。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
431
431
  | pause_countdown_timer | 用于暂停倒计时的工具。当用户query中包含暂停计时、暂停倒计时、暂停计时器等意图时调用。支持根据事件标题、计时器序号或范围定位需要暂停的计时器。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
432
432
  | pause_countup_timer | 打开秒表页面。如果用户想停止、暂停正在进行中的秒表,可以使用该工具进入秒表页面后进行操作。该工具仅支持页面跳转,不能直接暂停秒表,也不能返回具体数据。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
433
- | pause_countup_timer | 用于暂停秒表,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
433
+ | pause_countup_timer | 用于暂停秒表,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6 |
434
434
  | phone_service | 本工具为拨号服务的管理入口,支持跳转至拨号服务设置页,并提供打开、关闭、设置及查询等操作入口。拨号服务通常包含自动接听、来电拒接短信、快速拨号、呼叫转移、呼叫限制等电话相关功能项。需注意:所有功能的具体执行均需用户在跳转后的页面中手动完成。不适用于拨号、联系人、通话记录、骚扰拦截、VoLTE、网络设置等其他电话相关功能。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
435
435
  | play_audio | 该 API 是一个有声内容搜索播放接口,用于在喜马拉雅APP中对各类有声资源进行搜索播放。当前仅支持喜马拉雅APP。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
436
436
  | play_record | 本工具提供播放录音的能力,需要提供录音文件的本地路径;支持开始,暂停,继续,结束播放操作。其中,actionType 为“开始”时必须提供 recordFilePath;actionType 为“暂停”“继续”“结束”时无需提供 recordFilePath。 | 108F7D788D85A4CE6351059315981D355A86FC02C00395F74535993D6D379028, 3C244B66EADC10727B3007AE9D5F5E501A60A2ECAD30E1C854CF45DBA1A1A938, 806DBF7ABEDD992AC377D9A817D240D46BFE880CB7B76FC1782B272D4C3602CA, A3CF0B829A24C2806B5543BB7D3695115AC018B3E3878478B47850F554678667, A4E3C0F7E672F16266FEDD53272A0678F1828BD45D05BAFB604C124048484ADF |
@@ -463,13 +463,13 @@ metadata: { "openclaw": { "emoji": "📱", "always": true } }
463
463
  | restart_countdown_timer | 用于重新启动或重启倒计时的工具。当用户query中包含重启计时、重新开始计时、重启倒计时、重新启动计时器等意图时调用。支持根据事件标题、序号或范围定位需要重启的计时器。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
464
464
  | restart_countdown_timer | 用于重新启动或重启倒计时的工具。当用户query中包含重启计时、重新开始计时、重启倒计时、重新启动计时器等意图时调用。支持根据事件标题、序号或范围定位需要重启的计时器。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
465
465
  | restart_countup_timer | 打开秒表页面。如果用户想重新开始秒表,可以使用该工具进入秒表页面后继续操作。通过跳转闭环,该工具不能直接返回具体数据。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
466
- | restart_countup_timer | 用于重启秒表,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
466
+ | restart_countup_timer | 用于重启秒表,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6 |
467
467
  | restore_screen_display | 该工具用于将设备屏幕从特殊显示状态恢复为系统默认显示背景,以确保屏幕显示清晰、统一和可读。适用于设备进入特殊显示模式、个性化显示效果异常或需要快速恢复系统默认显示风格的场景。执行后系统会恢复默认背景效果并关闭当前临时显示效果。本工具为一次性恢复操作,不支持参数配置、状态查询或个性化设置。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
468
468
  | resume_countdown_timer | 用于继续或恢复倒计时的工具。当用户query中包含继续计时、继续倒计时、恢复计时器等意图时调用。支持根据事件标题、计时器序号或范围定位需要继续的计时器。 | 108F7D788D85A4CE6351059315981D355A86FC02C00395F74535993D6D379028, 3C244B66EADC10727B3007AE9D5F5E501A60A2ECAD30E1C854CF45DBA1A1A938, 806DBF7ABEDD992AC377D9A817D240D46BFE880CB7B76FC1782B272D4C3602CA, A3CF0B829A24C2806B5543BB7D3695115AC018B3E3878478B47850F554678667, A4E3C0F7E672F16266FEDD53272A0678F1828BD45D05BAFB604C124048484ADF |
469
469
  | resume_countdown_timer | 用于继续或恢复倒计时的工具。当用户query中包含继续计时、继续倒计时、恢复计时器等意图时调用。支持根据事件标题、计时器序号或范围定位需要继续的计时器。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
470
470
  | resume_countdown_timer | 用于继续或恢复倒计时的工具。当用户query中包含继续计时、继续倒计时、恢复计时器等意图时调用。支持根据事件标题、计时器序号或范围定位需要继续的计时器。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
471
471
  | resume_countup_timer | 打开秒表页面。如果用户想继续或恢复已暂停的秒表,可以使用该工具进入秒表页面进行后续操作。通过跳转闭环,不能返回具体数据。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
472
- | resume_countup_timer | 用于恢复秒表,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6, FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
472
+ | resume_countup_timer | 用于恢复秒表,仅适用于秒表功能,不支持倒计时、闹钟或世界时钟。 | 6BE225A3160ABFBB96DEB77AB7B76120729EF0B79ED81CFB4D180989E571BDD6 |
473
473
  | ring_tone | 该工具用于管理设备铃声设置,仅适用于来电铃声、信息铃声和通知铃声的相关操作。支持进入对应铃声设置页面、查询当前铃声配置情况,以及打开或关闭对应类型的铃声提醒。不适用于媒体音量、闹钟铃声或振动模式等其他声音设置。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
474
474
  | ringing_mode | 该工具用于控制当前设备的响铃模式,支持打开、关闭、查询和设置四类操作。其中,打开表示开启响铃模式,关闭表示关闭响铃模式;查询表示跳转到“声音和触感”页面查看当前响铃相关状态,不直接返回具体数据;设置表示进入系统声音和震动设置页面。如用户需求明确要求开启或关闭响铃,应优先使用打开或关闭。该工具适用于用户明确提出开启响铃、关闭响铃、查看响铃相关状态或进行响铃模式相关设置操作的场景,不适用于调节媒体音量、铃声音量、闹钟音量、勿扰模式或其他声音相关配置。当 actionType 为“查询”或“设置”时,通过跳转闭环进入“声音和触感”页面,不直接返回具体数据。 | 108F7D788D85A4CE6351059315981D355A86FC02C00395F74535993D6D379028, 3C244B66EADC10727B3007AE9D5F5E501A60A2ECAD30E1C854CF45DBA1A1A938, 806DBF7ABEDD992AC377D9A817D240D46BFE880CB7B76FC1782B272D4C3602CA, A3CF0B829A24C2806B5543BB7D3695115AC018B3E3878478B47850F554678667, A4E3C0F7E672F16266FEDD53272A0678F1828BD45D05BAFB604C124048484ADF |
475
475
  | ringing_mode | 该工具用于控制当前设备的响铃模式,支持打开、关闭、查询和设置四类操作。其中,打开表示开启响铃模式,关闭表示关闭响铃模式;查询表示跳转到“声音和触感”页面查看当前响铃相关状态,不直接返回具体数据;设置表示进入系统声音和震动设置页面。如用户需求明确要求开启或关闭响铃,应优先使用打开或关闭。该工具适用于用户明确提出开启响铃、关闭响铃、查看响铃相关状态或进行响铃模式相关设置操作的场景,不适用于调节媒体音量、铃声音量、闹钟音量、勿扰模式或其他声音相关配置。当 actionType 为“查询”或“设置”时,通过跳转闭环进入“声音和触感”页面,不直接返回具体数据。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
@@ -488,7 +488,7 @@ metadata: { "openclaw": { "emoji": "📱", "always": true } }
488
488
  | search_contact | 支持查找联系人信息。contact 可填写个人姓名/昵称,也可填写机构、部门或服务名称;当需要按黄页目录查询公共服务或企业客服时,可填写 ypContact。若查询个人联系人,可同时填写 nameContact 以标识为个人联系人。contact='本机' 时返回当前手机号码。 | 108F7D788D85A4CE6351059315981D355A86FC02C00395F74535993D6D379028, 3C244B66EADC10727B3007AE9D5F5E501A60A2ECAD30E1C854CF45DBA1A1A938, 806DBF7ABEDD992AC377D9A817D240D46BFE880CB7B76FC1782B272D4C3602CA, A3CF0B829A24C2806B5543BB7D3695115AC018B3E3878478B47850F554678667, A4E3C0F7E672F16266FEDD53272A0678F1828BD45D05BAFB604C124048484ADF |
489
489
  | search_contact | 支持查找联系人信息。contact 可填写个人姓名/昵称,也可填写机构、部门或服务名称;当需要按黄页目录查询公共服务或企业客服时,可填写 ypContact。若查询个人联系人,可同时填写 nameContact 以标识为个人联系人。contact='本机' 时返回当前手机号码。 | FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
490
490
  | search_message | 支持查看短信服务,可按联系人、电话号码或短信内容检索短信。三者至少提供其一 | 108F7D788D85A4CE6351059315981D355A86FC02C00395F74535993D6D379028, 3C244B66EADC10727B3007AE9D5F5E501A60A2ECAD30E1C854CF45DBA1A1A938, 806DBF7ABEDD992AC377D9A817D240D46BFE880CB7B76FC1782B272D4C3602CA, A3CF0B829A24C2806B5543BB7D3695115AC018B3E3878478B47850F554678667, A4E3C0F7E672F16266FEDD53272A0678F1828BD45D05BAFB604C124048484ADF |
491
- | search_message | 支持查看短信服务,可按联系人、电话号码、短信内容或时间范围检索短信。contact、phoneNumber、content、datetime 均为可选筛选条件,可单独或组合使用。 | FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
491
+ | search_message | 支持查看短信服务,可按联系人、电话号码、短信内容或时间范围检索短信。contact、phoneNumber、content、datetime 均为可选筛选条件,可单独或组合使用;均为空时(如仅说“查找短信”)默认查找最近30天的短信。 | FB59544C2B899C91F17F820DD270776A7F153929CFF4B4387AEA0C0607F06097 |
492
492
  | search_nearby_share_device | 扫描附近可用的荣耀分享接收设备,可根据设备类型过滤,返回设备列表。用于在文件分享流程中发现目标接收设备。支持按手机、电脑、平板、大屏、车机等类型筛选。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
493
493
  | search_notification | 该工具提供从通知中心查询通知的功能,支持按通知来源(应用)、时间、通知标题或内容关键字筛选通知,并返回匹配通知的来源、标题、内容、时间等信息。 | 78BCFAC166E8D989185F1ED2D0C2EFEB2A3D8B3A26A51EC4C013E886387E9E13 |
494
494
  | search_record | 支持查看通话记录服务,包括全部通话记录、已接来电、未接来电,以及按联系人筛选通话记录。 | 108F7D788D85A4CE6351059315981D355A86FC02C00395F74535993D6D379028, 3C244B66EADC10727B3007AE9D5F5E501A60A2ECAD30E1C854CF45DBA1A1A938, 806DBF7ABEDD992AC377D9A817D240D46BFE880CB7B76FC1782B272D4C3602CA, A3CF0B829A24C2806B5543BB7D3695115AC018B3E3878478B47850F554678667, A4E3C0F7E672F16266FEDD53272A0678F1828BD45D05BAFB604C124048484ADF |
@@ -12,7 +12,7 @@
12
12
  },
13
13
  "imageUrls": {
14
14
  "type": "array",
15
- "description": "参数表示当前记忆操作可能的图片标识,填写图片URL,无可用URL时填写图片名称。默认传入图片是上下文相关的,必须传入图片URL。如果用户提到\\\"图1/图2/第N张/这x张/最后一张/上一张\\\"时需提供对应图片URL, 否则默认传最后一个图片。格式为长度最多为 1 的字符串数组。无图片时不传该参数。",
15
+ "description": "参数表示当前记忆操作可能的图片标识,优先填写图片URL,无可用URL时填写图片名称。默认传入图片是上下文相关的,必须传入图片URL。如果用户提到\\\"图1/图2/第N张/这x张/最后一张/上一张\\\"时需提供对应图片URL, 否则默认传最后一个图片。格式为长度最多为 1 的字符串数组。无图片时不传该参数。",
16
16
  "items": {
17
17
  "type": "string",
18
18
  "description": "图片URL或图片名称"
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "docUrls": {
22
22
  "type": "array",
23
- "description": "参数表示当前记忆操作可能的文件标识,填写文件URL,无可用URL时填写文件名称。默认传入文件是上下文相关的,必须传入文件URL。如果用户提到\\\"文件1/文件2/第N个/这x个/最后一个/上一个\\\"时需提供对应文件URL, 否则默认传最后一个文件。格式为长度最多为 1 的字符串数组。无文件时不传该参数。",
23
+ "description": "参数表示当前记忆操作可能的文件标识,优先填写文件URL,无可用URL时填写文件名称。默认传入文件是上下文相关的,必须传入文件URL。如果用户提到\\\"文件1/文件2/第N个/这x个/最后一个/上一个\\\"时需提供对应文件URL, 否则默认传最后一个文件。格式为长度最多为 1 的字符串数组。无文件时不传该参数。",
24
24
  "items": {
25
25
  "type": "string",
26
26
  "description": "文件URL或文件名称"
@@ -42,7 +42,7 @@
42
42
  "图片",
43
43
  "文件"
44
44
  ],
45
- "description": "需要处理的记忆载体类型。'文本'为纯文字信息;'图片'只要涉及图片文件,必须填写图片;'文件'只要涉及文档等非图片文件,必须填写文件。"
45
+ "description": "需要处理的记忆载体类型:`文本` 为仅涉及纯文字信息,没有传入任何图片和文件;`图片` 为本次操作涉及任何图片时填写,并传入图片参数;`文件` 为本次操作涉及任何非图片文件时填写,并传入文件参数。"
46
46
  },
47
47
  "confirmState": {
48
48
  "type": "string",
@@ -50,7 +50,7 @@
50
50
  "confirm",
51
51
  "cancel"
52
52
  ],
53
- "description": "二次确认结果:confirm=确认执行;cancel=用户在确认环节放弃操作。仅当用户亲自对记忆操作执行的追问内容进行回复时填写,非确认场景勿传。若用户在记忆完成后下一句话立即提出对这条记忆的 修改/删除 指令,默认视为确认执行,传 confirm。传 confirm 或 cancel 时,query 均须结合对话上下文还原待确认的记忆操作并保留对应动作词,memoryAction 与待确认操作类型一致。"
53
+ "description": "二次确认结果:confirm表示确认执行,cancel表示在确认环节取消操作。仅当用户亲自对记忆操作执行的追问内容进行回复时填写,非确认场景勿传。若用户在记忆完成后下一句话立即提出对这条记忆的 修改/删除 指令,默认视为确认执行,传 confirm。传 confirm 或 cancel 时,query 均须结合对话上下文还原待确认的记忆操作并保留对应动作词,memoryAction 与待确认操作类型一致。"
54
54
  },
55
55
  "memoryContent": {
56
56
  "type": "string",
@@ -58,7 +58,7 @@
58
58
  },
59
59
  "memorySourceContent": {
60
60
  "type": "string",
61
- "description": "用户修改场景中需要被替换的原有记忆内容,用于在已有记忆中定位本次操作的目标。填写时提取修改动作指向的修改前内容/旧内容,去掉“修改、改掉、替换、把……改成……”等动作词;不要填写修改后的结果,也不要混入新增和要删除的内容。若用户未明确提供需要修改的原内容,或本次仅为新增和删除记忆,则传空字符串。"
61
+ "description": "仅修改时填写需被替换的修改前原内容;如“把 A 改成 B”,此字段填 A。不要填写修改后的结果,也不要混入新增内容或删除内容。若用户未明确提供需要修改的原内容,或本次仅为新增和删除记忆,则不传该字段。"
62
62
  },
63
63
  "confirmedMemoryIdList": {
64
64
  "type": "array",
@@ -117,7 +117,7 @@
117
117
  },
118
118
  {
119
119
  "query": "把我的心情记录从紧张改成轻松,再记一下小红爱运动 [工具调用 1/2]",
120
- "arguments": "{\n \"query\": \"修改我的心情记录是轻松\",\n \"memoryContent\": \"我的心情记录是轻松\",\n \"memoryAction\": \"修改\",\n \"memoMode\": \"文本\"\n}"
120
+ "arguments": "{\n \"query\": \"修改我的心情记录是轻松\",\n \"memoryContent\": \"我的心情记录是轻松\",\n \"memoryAction\": \"修改\",\n \"memoMode\": \"文本\"\n,\n \"memorySourceContent\": \"我的心情记录是紧张\"\n}"
121
121
  },
122
122
  {
123
123
  "query": "把我的心情记录从紧张改成轻松,再记一下小红爱运动 [工具调用 2/2]",
@@ -2,7 +2,7 @@
2
2
  "id": "1a1258b7-0cdb-48cc-80ec-1f063287807c",
3
3
  "type": "function",
4
4
  "name": "check_alarm",
5
- "description": "用于查看闹钟的工具。当用户意图涉及查询闹钟或闹铃时,可以使用该工具。支持按日期时间、事件、启用状态,以及查询最近一个闹钟等条件进行查询。不适用于创建、修改、删除、开启、关闭闹钟等非查询操作场景。",
5
+ "description": "用于查看闹钟的工具。当用户意图涉及查询闹钟或闹铃时,可以使用该工具。支持按日期时间、事件、序号、启用状态,以及查询最近一个闹钟等条件进行查询。不适用于创建、修改、删除、开启、关闭闹钟等非查询操作场景。",
6
6
  "inputSchema": {
7
7
  "type": "object",
8
8
  "properties": {
@@ -14,6 +14,14 @@
14
14
  "type": "string",
15
15
  "description": "参数表示用户查询的闹钟日期或时间条件。包括具体的日期时间(年月日、时间点)、泛指的时间(如上午)、周期性时间(如'每天'、'每周'、'大小周'、'单休工作日'、'节假日及周末'、'法定工作日'、'轮班制')。填写时保留用户原始时间表达,不进行改写或标准化。填写格式为自然语言时间文本。"
16
16
  },
17
+ "sequenceList": {
18
+ "type": "array",
19
+ "description": "用于表达用户通过序号方式查询需要操作的闹钟对象,表示查询的闹钟序号列表(整数数组),序号按照闹钟列表顺序从 1 开始计数。当用户在 query 中明确表达序号相关选择时填写,例如“第一个”“第二个”“前两个”等,用于用户在首次指令中直接给出序号表达的场景,例如“查询第一个闹钟”。填写格式为整数数组,例如 [1] 表示查询第一个闹钟,[1,2] 表示查询前两个闹钟;当该参数被填写时不应同时填写 rangeType,若同时出现以 rangeType 为准。",
20
+ "items": {
21
+ "type": "integer",
22
+ "description": "闹钟在候选列表中的序号,从1开始计数"
23
+ }
24
+ },
17
25
  "rangeType": {
18
26
  "type": "string",
19
27
  "enum": [
@@ -65,6 +73,10 @@
65
73
  {
66
74
  "query": "帮忙看看后天的闹钟",
67
75
  "arguments": "{\"datetime\": \"后天\"}"
76
+ },
77
+ {
78
+ "query": "你帮我看看第三个闹钟呢",
79
+ "arguments": "{\"sequenceList\": [3]}"
68
80
  }
69
81
  ]
70
82
  }
@@ -2,7 +2,7 @@
2
2
  "id": "c21bd3bb-2661-4d09-b7ed-a7b04dcc6687",
3
3
  "type": "function",
4
4
  "name": "close_alarm",
5
- "description": "用于关闭或取消闹钟的工具,可根据标题、时间、最近一次引用及当前开关状态筛选目标闹钟,支持关闭或取消单个或多个闹钟。当用户意图涉及关闭或取消闹钟、闹铃时,可以使用该工具。",
5
+ "description": "用于关闭闹钟的工具,可根据标题、时间、最近一次引用及当前开关状态筛选目标闹钟,支持关闭单个或多个闹钟。当用户意图涉及关闭闹钟或闹铃时,可以使用该工具。",
6
6
  "inputSchema": {
7
7
  "type": "object",
8
8
  "properties": {
@@ -74,10 +74,6 @@
74
74
  "query": "关闭起床的闹钟",
75
75
  "arguments": "{\"event\": \"起床\"}"
76
76
  },
77
- {
78
- "query": "取消闹钟",
79
- "arguments": "{}"
80
- },
81
77
  {
82
78
  "query": "关闭全部看电影的闹钟",
83
79
  "arguments": "{\"event\": \"看电影\", \"selectState\": \"all\"}"
@@ -2,7 +2,7 @@
2
2
  "id": "4533bf77-7da7-43e4-9e76-9af3640d17ae",
3
3
  "type": "function",
4
4
  "name": "search_message",
5
- "description": "支持查看短信服务,可按联系人、电话号码、短信内容或时间范围检索短信。contact、phoneNumber、content、datetime 均为可选筛选条件,可单独或组合使用。",
5
+ "description": "支持查看短信服务,可按联系人、电话号码、短信内容或时间范围检索短信。contact、phoneNumber、content、datetime 均为可选筛选条件,可单独或组合使用;均为空时(如仅说“查找短信”)默认查找最近30天的短信。",
6
6
  "inputSchema": {
7
7
  "type": "object",
8
8
  "properties": {
@@ -70,6 +70,10 @@
70
70
  {
71
71
  "query": "查询今天下午1点到2点的短信",
72
72
  "arguments": "{\"datetime\": \"今天下午1点到2点\"}"
73
+ },
74
+ {
75
+ "query": "查找短信",
76
+ "arguments": "{}"
73
77
  }
74
78
  ]
75
79
  }