Concept internals
ตัวบ่งชี้ว่ากำลังพิมพ์
ตัวบ่งชี้การพิมพ์จะถูกส่งไปยังช่องแชทขณะที่การรันกำลังทำงานอยู่ ใช้
agents.defaults.typingMode เพื่อควบคุมว่าเริ่มแสดงการพิมพ์ เมื่อใด และใช้ typingIntervalSeconds
เพื่อควบคุมว่ารีเฟรช บ่อยเพียงใด
ค่าเริ่มต้น
เมื่อ agents.defaults.typingMode ไม่ได้ตั้งค่าไว้ OpenClaw จะคงพฤติกรรมแบบเดิมไว้:
- แชทโดยตรง: การพิมพ์จะเริ่มทันทีเมื่อวงรอบโมเดลเริ่มทำงาน
- แชทกลุ่มที่มีการเมนชัน: การพิมพ์จะเริ่มทันที
- แชทกลุ่มที่ไม่มีการเมนชัน: การพิมพ์จะเริ่มเฉพาะเมื่อข้อความเริ่มสตรีม
- การรัน Heartbeat: การพิมพ์จะเริ่มเมื่อการรัน Heartbeat เริ่มขึ้น หาก เป้าหมาย Heartbeat ที่ระบุได้เป็นแชทที่รองรับการพิมพ์ และไม่ได้ปิดใช้งานการพิมพ์ไว้
โหมด
ตั้งค่า agents.defaults.typingMode เป็นค่าใดค่าหนึ่งต่อไปนี้:
never- ไม่มีตัวบ่งชี้การพิมพ์ ไม่ว่าเมื่อใดก็ตามinstant- เริ่มแสดงการพิมพ์ ทันทีที่วงรอบโมเดลเริ่มทำงาน แม้ว่าภายหลังการรัน จะส่งกลับเพียงโทเค็นตอบกลับแบบเงียบก็ตามthinking- เริ่มแสดงการพิมพ์เมื่อมี เดลตาการให้เหตุผลแรก (ต้องใช้reasoningLevel: "stream"สำหรับการรันนั้น)message- เริ่มแสดงการพิมพ์เมื่อมี เดลตาข้อความแบบไม่เงียบแรก (ละเว้น โทเค็นแบบเงียบNO_REPLY)
ลำดับของ “เริ่มเร็วแค่ไหน”:
never → message → thinking → instant
การกำหนดค่า
{
agent: {
typingMode: "thinking",
typingIntervalSeconds: 6,
},
}
คุณสามารถแทนที่โหมดหรือจังหวะต่อเซสชันได้:
{
session: {
typingMode: "message",
typingIntervalSeconds: 4,
},
}
หมายเหตุ
- โหมด
messageจะไม่แสดงการพิมพ์สำหรับคำตอบที่มีเฉพาะแบบเงียบ เมื่อเพย์โหลดทั้งหมด เป็นโทเค็นแบบเงียบที่ตรงกันทุกประการ (เช่นNO_REPLY/no_replyโดยจับคู่แบบไม่คำนึงถึงตัวพิมพ์ใหญ่เล็ก) thinkingจะทำงานเฉพาะเมื่อการรันสตรีมการให้เหตุผล (reasoningLevel: "stream") หากโมเดลไม่ปล่อยเดลตาการให้เหตุผล การพิมพ์จะไม่เริ่ม- การพิมพ์ของ Heartbeat เป็นสัญญาณความพร้อมใช้งานสำหรับเป้าหมายการส่งที่ระบุได้ โดย
จะเริ่มเมื่อการรัน Heartbeat เริ่มขึ้น แทนที่จะทำตามจังหวะสตรีมของ
messageหรือthinkingตั้งค่าtypingMode: "never"เพื่อปิดใช้งาน - Heartbeat จะไม่แสดงการพิมพ์เมื่อ
target: "none", เมื่อไม่สามารถ ระบุเป้าหมายได้, เมื่อการส่งผ่านแชทถูกปิดใช้งานสำหรับ Heartbeat, หรือเมื่อ ช่องไม่รองรับการพิมพ์ typingIntervalSecondsควบคุม จังหวะการรีเฟรช ไม่ใช่เวลาเริ่มต้น ค่าเริ่มต้นคือ 6 วินาที