欢迎光临
我们一直在努力

OpenClaw 技能主动推送飞书通知完全指南——耗时任务做完,如何手机立刻收到推送?

耗时任务做完,手机立刻收到推送:OpenClaw 技能主动推送飞书通知完全指南

当你让 AI 执行一个耗时任务(比如处理大数据、跑模型、爬取网页)后,是不是只能干等着终端输出?能不能让 AI 完事后直接“叮”一声推送到手机?本文手把手教你用 OpenClaw 的自定义技能,结合内置的 message 工具,实现“耗时任务完成 → 飞书主动推送”的丝滑体验。


文章目录

  • 耗时任务做完,手机立刻收到推送:OpenClaw 技能主动推送飞书通知完全指南
    • 背景:为什么你需要这个功能?
    • 1. 前置确认:飞书通道必须已启用且正常
      • 1.1 检查飞书通道是否启用
      • 1.2 检查飞书通道配置
      • 1.3 检查飞书通道运行状态
    • 2. 最推荐的方式:在自定义技能中指示 LLM 使用 `message` 工具
      • 2.1 创建技能目录和 SKILL.md
      • 2.2 SKILL.md 完整示例(可直接复制修改)
      • 3. 后台任务处理(重要)
    • 示例对话
    • 3. 测试一下:让 AI 执行你的新技能
    • 4. 进阶用法:让推送更“高级”
      • 4.1 使用消息卡片
      • 4.2 @提及某人
      • 4.3 推送文件
    • 5. 常见问题排查(我踩过的坑)
      • 5.1 推送不成功,怎么办?
      • 5.2 推送成功了,但手机没收到通知?
      • 5.3 如何获取当前用户的 open_id 或 chat_id?
      • 5.4 任务执行时间很长,怕超时?
    • 6. 总结:让 AI 真正成为你的“得力助手”

背景:为什么你需要这个功能?

我一开始用 OpenClaw 跑一些耗时的 Python 脚本时,经常是 openclog logs –follow 挂着,然后时不时瞄一眼。后来有一次跑了个 20 分钟的任务,中间去喝了杯咖啡,回来才发现早跑完了,白白浪费了 15 分钟。于是我就琢磨:能不能让 AI 在任务完成后主动给我发个飞书通知?

OpenClaw 的设计哲学之一就是“极简核心,插件化扩展”,它的 message 工具天然支持通过已启用的通道(如飞书、Telegram)发送消息。也就是说,只要飞书通道是通的,任何技能都可以调用 message 工具给任何人发推送,包括你自己。


在这里插入图片描述

1. 前置确认:飞书通道必须已启用且正常

在开始之前,确保你的 OpenClaw 实例已经正确配置了飞书通道。这步如果没做好,后面全是白搭。

1.1 检查飞书通道是否启用

# 查看所有已启用的插件/通道
openclaw plugins list

你应该能看到 feishu 在列表里,并且状态为 ENABLED。如果没有,启用它:

openclaw plugins enable feishu

1.2 检查飞书通道配置

编辑配置文件 ~/.openclaw/openclaw.json(或 config.yaml,取决于你的版本),确认飞书部分配置正确:

{
"channels": {
"feishu": {
"enabled": true,
"appId": "cli_xxxxxx",
"appSecret": "your_app_secret",
"verificationToken": "your_verification_token",
"encryptKey": "your_encrypt_key" // 如果启用加密
}
}
}

小提示:如果你是用 openclaw wizard 配置的,这些字段会自动填好。

1.3 检查飞书通道运行状态

重启 Gateway 后,运行:

openclaw status

应该能看到类似:

Channels:
feishu ON | OK
telegram ON | OK

如果显示 ERROR,用 openclaw logs –follow 查看具体错误。


2. 最推荐的方式:在自定义技能中指示 LLM 使用 message 工具

OpenClaw 的自定义技能本质上是一个 SKILL.md 文件,放在 ~/.openclaw/workspace/skills/你的技能名/ 目录下。你可以在 Markdown 指令中明确告诉 LLM:“任务完成后,必须调用 message 工具通过飞书推送通知。”

2.1 创建技能目录和 SKILL.md

假设我们要创建一个叫 long-task 的技能:

mkdir -p ~/.openclaw/workspace/skills/long-task
cd ~/.openclaw/workspace/skills/long-task
nano SKILL.md

2.2 SKILL.md 完整示例(可直接复制修改)

下面是一个完整的 SKILL.md,包含了详细的指令和示例调用格式。我加了大量注释,方便你理解每一部分的作用。


name: long-task
description: 执行耗时任务(如数据处理、模型推理),完成后通过飞书主动推送结果。
version: 1.0
author: YourName

# 耗时任务技能

## 技能概述
本技能用于执行可能耗时较长的后台任务,并在任务完成后通过飞书通道主动推送通知给发起用户。支持富文本、@提及和交互卡片。

## 使用规则

### 1. 任务启动
当用户请求执行耗时任务时,遵循以下步骤:
– 确认任务参数(如输入文件、模型名称、超时时间等)。
– 立即回复用户:“任务已开始后台执行,完成后我会通过飞书推送结果给你。”
– 调用实际的任务执行工具/脚本(如 `exec`、`python` 等)开始处理。

### 2. 任务完成后主动推送通知
任务执行完毕后,**必须**调用 `message` 工具发送飞书推送。调用格式如下(YAML):

```yaml
message:
action: send
channel: feishu
recipient: current # 可选:current(当前会话用户)、具体的 open_id、chat_id
text: |
✅ **你的耗时任务已完成!**
– 任务名称:{{task_name}}
– 执行结果:{{result_summary}}
– 耗时:{{duration}} 秒
– 输出文件:{{output_path}}
# 可选:卡片消息(支持飞书卡片 JSON)
card: |
{
"config": { "wide_screen_mode": true },
"elements": [
{ "tag": "markdown", "content": "✅ **任务完成**\\n点击下方按钮查看结果" },
{ "tag": "action", "actions": [ … ] }
]
}
# 可选:@指定用户
mention: { "user_id": "ou_xxx", "name": "张三" }

参数说明:

  • action:固定为 send。
  • channel:固定为 feishu(必须)。
  • recipient:可以是 current(自动推导当前会话的用户/群),也可以是具体的 open_id 或 chat_id。用 current 最省事。
  • text:支持 Markdown 格式的文本。
  • card:(可选)飞书消息卡片 JSON,优先级高于 text。
  • mention:(可选)@某人,需提供 user_id 和显示名称。

3. 后台任务处理(重要)

如果任务预计执行时间超过 30 秒,建议结合 openclaw-notify 技能实现异步推送:

  • 安装:openclaw skills install openclaw-notify
  • 使用:任务启动后,立即返回“任务已后台执行”,然后调用 openclaw-notify 在任务真正完成后推送通知。

示例对话

用户:帮我处理一下这个 1GB 的日志文件,提取所有错误行,完成后通知我。 AI:好的,任务已开始后台执行,完成后我会通过飞书推送结果给你。 (后台执行中… 执行完毕后调用 message 工具) AI(通过飞书推送):✅ 日志处理完成!提取到 128 条错误行,结果已保存到 /workspace/errors.txt,耗时 47 秒。

### 2.3 刷新技能

保存 SKILL.md 后,需要让 OpenClaw 重新加载技能:

```bash
openclaw skills refresh

或者在飞书里直接对 AI 说:“刷新技能”,如果你配置了相关意图的话。


3. 测试一下:让 AI 执行你的新技能

在飞书里对你的 OpenClaw 机器人说:

“用 long-task 技能执行一个耗时测试任务,比如 sleep 10 秒,完成后飞书推送通知我结果。”

你会立即收到一条回复:“任务已开始后台执行…”,10 秒后,你的飞书手机端应该会收到一条推送通知,内容就是你 SKILL.md 里定义的格式。

如果收不到推送,别急,往下看排查指南。


4. 进阶用法:让推送更“高级”

4.1 使用消息卡片

飞书支持丰富的交互卡片。你可以在 card 字段里放一段 JSON,让推送变成按钮、图片、表格等。例如:

message:
action: send
channel: feishu
recipient: current
card: |
{
"config": { "wide_screen_mode": true },
"header": { "title": { "tag": "plain_text", "content": "任务完成通知" } },
"elements": [
{ "tag": "markdown", "content": "✅ 你的日志分析任务已完成,点击下方按钮下载结果。" },
{ "tag": "action", "actions": [
{ "tag": "button", "text": { "tag": "plain_text", "content": "下载结果" }, "url": "https://example.com/download" }
]
}
]
}

这样推送过去就是一个带按钮的卡片,用户可以直接点击下载。

4.2 @提及某人

如果想在群里推送时 @具体的人,可以用 mention 字段:

message:
action: send
channel: feishu
recipient: current
text: "任务完成,<at id=ou_xxx>张三</at> 请查收。"
mention:
user_id: "ou_xxx"
name: "张三"

注意 text 里的 <at> 标签和 mention 字段要配合使用,否则可能无法正确解析。

4.3 推送文件

飞书通道支持发送文件(如图片、文档)。可以用 media 字段:

message:
action: send
channel: feishu
recipient: current
text: "结果文件已生成,请查收:"
media:
type: "file"
file_path: "/workspace/output/result.pdf"

文件会被上传并作为附件发送。


5. 常见问题排查(我踩过的坑)

5.1 推送不成功,怎么办?

首先,用 openclaw logs –follow 实时查看日志,看有没有类似这样的输出:

2026-03-09 15:23:45 INFO [channels.feishu] Sending message to recipient current…
2026-03-09 15:23:46 ERROR [channels.feishu] Failed to send message: invalid recipient

常见错误:

错误信息可能原因解决方法
invalid recipient recipient: current 无法推导出具体用户(比如在群聊里但未绑定用户) 改用具体的 open_id 或 chat_id。可以在飞书开放平台后台查看。
permission denied 飞书 App 未授权发送消息权限 在飞书开放平台检查应用是否勾选了 im:message:send_as_bot 权限,并重新发布版本。
rate limit exceeded 调用太频繁 飞书有频率限制,适当增加推送间隔。
timeout 网络问题 检查 OpenClaw 所在机器能否访问飞书 API。

5.2 推送成功了,但手机没收到通知?

飞书 App 的通知开关可能没开。检查:

  • 手机系统设置 → 通知 → 飞书 → 允许通知。
  • 飞书 App 内设置 → 新消息通知 → 确保“接收消息通知”开启。

5.3 如何获取当前用户的 open_id 或 chat_id?

如果你不想用 current,可以先用 message 工具的另一个 action 来查询:

在飞书里对 AI 说:“帮我查一下当前会话的 chat_id”。(需要你的技能或系统支持这个指令)

或者手动获取:在飞书开放平台,进入你的应用,点击“开发配置” -> “调试工具”,可以用用户 ID 查询接口。

5.4 任务执行时间很长,怕超时?

OpenClaw 默认的 Agent 执行超时可能是 5 分钟。如果你的任务需要更久,有两种方案:

  • 调整 Agent 超时:在配置文件中增加 agents.defaults.timeout。
  • 使用异步通知:如前面提到的 openclaw-notify 技能,让任务启动后立即返回,实际执行在后台,完成后通过 notify 推送。
  • 我强烈推荐第二种,因为它不会占用 Agent 会话资源,用户体验也更好。


    6. 总结:让 AI 真正成为你的“得力助手”

    通过自定义技能 + message 工具,OpenClaw 不再只是一个被动的问答机器人,而是可以主动通知你、提醒你的智能助理。无论是耗时任务完成、定时提醒、异常监控,都可以用类似的方式实现。

    最后,再分享一个我自己的小技巧:我写了一个 daily-report 技能,每天早上 9 点通过 cron 触发,抓取我关注的几个数据源,汇总后主动推送到飞书。这样我一睁眼就能看到昨天的关键数据,完全不占用我早上的宝贵时间。

    希望这篇文章能帮你把 OpenClaw 用得更顺手。如果你在实践过程中遇到问题,欢迎在评论区留言。

    —— The lobster way. 🦞

    赞(0)
    未经允许不得转载:171主机测评 » OpenClaw 技能主动推送飞书通知完全指南——耗时任务做完,如何手机立刻收到推送?
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址