Yurak urishi (Gateway)
Heartbeat yoki Cron? Qaysi birini qachon ishlatish bo‘yicha yo‘riqnoma uchun Cron vs Heartbeat sahifasiga qarang.Heartbeat asosiy sessiyada davriy agent yurishlarini ishga tushiradi, shunda model sizni bezovta qilmasdan e’tibor talab qiladigan narsalarni ko‘rsatib bera oladi. Nosozliklarni aniqlash: /automation/troubleshooting
Tezkor boshlash (boshlovchilar uchun)
- Heartbeat’ni yoqilgan holda qoldiring (standart
30m, yoki Anthropic OAuth/setup-token uchun1h) yoki o‘zingiz interval belgilang. - Agent ish maydonida kichik
HEARTBEAT.mdcheklist yarating (ixtiyoriy, lekin tavsiya etiladi). - Heartbeat xabarlari qayerga yuborilishini belgilang (
target: "last"— standart). - Ixtiyoriy: shaffoflik uchun heartbeat reasoning yetkazilishini yoqing.
- Ixtiyoriy: heartbeat’ni faqat faol soatlar bilan cheklang (mahalliy vaqt).
Standart sozlamalar
- Interval:
30m(or1hwhen Anthropic OAuth/setup-token is the detected auth mode). Setagents.defaults.heartbeat.everyor per-agentagents.list[].heartbeat.every; use0mto disable. - Prompt body (configurable via
agents.defaults.heartbeat.prompt):Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK. - The heartbeat prompt is sent verbatim as the user message. The system prompt includes a “Heartbeat” section and the run is flagged internally.
- Active hours (
heartbeat.activeHours) are checked in the configured timezone. Outside the window, heartbeats are skipped until the next tick inside the window.
Heartbeat prompti nima uchun kerak
Standart prompt ataylab keng qamrovli:- Fon vazifalari: “Consider outstanding tasks” agentni ochiq qolgan ishlarni (inbox, kalendar, eslatmalar, navbatdagi ishlar) ko‘rib chiqishga va shoshilinchlarini ko‘rsatishga undaydi.
- Inson bilan aloqa: “Checkup sometimes on your human during day time” vaqti-vaqti bilan yengil “sizga nimadir kerakmi?” xabarini yuborishga undaydi, lekin kechasi spam bo‘lmasligi uchun siz sozlagan mahalliy vaqt zonasidan foydalanadi (qarang: /concepts/timezone).
agents.defaults.heartbeat.prompt (yoki agents.list[].heartbeat.prompt) ni maxsus matn bilan belgilang (o‘zgarishsiz yuboriladi).
Javob shartnomasi
- Agar e’tibor talab qiladigan narsa bo‘lmasa,
HEARTBEAT_OKbilan javob bering. - During heartbeat runs, OpenClaw treats
HEARTBEAT_OKas an ack when it appears at the start or end of the reply. The token is stripped and the reply is dropped if the remaining content is ≤ackMaxChars(default: 300). - Agar
HEARTBEAT_OKjavobning o‘rtasida bo‘lsa, u maxsus talqin qilinmaydi. - Ogohlantirishlar uchun
HEARTBEAT_OKni qo‘shmang; faqat ogohlantirish matnini qaytaring.
HEARTBEAT_OK olib tashlanadi va log qilinadi; faqat HEARTBEAT_OK dan iborat xabar yuborilmaydi.
Config
Qamrov va ustuvorlik
agents.defaults.heartbeatglobal heartbeat xatti-harakatini belgilaydi.agents.list[].heartbeatustiga qo‘shiladi; agar biror agentdaheartbeatbloki bo‘lsa, faqat o‘sha agentlar heartbeat ishga tushiradi.channels.defaults.heartbeatbarcha kanallar uchun ko‘rinish standartlarini belgilaydi.channels.<channel>.heartbeatoverrides channel defaults.channels.<channel>.accounts.<id>.heartbeat(multi-account channels) overrides per-channel settings.
Har bir agent uchun heartbeat
If anyagents.list[] entry includes a heartbeat block, only those agents
run heartbeats. The per-agent block merges on top of agents.defaults.heartbeat
(so you can set shared defaults once and override per agent).
Misol: ikki agent, faqat ikkinchi agent heartbeat ishga tushiradi.
Faol soatlar misoli
Heartbeat’ni ma’lum vaqt zonasidagi ish soatlari bilan cheklash:Multi account misoli
Telegram kabi multi-account kanallarda ma’lum akkauntni tanlash uchunaccountId dan foydalaning:
Maydonlar bo‘yicha izohlar
every: heartbeat intervali (davomiylik satri; standart birlik = daqiqa).model: heartbeat ishga tushirishlari uchun ixtiyoriy model override (provider/model).includeReasoning: yoqilganda, mavjud bo‘lsa alohidaReasoning:xabarini ham yuboradi (/reasoning onbilan bir xil format).session: heartbeat ishga tushirishlari uchun ixtiyoriy sessiya kaliti.main(standart): agentning asosiy sessiyasi.- Aniq sessiya kaliti (
openclaw sessions --jsonyoki sessions CLI orqali). - Sessiya kaliti formatlari: qarang Sessions va Groups.
target:last(standart): oxirgi ishlatilgan tashqi kanalga yuboradi.- aniq kanal:
whatsapp/telegram/discord/googlechat/slack/msteams/signal/imessage. none: heartbeat ishga tushadi, lekin tashqariga yuborilmaydi.
to: ixtiyoriy qabul qiluvchi override (kanalga xos id, masalan WhatsApp uchun E.164 yoki Telegram chat id).accountId: optional account id for multi-account channels. Whentarget: "last", the account id applies to the resolved last channel if it supports accounts; otherwise it is ignored. If the account id does not match a configured account for the resolved channel, delivery is skipped.prompt: standart prompt matnini to‘liq almashtiradi (merge qilinmaydi).ackMaxChars:HEARTBEAT_OKdan keyin yuborishga ruxsat etilgan maksimal belgilar soni.activeHours: restricts heartbeat runs to a time window. Object withstart(HH:MM, inclusive),end(HH:MM exclusive;24:00allowed for end-of-day), and optionaltimezone.- Kiritilmagan yoki
"user": agar mavjud bo‘lsaagents.defaults.userTimezone, aks holda host tizim vaqt zonasi. "local": har doim host tizim vaqt zonasi.- Har qanday IANA identifikatori (masalan
America/New_York): bevosita ishlatiladi; noto‘g‘ri bo‘lsa"user"xatti-harakatiga qaytadi. - Faol oynadan tashqarida heartbeat’lar keyingi ichki tick’gacha o‘tkazib yuboriladi.
- Kiritilmagan yoki
Yetkazish xatti-harakati
- Heartbeats run in the agent’s main session by default (
agent:<id>:<mainKey>), orglobalwhensession.scope = "global". Setsessionto override to a specific channel session (Discord/WhatsApp/etc.). sessionfaqat ishga tushirish kontekstiga ta’sir qiladi; yuborishtargetvatoorqali boshqariladi.- To deliver to a specific channel/recipient, set
target+to. Withtarget: "last", delivery uses the last external channel for that session. - Agar asosiy navbat band bo‘lsa, heartbeat o‘tkazib yuboriladi va keyinroq qayta urinadi.
- Agar
targettashqi manzilga mos kelmasa, ishga tushirish amalga oshadi, lekin tashqi xabar yuborilmaydi. - Faqat heartbeat javoblari sessiyani faol saqlab turmaydi; oxirgi
updatedAttiklanadi, shunda idle muddati odatdagidek ishlaydi.
Ko‘rinish boshqaruvlari
By default,HEARTBEAT_OK acknowledgments are suppressed while alert content is
delivered. You can adjust this per channel or per account:
Har bir flag nima qiladi
showOk: model faqat OK javob qaytarsa,HEARTBEAT_OKtasdig‘ini yuboradi.showAlerts: model OK bo‘lmagan javob qaytarsa, ogohlantirish mazmunini yuboradi.useIndicator: UI holati uchun indikator hodisalarini yuboradi.
Per-channel va per-account misollar
Keng tarqalgan andozalar
| Maqsad | Config |
|---|---|
| Standart xatti-harakat (OK yashirin, ogohlantirishlar yoqilgan) | (config talab qilinmaydi) |
| To‘liq jim (xabar yo‘q, indikator yo‘q) | channels.defaults.heartbeat: { showOk: false, showAlerts: false, useIndicator: false } |
| Faqat indikator (xabar yo‘q) | channels.defaults.heartbeat: { showOk: false, showAlerts: false, useIndicator: true } |
| Faqat bitta kanalda OK ko‘rsatish | channels.telegram.heartbeat: { showOk: true } |
HEARTBEAT.md (ixtiyoriy)
If aHEARTBEAT.md file exists in the workspace, the default prompt tells the
agent to read it. Think of it as your “heartbeat checklist”: small, stable, and
safe to include every 30 minutes.
If HEARTBEAT.md exists but is effectively empty (only blank lines and markdown
headers like # Heading), OpenClaw skips the heartbeat run to save API calls.
If the file is missing, the heartbeat still runs and the model decides what to do.
Prompt hajmi oshib ketmasligi uchun uni kichik saqlang (qisqa cheklist yoki eslatmalar).
Misol HEARTBEAT.md:
Agent HEARTBEAT.md ni yangilay oladimi?
Ha — agar siz undan so‘rasangiz.HEARTBEAT.md agent ish maydonidagi oddiy fayl, shuning uchun oddiy chatda shunday deyishingiz mumkin:
- “
HEARTBEAT.mdga har kunlik kalendar tekshiruvini qo‘sh.” - “
HEARTBEAT.mdni qisqaroq qilib, inbox follow-up’lariga yo‘naltirib qayta yoz.”
HEARTBEAT.md ichiga qo‘ymang — u prompt kontekstining bir qismiga aylanadi.
Qo‘lda uyg‘otish (talab bo‘yicha)
Quyidagi buyruq bilan tizim hodisasini navbatga qo‘yib, darhol heartbeat ishga tushirishingiz mumkin:heartbeat sozlangan bo‘lsa, qo‘lda uyg‘otish ularning har birini darhol ishga tushiradi.
Keyingi rejalashtirilgan tick’ni kutish uchun --mode next-heartbeat dan foydalaning.
Reasoning yetkazish (ixtiyoriy)
Standart bo‘yicha, heartbeat faqat yakuniy “answer” yuklamasini yuboradi. Shaffoflik kerak bo‘lsa, quyidagini yoqing:agents.defaults.heartbeat.includeReasoning: true
Reasoning: (same shape as /reasoning on). This can be useful when the agent
is managing multiple sessions/codexes and you want to see why it decided to ping
you — but it can also leak more internal detail than you want. Prefer keeping it
off in group chats.
Xarajatni hisobga olish
Heartbeats run full agent turns. Shorter intervals burn more tokens. KeepHEARTBEAT.md small and consider a cheaper model or target: "none" if you
only want internal state updates.