Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Heartbeat เทียบกับ cron? ดู Automation เพื่อดูคำแนะนำว่าควรใช้แต่ละอย่างเมื่อใด
เริ่มต้นอย่างรวดเร็ว (ผู้เริ่มต้น)
เลือกความถี่
เปิดใช้ Heartbeat ไว้ (ค่าเริ่มต้นคือ
30m หรือ 1h สำหรับการยืนยันตัวตนด้วย Anthropic OAuth/token รวมถึงการใช้ Claude CLI ซ้ำ) หรือกำหนดความถี่ของคุณเองเพิ่ม HEARTBEAT.md (ไม่บังคับ)
สร้างเช็กลิสต์
HEARTBEAT.md ขนาดเล็ก หรือบล็อก tasks: ในพื้นที่ทำงานของเอเจนต์ตัดสินใจว่าข้อความ Heartbeat ควรส่งไปที่ใด
target: "none" คือค่าเริ่มต้น; ตั้งค่า target: "last" เพื่อส่งต่อไปยังผู้ติดต่อล่าสุดค่าเริ่มต้น
- ช่วงเวลา:
30m(หรือ1hเมื่อโหมดการยืนยันตัวตนที่ตรวจพบคือ Anthropic OAuth/token รวมถึงการใช้ Claude CLI ซ้ำ) ตั้งค่าagents.defaults.heartbeat.everyหรือagents.list[].heartbeat.every; ใช้0mเพื่อปิดใช้งาน - เนื้อหาพรอมป์ (กำหนดค่าได้ผ่าน
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. - พรอมป์ Heartbeat จะถูกส่ง ตรงตามตัวอักษร เป็นข้อความของผู้ใช้ พรอมป์ระบบจะมีส่วน “Heartbeat” เฉพาะเมื่อเปิดใช้ Heartbeat สำหรับเอเจนต์เริ่มต้น และการรันถูกทำเครื่องหมายไว้ภายใน
- เมื่อปิดใช้ Heartbeat ด้วย
0mการรันปกติจะไม่รวมHEARTBEAT.mdจากบริบทเริ่มต้นด้วย เพื่อไม่ให้โมเดลเห็นคำสั่งที่มีไว้สำหรับ Heartbeat เท่านั้น - ชั่วโมงที่ใช้งานอยู่ (
heartbeat.activeHours) จะถูกตรวจสอบตามเขตเวลาที่กำหนดค่าไว้อยู่ นอกช่วงเวลาดังกล่าว Heartbeat จะถูกข้ามจนกว่าจะถึง tick ถัดไปภายในช่วงเวลา - Heartbeat จะเลื่อนออกโดยอัตโนมัติระหว่างที่งาน cron กำลังทำงานหรืออยู่ในคิว ตั้งค่า
heartbeat.skipWhenBusy: trueเพื่อเลื่อนเอเจนต์ด้วยเมื่อเอเจนต์นั้นมีเอเจนต์ย่อยที่ผูกกับคีย์เซสชันของตนเองหรือเลนคำสั่งซ้อนที่กำลังยุ่งอยู่; เอเจนต์พี่น้องจะไม่หยุดชั่วคราวอีกต่อไปเพียงเพราะเอเจนต์อื่นมีงานเอเจนต์ย่อยที่กำลังดำเนินอยู่
พรอมป์ Heartbeat มีไว้เพื่ออะไร
พรอมป์เริ่มต้นถูกตั้งใจให้ครอบคลุมกว้าง:- งานเบื้องหลัง: “พิจารณางานที่ยังค้างอยู่” กระตุ้นให้เอเจนต์ตรวจสอบรายการติดตามผล (กล่องข้อความ ปฏิทิน ตัวเตือน งานที่อยู่ในคิว) และแจ้งสิ่งที่เร่งด่วน
- การเช็กอินกับมนุษย์: “เช็กกับมนุษย์ของคุณเป็นครั้งคราวในช่วงกลางวัน” กระตุ้นข้อความเบา ๆ เป็นครั้งคราวว่า “มีอะไรที่คุณต้องการไหม?” แต่หลีกเลี่ยงสแปมในเวลากลางคืนโดยใช้เขตเวลาท้องถิ่นที่คุณกำหนดค่าไว้ (ดู เขตเวลา)
agents.defaults.heartbeat.prompt (หรือ agents.list[].heartbeat.prompt) เป็นเนื้อหาที่กำหนดเอง (ส่งตรงตามตัวอักษร)
สัญญาการตอบกลับ
- หากไม่มีสิ่งใดต้องให้ความสนใจ ให้ตอบด้วย
HEARTBEAT_OK - การรัน Heartbeat ที่ใช้เครื่องมือได้อาจเรียก
heartbeat_respondพร้อมnotify: falseเพื่อไม่ให้มีการอัปเดตที่มองเห็นได้ หรือnotify: trueพร้อมnotificationTextสำหรับการแจ้งเตือน เมื่อมีอยู่ การตอบกลับแบบมีโครงสร้างจากเครื่องมือจะมีความสำคัญเหนือ fallback แบบข้อความ - ระหว่างการรัน Heartbeat, OpenClaw จะถือว่า
HEARTBEAT_OKเป็น ack เมื่อปรากฏที่ จุดเริ่มต้นหรือจุดสิ้นสุด ของคำตอบ โทเค็นจะถูกตัดออก และคำตอบจะถูกทิ้งหากเนื้อหาที่เหลือมีความยาว ≤ackMaxChars(ค่าเริ่มต้น: 300) - หาก
HEARTBEAT_OKปรากฏอยู่ ตรงกลาง ของคำตอบ จะไม่ถูกปฏิบัติเป็นกรณีพิเศษ - สำหรับการแจ้งเตือน อย่า ใส่
HEARTBEAT_OK; ส่งคืนเฉพาะข้อความแจ้งเตือนเท่านั้น
HEARTBEAT_OK ที่หลุดมาอยู่ต้น/ท้ายข้อความจะถูกตัดออกและบันทึกไว้; ข้อความที่มีเพียง HEARTBEAT_OK จะถูกทิ้ง
การกำหนดค่า
ขอบเขตและลำดับความสำคัญ
agents.defaults.heartbeatตั้งค่าพฤติกรรม Heartbeat ส่วนกลางagents.list[].heartbeatจะรวมทับเพิ่มเติม หากเอเจนต์ใดมีบล็อกheartbeatเฉพาะเอเจนต์เหล่านั้นเท่านั้น ที่จะเรียกใช้ Heartbeatchannels.defaults.heartbeatตั้งค่าเริ่มต้นด้านการมองเห็นสำหรับทุกช่องทางchannels.<channel>.heartbeatแทนที่ค่าเริ่มต้นของช่องทางchannels.<channel>.accounts.<id>.heartbeat(ช่องทางแบบหลายบัญชี) แทนที่การตั้งค่าต่อช่องทาง
Heartbeat ต่อเอเจนต์
หากรายการagents.list[] ใดมีบล็อก heartbeat เฉพาะเอเจนต์เหล่านั้นเท่านั้น ที่จะเรียกใช้ Heartbeat บล็อกต่อเอเจนต์จะรวมทับเพิ่มเติมจาก agents.defaults.heartbeat (ดังนั้นคุณจึงตั้งค่าเริ่มต้นที่ใช้ร่วมกันครั้งเดียว แล้วแทนที่เป็นรายเอเจนต์ได้)
ตัวอย่าง: เอเจนต์สองตัว มีเพียงเอเจนต์ตัวที่สองเท่านั้นที่เรียกใช้ Heartbeat
ตัวอย่างชั่วโมงที่ใช้งาน
จำกัด Heartbeat ให้อยู่ในช่วงเวลาทำการในเขตเวลาที่ระบุ:การตั้งค่าแบบ 24/7
หากคุณต้องการให้ Heartbeat ทำงานทั้งวัน ให้ใช้รูปแบบใดรูปแบบหนึ่งต่อไปนี้:- ละ
activeHoursทั้งหมด (ไม่มีข้อจำกัดช่วงเวลา; นี่คือพฤติกรรมเริ่มต้น) - ตั้งค่าหน้าต่างเต็มวัน:
activeHours: { start: "00:00", end: "24:00" }.
ตัวอย่างหลายบัญชี
ใช้accountId เพื่อกำหนดเป้าหมายบัญชีเฉพาะในช่องทางแบบหลายบัญชี เช่น Telegram:
หมายเหตุภาคสนาม
ช่วงเวลา Heartbeat (สตริงระยะเวลา; หน่วยเริ่มต้น = นาที)
การแทนที่โมเดลแบบไม่บังคับสำหรับการรัน Heartbeat (
provider/model)เมื่อเปิดใช้งาน ให้ส่งข้อความ
Reasoning: แยกต่างหากด้วยเมื่อมีให้ใช้งาน (รูปแบบเดียวกับ /reasoning on)เมื่อเป็น true การรัน Heartbeat จะใช้บริบทบูตสแตรปแบบเบา และเก็บเฉพาะ
HEARTBEAT.md จากไฟล์บูตสแตรปของเวิร์กสเปซเมื่อเป็น true Heartbeat แต่ละครั้งจะรันในเซสชันใหม่โดยไม่มีประวัติการสนทนาก่อนหน้า ใช้รูปแบบการแยกเดียวกับ Cron
sessionTarget: "isolated" ลดต้นทุนโทเคนต่อ Heartbeat ได้อย่างมาก ใช้ร่วมกับ lightContext: true เพื่อประหยัดสูงสุด การกำหนดเส้นทางการส่งมอบยังคงใช้บริบทของเซสชันหลักเมื่อเป็น true การรัน Heartbeat จะเลื่อนออกไปบนเลนที่ยุ่งเพิ่มเติมของเอเจนต์นั้น ได้แก่ subagent ของตัวเองที่ผูกกับคีย์เซสชัน หรืองานคำสั่งแบบซ้อน เลน Cron จะเลื่อน Heartbeat เสมอ แม้ไม่มีแฟล็กนี้ เพื่อให้โฮสต์โมเดลภายในเครื่องไม่รันพรอมป์ Cron และ Heartbeat พร้อมกัน
คีย์เซสชันแบบไม่บังคับสำหรับการรัน Heartbeat
main(ค่าเริ่มต้น): เซสชันหลักของเอเจนต์- คีย์เซสชันที่ระบุอย่างชัดเจน (คัดลอกจาก
openclaw sessions --jsonหรือ sessions CLI) - รูปแบบคีย์เซสชัน: ดู Sessions และ Groups
last: ส่งไปยังช่องทางภายนอกที่ใช้ล่าสุด- ช่องทางที่ระบุอย่างชัดเจน: ช่องทางหรือ id ของ Plugin ที่กำหนดค่าไว้ เช่น
discord,matrix,telegram, หรือwhatsapp none(ค่าเริ่มต้น): รัน Heartbeat แต่ไม่ส่งออกไปภายนอก
ควบคุมพฤติกรรมการส่งแบบโดยตรง/DM
allow: อนุญาตการส่ง Heartbeat แบบโดยตรง/DM block: ระงับการส่งแบบโดยตรง/DM (reason=dm-blocked)ระบุผู้รับทับค่าเดิมได้ตามต้องการ (รหัสเฉพาะช่องทาง เช่น E.164 สำหรับ WhatsApp หรือรหัสแชท Telegram) สำหรับหัวข้อ/เธรดของ Telegram ให้ใช้
<chatId>:topic:<messageThreadId>รหัสบัญชีที่ไม่บังคับสำหรับช่องทางหลายบัญชี เมื่อ
target: "last" รหัสบัญชีจะใช้กับช่องทางล่าสุดที่แก้ไขได้แล้ว หากช่องทางนั้นรองรับบัญชี มิฉะนั้นจะถูกละเว้น หากรหัสบัญชีไม่ตรงกับบัญชีที่กำหนดค่าไว้สำหรับช่องทางที่แก้ไขได้แล้ว จะข้ามการส่งแทนที่เนื้อหาพรอมต์เริ่มต้น (ไม่รวมเข้าด้วยกัน)
จำนวนอักขระสูงสุดที่อนุญาตหลัง
HEARTBEAT_OK ก่อนส่งมอบเมื่อเป็น true จะระงับเพย์โหลดคำเตือนข้อผิดพลาดของเครื่องมือระหว่างการรัน heartbeat
จำกัดการรัน heartbeat ให้อยู่ภายในกรอบเวลา ออบเจ็กต์ที่มี
start (HH:MM, รวมเวลานี้; ใช้ 00:00 สำหรับต้นวัน), end (HH:MM ไม่รวมเวลานี้; อนุญาต 24:00 สำหรับท้ายวัน), และ timezone ที่เป็นตัวเลือก- ละไว้หรือ
"user": ใช้agents.defaults.userTimezoneของคุณหากตั้งค่าไว้ มิฉะนั้นจะถอยกลับไปใช้เขตเวลาของระบบโฮสต์ "local": ใช้เขตเวลาของระบบโฮสต์เสมอ- ตัวระบุ IANA ใดก็ได้ (เช่น
America/New_York): ใช้โดยตรง; หากไม่ถูกต้อง จะถอยกลับไปใช้พฤติกรรม"user"ข้างต้น startและendต้องไม่เท่ากันสำหรับหน้าต่างที่ใช้งานอยู่; ค่าที่เท่ากันจะถือว่าเป็นความกว้างศูนย์ (อยู่นอกหน้าต่างเสมอ)- นอกหน้าต่างที่ใช้งานอยู่ heartbeat จะถูกข้ามจนถึง tick ถัดไปที่อยู่ภายในหน้าต่าง
พฤติกรรมการส่งมอบ
การกำหนดเส้นทางเซสชันและเป้าหมาย
การกำหนดเส้นทางเซสชันและเป้าหมาย
- โดยค่าเริ่มต้น heartbeat จะรันในเซสชันหลักของเอเจนต์ (
agent:<id>:<mainKey>) หรือglobalเมื่อsession.scope = "global"ตั้งค่าsessionเพื่อแทนที่เป็นเซสชันช่องทางเฉพาะ (Discord/WhatsApp/อื่น ๆ) sessionมีผลเฉพาะบริบทการรันเท่านั้น; การส่งมอบถูกควบคุมโดยtargetและto- หากต้องการส่งมอบไปยังช่องทาง/ผู้รับเฉพาะ ให้ตั้งค่า
target+toเมื่อใช้target: "last"การส่งมอบจะใช้ช่องทางภายนอกล่าสุดของเซสชันนั้น - การส่งมอบ heartbeat อนุญาตเป้าหมายแบบส่งตรง/DM ตามค่าเริ่มต้น ตั้งค่า
directPolicy: "block"เพื่อระงับการส่งไปยังเป้าหมายแบบส่งตรง โดยยังคงรันรอบ heartbeat อยู่ - หากคิวหลัก, เลนเซสชันเป้าหมาย, เลน cron หรือ cron job ที่ใช้งานอยู่กำลังยุ่ง heartbeat จะถูกข้ามและลองใหม่ภายหลัง
- หาก
skipWhenBusy: trueเซสชัน keyed ตาม session ของเอเจนต์นี้และเลนซ้อนกันจะเลื่อนการรัน heartbeat ด้วย เลนที่ยุ่งของเอเจนต์อื่นจะไม่เลื่อนเอเจนต์นี้ - หาก
targetresolve แล้วไม่มีปลายทางภายนอก การรันยังคงเกิดขึ้นแต่ไม่มีการส่งข้อความขาออก
การมองเห็นและพฤติกรรมการข้าม
การมองเห็นและพฤติกรรมการข้าม
- หาก
showOk,showAlerts, และuseIndicatorถูกปิดใช้งานทั้งหมด การรันจะถูกข้ามตั้งแต่ต้นเป็นreason=alerts-disabled - หากปิดใช้งานเฉพาะการส่งมอบการแจ้งเตือน OpenClaw ยังสามารถรัน heartbeat, อัปเดต timestamp ของงานที่ครบกำหนด, คืนค่า timestamp ว่างของเซสชัน และระงับเพย์โหลดการแจ้งเตือนออกภายนอกได้
- หากเป้าหมาย heartbeat ที่ resolve แล้วรองรับสถานะกำลังพิมพ์ OpenClaw จะแสดงสถานะกำลังพิมพ์ขณะที่การรัน heartbeat ทำงานอยู่ ซึ่งใช้เป้าหมายเดียวกับที่ heartbeat จะส่งเอาต์พุตแชทไปหา และจะถูกปิดใช้งานด้วย
typingMode: "never"
วงจรชีวิตเซสชันและการตรวจสอบ
วงจรชีวิตเซสชันและการตรวจสอบ
- การตอบกลับเฉพาะ heartbeat ไม่ ทำให้เซสชันยังคงอยู่ เมตาดาต้า heartbeat อาจอัปเดตแถวเซสชัน แต่การหมดอายุเมื่อว่างจะใช้
lastInteractionAtจากข้อความผู้ใช้/ช่องทางจริงล่าสุด และการหมดอายุรายวันจะใช้sessionStartedAt - ประวัติ Control UI และ WebChat ซ่อนพรอมต์ heartbeat และการตอบรับที่เป็น OK เท่านั้น transcript เซสชันพื้นฐานยังสามารถมีรอบเหล่านั้นเพื่อการตรวจสอบ/เล่นซ้ำได้
- งานเบื้องหลัง แบบแยกออกสามารถ enqueue เหตุการณ์ระบบและปลุก heartbeat เมื่อเซสชันหลักควรรับรู้บางอย่างอย่างรวดเร็ว การปลุกนั้นไม่ได้ทำให้การรัน heartbeat กลายเป็นงานเบื้องหลัง
การควบคุมการมองเห็น
โดยค่าเริ่มต้น การตอบรับHEARTBEAT_OK จะถูกระงับขณะที่เนื้อหาการแจ้งเตือนถูกส่งมอบ คุณสามารถปรับค่านี้ต่อช่องทางหรือต่อบัญชีได้:
แต่ละ flag ทำอะไร
showOk: ส่งการตอบรับHEARTBEAT_OKเมื่อโมเดลส่งคืนการตอบกลับที่เป็น OK เท่านั้นshowAlerts: ส่งเนื้อหาการแจ้งเตือนเมื่อโมเดลส่งคืนการตอบกลับที่ไม่ใช่ OKuseIndicator: emit เหตุการณ์ indicator สำหรับพื้นผิวสถานะ UI
ตัวอย่างต่อช่องทางเทียบกับต่อบัญชี
รูปแบบที่พบบ่อย
| เป้าหมาย | Config |
|---|---|
| พฤติกรรมเริ่มต้น (OK แบบเงียบ, เปิดการแจ้งเตือน) | (ไม่จำเป็นต้องมี config) |
| เงียบทั้งหมด (ไม่มีข้อความ, ไม่มี indicator) | channels.defaults.heartbeat: { showOk: false, showAlerts: false, useIndicator: false } |
| เฉพาะ indicator (ไม่มีข้อความ) | channels.defaults.heartbeat: { showOk: false, showAlerts: false, useIndicator: true } |
| OK เฉพาะในช่องทางเดียว | channels.telegram.heartbeat: { showOk: true } |
HEARTBEAT.md (ไม่บังคับ)
หากมีไฟล์HEARTBEAT.md อยู่ใน workspace พรอมต์เริ่มต้นจะบอกให้เอเจนต์อ่านไฟล์นั้น ให้คิดว่าไฟล์นี้เป็น “เช็กลิสต์ heartbeat” ของคุณ: เล็ก เสถียร และปลอดภัยที่จะรวมทุก 30 นาที
ในการรันปกติ HEARTBEAT.md จะถูก inject เฉพาะเมื่อเปิดใช้งานคำแนะนำ heartbeat สำหรับเอเจนต์เริ่มต้นเท่านั้น การปิดใช้งานจังหวะ heartbeat ด้วย 0m หรือการตั้งค่า includeSystemPromptSection: false จะละไว้จากบริบท bootstrap ปกติ
หาก HEARTBEAT.md มีอยู่แต่แทบจะว่างเปล่า (มีเฉพาะบรรทัดว่างและหัวข้อ markdown เช่น # Heading) OpenClaw จะข้ามการรัน heartbeat เพื่อประหยัดการเรียก API การข้ามนั้นจะถูกรายงานเป็น reason=empty-heartbeat-file หากไฟล์หายไป heartbeat ยังคงรัน และโมเดลจะตัดสินใจว่าจะทำอะไร
ทำให้เล็กมาก (เช็กลิสต์สั้น ๆ หรือการเตือนความจำ) เพื่อหลีกเลี่ยงพรอมต์บวม
ตัวอย่าง HEARTBEAT.md:
บล็อก tasks:
HEARTBEAT.md ยังรองรับบล็อก tasks: แบบมีโครงสร้างขนาดเล็กสำหรับการตรวจสอบตามช่วงเวลาภายใน heartbeat เอง
ตัวอย่าง:
พฤติกรรม
พฤติกรรม
- OpenClaw parse บล็อก
tasks:และตรวจสอบแต่ละงานกับintervalของตัวเอง - เฉพาะงานที่ ครบกำหนด เท่านั้นที่จะรวมอยู่ในพรอมต์ heartbeat สำหรับ tick นั้น
- หากไม่มีงานที่ครบกำหนด heartbeat จะถูกข้ามทั้งหมด (
reason=no-tasks-due) เพื่อหลีกเลี่ยงการเรียกโมเดลที่สูญเปล่า - เนื้อหาที่ไม่ใช่งานใน
HEARTBEAT.mdจะถูกเก็บไว้และผนวกเป็นบริบทเพิ่มเติมหลังรายการงานที่ครบกำหนด - timestamp การรันล่าสุดของงานจะถูกเก็บในสถานะเซสชัน (
heartbeatTaskState) ดังนั้นช่วงเวลาจะยังคงอยู่หลังการรีสตาร์ทตามปกติ - timestamp ของงานจะถูกเลื่อนไปข้างหน้าเฉพาะหลังจากการรัน heartbeat เสร็จสิ้นเส้นทางการตอบกลับปกติเท่านั้น การรันที่ถูกข้ามแบบ
empty-heartbeat-file/no-tasks-dueจะไม่ทำเครื่องหมายว่างานเสร็จสมบูรณ์
เอเจนต์สามารถอัปเดต HEARTBEAT.md ได้ไหม?
ได้ — หากคุณขอให้ทำHEARTBEAT.md เป็นเพียงไฟล์ปกติใน workspace ของเอเจนต์ ดังนั้นคุณสามารถบอกเอเจนต์ (ในแชทปกติ) ได้ เช่น:
- “Update
HEARTBEAT.mdto add a daily calendar check.” - “Rewrite
HEARTBEAT.mdso it’s shorter and focused on inbox follow-ups.”
การปลุกด้วยตนเอง (ตามต้องการ)
คุณสามารถ enqueue เหตุการณ์ระบบและทริกเกอร์ heartbeat ทันทีด้วย:heartbeat ไว้ การปลุกด้วยตนเองจะรัน heartbeat ของเอเจนต์เหล่านั้นแต่ละตัวทันที
ใช้ --mode next-heartbeat เพื่อรอ tick ที่กำหนดเวลาไว้ถัดไป
การส่งมอบ reasoning (ไม่บังคับ)
โดยค่าเริ่มต้น heartbeat จะส่งมอบเฉพาะเพย์โหลด “คำตอบ” สุดท้ายเท่านั้น หากคุณต้องการความโปร่งใส ให้เปิดใช้งาน:agents.defaults.heartbeat.includeReasoning: true
Reasoning: ด้วย (รูปแบบเดียวกับ /reasoning on) สิ่งนี้มีประโยชน์เมื่อเอเจนต์จัดการหลายเซสชัน/codexes และคุณต้องการเห็นว่าทำไมเอเจนต์จึงตัดสินใจ ping คุณ — แต่อาจรั่วไหลรายละเอียดภายในมากกว่าที่คุณต้องการได้เช่นกัน แนะนำให้ปิดไว้ในแชทกลุ่ม
การตระหนักถึงต้นทุน
heartbeat รันรอบเอเจนต์เต็มรูปแบบ ช่วงเวลาที่สั้นลงใช้ token มากขึ้น เพื่อลดต้นทุน:- ใช้
isolatedSession: trueเพื่อหลีกเลี่ยงการส่งประวัติการสนทนาทั้งหมด (~100K token ลดลงเหลือ ~2-5K ต่อการรัน) - ใช้
lightContext: trueเพื่อจำกัดไฟล์ bootstrap ให้เหลือเพียงHEARTBEAT.md - ตั้งค่า
modelที่ถูกกว่า (เช่นollama/llama3.2:1b) - ทำให้
HEARTBEAT.mdเล็ก - ใช้
target: "none"หากคุณต้องการเฉพาะการอัปเดตสถานะภายใน
บริบทล้นหลัง heartbeat
หาก heartbeat ก่อนหน้านี้ทิ้งเซสชันเดิมไว้บนโมเดล local ที่เล็กกว่า เช่น โมเดล Ollama ที่มีหน้าต่าง 32k และรอบเซสชันหลักถัดไปรายงานว่าบริบทล้น ให้รีเซ็ตโมเดล runtime ของเซสชันกลับไปเป็นโมเดลหลักที่กำหนดค่าไว้ ข้อความรีเซ็ตของ OpenClaw จะระบุเรื่องนี้เมื่อโมเดล runtime ล่าสุดตรงกับheartbeat.model ที่กำหนดค่าไว้
heartbeat ปัจจุบันจะรักษาโมเดล runtime เดิมของเซสชันที่แชร์ไว้หลังจากการรันเสร็จสมบูรณ์ คุณยังสามารถใช้ isolatedSession: true เพื่อรัน heartbeat ในเซสชันใหม่ รวมกับ lightContext: true เพื่อให้พรอมต์เล็กที่สุด หรือเลือกโมเดล heartbeat ที่มีหน้าต่างบริบทใหญ่พอสำหรับเซสชันที่แชร์
ที่เกี่ยวข้อง
- Automation — กลไก Automation ทั้งหมดในภาพรวม
- งานเบื้องหลัง — วิธีติดตามงานที่แยกออก
- เขตเวลา — วิธีที่เขตเวลามีผลต่อการกำหนดเวลา heartbeat
- การแก้ไขปัญหา — การดีบักปัญหา Automation