← 返回 Skills 市场
alex3alex

Channel Reminders

作者 alex3alex · GitHub ↗ · v1.3.0
cross-platform ⚠ suspicious
768
总下载
0
收藏
0
当前安装
4
版本数
在 OpenClaw 中安装
/install channel-reminders
功能描述
Создаёт и доставляет пользователю напоминания в текущий чат мессенджера через systemEvent в main session по расписанию или интервалу.
使用说明 (SKILL.md)

Channel Reminders

Навык для создания напоминаний через cron jobs с доставкой в Telegram.


⚠️ ТРЕБОВАНИЯ (проверь перед использованием)

1. Heartbeat должен быть включён

В ~/.openclaw/openclaw.json проверь:

{
  "agents": {
    "defaults": {
      "heartbeat": {
        "every": "5m",      // ← НЕ должен быть "0m" или отсутствовать
        "target": "last"    // ← Куда отправлять ответы
      }
    }
  }
}

Если heartbeat.every = "0m" или отсутствует — напоминания НЕ будут работать!

2. HEARTBEAT.md должен содержать инструкцию

В HEARTBEAT.md main агента ОБЯЗАТЕЛЬНО добавь раздел для обработки напоминаний:

### Напоминания (systemEvent)

Когда получаешь systemEvent с напоминанием (обычно содержит ⏰, 📅, 💰, 📞, ✅, 🔔, 💊, 🏃 и т.д.) — передай его пользователю в Telegram.

**Пример:**
- Получено: `⏰ НАПОМИНАНИЕ: оплатить интернет`
- Ответ в Telegram: `💰 Напоминаю: пора оплатить интернет!`

Просто доставь напоминание без лишних комментариев.

3. wakeMode: "now" в cron job

Всегда указывай "wakeMode": "now" чтобы heartbeat сработал сразу:

{
  "sessionTarget": "main",
  "wakeMode": "now",    // ← ОБЯЗАТЕЛЬНО для немедленного срабатывания
  "payload": { ... }
}

Без этого напоминание будет ждать следующего heartbeat (до 5 минут).


🧪 ПОСЛЕ УСТАНОВКИ: Тестирование

После установки навыка обязательно протестируй все подходы с пользователем:

Шаг 1: Тест простого напоминания (main агент)

Поставь тестовое напоминание через 1 минуту

Шаг 2: Тест через message tool (если есть несколько ботов)

Отправь тестовое сообщение через message tool

Шаг 3: Определи рабочий вариант

После тестов запиши в память какой подход работает:

Пример записи в MEMORY.md или memory/YYYY-MM-DD.md:

## Напоминания

**Рабочий подход:** sessionTarget: "main" + systemEvent + wakeMode: "now"
**Проверено:** 2026-02-14
**Chat ID пользователя:** 7977422300

Шаг 4: Если не работает

Проверь:

  1. ✅ Heartbeat включён (heartbeat.every ≠ "0m")
  2. ✅ HEARTBEAT.md содержит инструкцию для напоминаний
  3. wakeMode: "now" указан в cron job
  4. ✅ Telegram канал настроен и работает

Быстрый старт

Для MAIN агента

{
  "name": "Напоминание",
  "schedule": { "kind": "at", "at": "2026-02-14T15:00:00+03:00" },
  "sessionTarget": "main",
  "wakeMode": "now",
  "payload": {
    "kind": "systemEvent",
    "text": "⏰ НАПОМИНАНИЕ: текст напоминания"
  }
}

Main агент получит systemEvent → heartbeat сработает → агент ответит в чат.


Для НЕ-main агентов (Semen, Andrey, Hristofor, Discussions)

Используй схему: main агент + message tool

{
  "agentId": "main",
  "name": "Напоминание от Semen",
  "schedule": { "kind": "at", "at": "2026-02-14T15:00:00+03:00" },
  "sessionTarget": "main",
  "wakeMode": "now",
  "payload": {
    "kind": "systemEvent",
    "text": "📤 ОТПРАВИТЬ НАПОМИНАНИЕ:\
accountId: semen\
target: 7977422300\
message: 🤗 текст напоминания"
  }
}

Как это работает:

  1. Cron срабатывает → systemEvent идёт в main session main агента
  2. Main агент видит 📤 ОТПРАВИТЬ НАПОМИНАНИЕ: в HEARTBEAT.md
  3. Main агент парсит accountId, target, message
  4. Main агент отправляет через message tool с указанным accountId
  5. Пользователь получает сообщение от бота НЕ-main агента

Необходимые данные

Chat ID пользователя

Где взять:

curl "https://api.telegram.org/bot\x3CBOT_TOKEN>/getUpdates" | jq '.result[].message.chat.id'

Или из metadata сообщения — в заголовке Telegram сообщения виден id:XXXXXXXX

AccountId для каждого агента

Агент accountId
Джон Зойдберг (main) main
Семён semen
Андрей andrey
Христофор hristofor
Discussions discussions

Типы расписаний

Одноразовое (at)

{ "kind": "at", "at": "2026-02-14T15:00:00+03:00" }

⚠️ Всегда указывай таймзону! Без неё = UTC.

Повторяющееся (cron)

{ "kind": "cron", "expr": "0 9 * * *", "tz": "Europe/Moscow" }
Выражение Значение
0 9 * * * Каждый день в 9:00
0 9 * * 1-5 Будни в 9:00
0 18 * * 5 Каждую пятницу в 18:00
0 */2 * * * Каждые 2 часа

Интервал (every)

{ "kind": "every", "everyMs": 3600000 }
Интервал Миллисекунды
5 минут 300000
1 час 3600000
24 часа 86400000

Примеры

Main агент: напомнить через 10 минут

{
  "name": "Напоминание через 10 мин",
  "schedule": { "kind": "at", "at": "\x3Cтекущее время + 10 мин>" },
  "sessionTarget": "main",
  "wakeMode": "now",
  "payload": {
    "kind": "systemEvent",
    "text": "⏰ НАПОМИНАНИЕ: проверить почту"
  }
}

Semen: ежедневное напоминание

{
  "agentId": "main",
  "name": "Утреннее напоминание от Semen",
  "schedule": { "kind": "cron", "expr": "0 9 * * *", "tz": "Europe/Moscow" },
  "sessionTarget": "main",
  "wakeMode": "now",
  "payload": {
    "kind": "systemEvent",
    "text": "📤 ОТПРАВИТЬ НАПОМИНАНИЕ:\
accountId: semen\
target: 7977422300\
message: 🤗 Доброе утро! Проверь задачи на сегодня."
  }
}

Hristofor: напоминание об оплате

{
  "agentId": "main",
  "name": "Оплата интернета",
  "schedule": { "kind": "at", "at": "2026-02-25T10:00:00+03:00" },
  "sessionTarget": "main",
  "wakeMode": "now",
  "payload": {
    "kind": "systemEvent",
    "text": "📤 ОТПРАВИТЬ НАПОМИНАНИЕ:\
accountId: hristofor\
target: 7977422300\
message: 💰 Напоминание: оплатить интернет до 28 февраля"
  }
}

Управление напоминаниями

Посмотреть все

cron list

Удалить

cron remove jobId: "uuid"

Отключить/включить

cron update jobId: "uuid" patch: { enabled: false }
cron update jobId: "uuid" patch: { enabled: true }

Формат systemEvent для НЕ-main агентов

📤 ОТПРАВИТЬ НАПОМИНАНИЕ:
accountId: \x3CaccountId бота>
target: \x3CChat ID пользователя>
message: \x3Cтекст напоминания с эмодзи>

Эмодзи для разных типов:

Эмодзи Агент
🤗 Semen
🧑💻 Andrey
💰 Hristofor
💬 Discussions

Настройка HEARTBEAT.md main агента

Проверка

Перед использованием навыка убедись, что в HEARTBEAT.md main агента есть инструкция для обработки 📤 ОТПРАВИТЬ НАПОМИНАНИЕ:.

Проверь файл: ~/.openclaw/workspace-main/HEARTBEAT.md

Ищи раздел:

### Напоминания от других агентов (📤 ОТПРАВИТЬ НАПОМИНАНИЕ)

Если раздела нет — добавь:

### Напоминания от других агентов (📤 ОТПРАВИТЬ НАПОМИНАНИЕ)

Когда получаешь systemEvent с `📤 ОТПРАВИТЬ НАПОМИНАНИЕ:` — это запрос от НЕ-main агента отправить сообщение через их бота.

**Формат:**
\`\`\`
📤 ОТПРАВИТЬ НАПОМИНАНИЕ:
accountId: semen
target: 7977422300
message: 🤗 текст напоминания
\`\`\`

**Действие:** Используй `message` tool:
\`\`\`json
{
  "action": "send",
  "channel": "telegram",
  "accountId": "\x3CaccountId из systemEvent>",
  "target": "\x3Ctarget из systemEvent>",
  "message": "\x3Cmessage из systemEvent>"
}
\`\`\`

Ничего больше не отвечай после отправки (NO_REPLY).

Как это работает

При получении такого systemEvent, main агент:

  1. Парсит accountId, target, message из текста
  2. Использует message tool с этими параметрами
  3. Сообщение отправляется от бота с указанным accountId
  4. Main агент отвечает NO_REPLY (не дублирует в свой чат)

Почему эта схема работает

  1. Main агент имеет стабильный heartbeat — systemEvent всегда обрабатывается
  2. Message tool работает — проверено CLI и tool call
  3. AccountId маршрутизирует — сообщение идёт от нужного бота
  4. Target указывает получателя — Chat ID пользователя

Альтернатива: прямая отправка через message tool

Если агент хочет отправить сообщение СЕЙЧАС (не по расписанию):

{
  "action": "send",
  "channel": "telegram",
  "accountId": "semen",
  "target": "7977422300",
  "message": "🤗 Текст сообщения"
}

Это работает для любого агента, если он имеет доступ к message tool.

安全使用建议
This skill is instruction-only and appears to do what it says: schedule cron jobs that send systemEvent payloads to the main agent, which then delivers messages to users via the message tool (Telegram). Before using it: 1) Verify you already have a configured Telegram bot/message-tool integration (BOT_TOKEN) and understand where credentials are stored—the skill assumes these exist but does not declare them. 2) Back up ~/.openclaw/openclaw.json and HEARTBEAT.md before editing them; the skill requires changing/adding heartbeat handling. 3) Review who can create cron jobs and who can supply target chat IDs—the main agent will be able to send messages to arbitrary chat IDs if allowed, so restrict who can create jobs. 4) Store Chat IDs and any notes with care (MEMORY.md may contain PII). 5) Test thoroughly with a non-sensitive chat/bot before use. If you want higher confidence, ask the author for explicit instructions on where the Telegram BOT_TOKEN should be configured and examples of the message-tool auth setup; a small reference implementation or unit tests would also reduce ambiguity.
功能分析
Type: OpenClaw Skill Name: channel-reminders Version: 1.3.0 The skill instructs the user to modify the main agent's `HEARTBEAT.md` file with specific prompt injection instructions. These instructions, found in `SKILL.md`, enable the agent to parse `accountId`, `target`, and `message` from incoming `systemEvent` payloads and use the `message` tool to send Telegram messages. While this is the stated purpose of the reminder skill, it grants broad capabilities to send arbitrary messages to any specified Telegram chat ID from any configured bot, which presents a significant risk for misuse if malicious `systemEvent`s are crafted by a user or another compromised skill.
能力评估
Purpose & Capability
The skill's name/description (channel reminders → deliver reminders to chat via scheduled systemEvent) matches the SKILL.md instructions: create cron jobs that send systemEvent payloads to the main session which then deliver messages via the message tool. The package.json keywords (signal, discord) slightly overreach the SKILL.md focus on Telegram, but this is a minor metadata mismatch rather than a functional contradiction.
Instruction Scope
Instructions explicitly tell the operator to edit ~/.openclaw/openclaw.json, HEARTBEAT.md, and to create cron jobs with wakeMode: "now"; these are within the agent's domain and are necessary for the described behavior. The skill does not instruct reading unrelated host files or exfiltrating data. It does assume the main agent is allowed to send messages via the message tool and that a Telegram bot is configured.
Install Mechanism
Instruction-only skill with no install spec and no code files; nothing is written or downloaded. Low install risk.
Credentials
The skill declares no required environment variables, but its instructions expect a Telegram bot (BOT_TOKEN) and an operational message tool. The SKILL.md shows a curl example to get chat IDs using BOT_TOKEN but does not declare or instruct where to store that token. This is an omission (the skill assumes existing Telegram integration) rather than an incoherent request for unrelated credentials.
Persistence & Privilege
always is false and the skill is user-invocable; it does require modifying agent-specific files (openclaw.json, HEARTBEAT.md, memory files) which is expected for this functionality. It does not request permanent elevated privileges or modify other skills' configurations.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install channel-reminders
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /channel-reminders 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.3.0
Added post-install testing instructions: test approaches with user, pick working variant, save to memory.
v1.2.0
Added REQUIREMENTS section: heartbeat config, HEARTBEAT.md instructions for simple reminders, wakeMode:now in all examples. Fixed missing setup steps.
v1.1.0
Multi-agent support: non-main agents can send reminders through main agent using message tool. Added HEARTBEAT.md setup instructions.
v1.0.0
Initial release: reminders via main session + systemEvent for any OpenClaw channel
元数据
Slug channel-reminders
版本 1.3.0
许可证
累计安装 0
当前安装数 0
历史版本数 4
常见问题

Channel Reminders 是什么?

Создаёт и доставляет пользователю напоминания в текущий чат мессенджера через systemEvent в main session по расписанию или интервалу. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 768 次。

如何安装 Channel Reminders?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install channel-reminders」即可一键安装,无需额外配置。

Channel Reminders 是免费的吗?

是的,Channel Reminders 完全免费(开源免费),可自由下载、安装和使用。

Channel Reminders 支持哪些平台?

Channel Reminders 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Channel Reminders?

由 alex3alex(@alex3alex)开发并维护,当前版本 v1.3.0。

💬 留言讨论