Messages and delivery
คิวควบคุมทิศทาง
เมื่อพรอมป์ปกติเข้ามาขณะที่การรันเซสชันกำลังสตรีมอยู่แล้ว และโหมดคิวเป็น steer (ค่าเริ่มต้น ไม่ต้องกำหนดค่า) OpenClaw จะพยายามส่งพรอมป์นั้นเข้าสู่รันไทม์ที่ทำงานอยู่ OpenClaw และชุดทดสอบ app-server แบบเนทีฟของ Codex ใช้รายละเอียดการส่งที่แตกต่างกัน
หน้านี้อธิบายการควบคุมทิศทางด้วยโหมดคิวสำหรับข้อความขาเข้าปกติในโหมด steer ในโหมด followup หรือ collect ข้อความปกติจะข้ามเส้นทางนี้และรอจนกว่าการรันที่ทำงานอยู่จะเสร็จสิ้น สำหรับคำสั่ง /steer <message> โดยตรง โปรดดู การควบคุมทิศทาง
ขอบเขตรันไทม์
การควบคุมทิศทางจะไม่ขัดจังหวะการเรียกใช้เครื่องมือที่กำลังทำงานอยู่ OpenClaw จะตรวจสอบข้อความควบคุมทิศทางที่รออยู่ในคิว ณ รอยต่อระหว่างการเรียกโมเดล:
- ผู้ช่วยร้องขอการเรียกใช้เครื่องมือ
- OpenClaw ดำเนินการชุดการเรียกใช้เครื่องมือของข้อความผู้ช่วยปัจจุบัน
- OpenClaw ส่งเหตุการณ์สิ้นสุดรอบ
- OpenClaw นำข้อความควบคุมทิศทางที่รออยู่ออกจากคิว
- OpenClaw เพิ่มข้อความเหล่านั้นเป็นข้อความของผู้ใช้ก่อนการเรียก LLM ครั้งถัดไป
วิธีนี้ทำให้ผลลัพธ์ของเครื่องมือจับคู่กับข้อความผู้ช่วยที่ร้องขอผลลัพธ์นั้น จากนั้นจึงให้การเรียกโมเดลครั้งถัดไปเห็นข้อมูลล่าสุดจากผู้ใช้
ชุดทดสอบ app-server แบบเนทีฟของ Codex เปิดเผย turn/steer แทนคิวควบคุมทิศทางภายในของรันไทม์ OpenClaw โดย OpenClaw จะรวมพรอมป์ที่รออยู่ในคิวตามช่วงเวลารอความเงียบที่กำหนดค่าไว้ แล้วส่งคำขอ turn/steer เพียงครั้งเดียวพร้อมข้อมูลจากผู้ใช้ทั้งหมดที่รวบรวมไว้ตามลำดับที่เข้ามา
รอบการตรวจทานและรอบ Compaction แบบกำหนดเองของ Codex จะปฏิเสธการควบคุมทิศทางภายในรอบเดียวกัน เมื่อรันไทม์ไม่สามารถรับการควบคุมทิศทางในโหมด steer ได้ OpenClaw จะรอให้การรันที่ทำงานอยู่เสร็จสิ้นก่อนเริ่มประมวลผลพรอมป์
โหมด
| โหมด | พฤติกรรมระหว่างการรันที่ทำงานอยู่ | พฤติกรรมภายหลัง |
|---|---|---|
steer |
ควบคุมทิศทางพรอมป์เข้าสู่รันไทม์ที่ทำงานอยู่เมื่อสามารถทำได้ | รอให้การรันที่ทำงานอยู่เสร็จสิ้น หากไม่สามารถควบคุมทิศทางได้ |
followup |
ไม่ควบคุมทิศทาง | เรียกใช้ข้อความที่รออยู่ในคิวภายหลัง หลังจากการรันที่ทำงานอยู่สิ้นสุดลง |
collect |
ไม่ควบคุมทิศทาง | รวมข้อความที่เข้ากันได้ซึ่งรออยู่ในคิวเป็นรอบเดียวในภายหลัง หลังพ้นช่วงดีบาวซ์ |
interrupt |
ยกเลิกการรันที่ทำงานอยู่แทนการควบคุมทิศทาง | เริ่มข้อความล่าสุดหลังจากยกเลิกการรัน |
ตัวอย่างการส่งข้อความต่อเนื่องอย่างรวดเร็ว
หากผู้ใช้สี่คนส่งข้อความขณะที่เอเจนต์กำลังดำเนินการเรียกใช้เครื่องมือ:
- เมื่อใช้พฤติกรรมเริ่มต้น รันไทม์ที่ทำงานอยู่จะได้รับข้อความทั้งสี่ตามลำดับที่เข้ามาก่อนการตัดสินใจครั้งถัดไปของโมเดล OpenClaw จะนำข้อความเหล่านั้นออกจากคิว ณ รอยต่อการเรียกโมเดลครั้งถัดไป ส่วน Codex จะได้รับข้อความเหล่านั้นเป็น
turn/steerแบบรวมชุดเพียงครั้งเดียว - เมื่อใช้
/queue collectOpenClaw จะไม่ควบคุมทิศทาง แต่จะรอจนกว่าการรันที่ทำงานอยู่สิ้นสุดลง จากนั้นสร้างรอบติดตามผลด้วยข้อความที่เข้ากันได้ซึ่งรออยู่ในคิวหลังพ้นช่วงดีบาวซ์ - เมื่อใช้
/queue interruptOpenClaw จะยกเลิกการรันที่ทำงานอยู่และเริ่มข้อความล่าสุดแทนการควบคุมทิศทาง
ขอบเขต
การควบคุมทิศทางจะมุ่งไปยังการรันเซสชันปัจจุบันที่ทำงานอยู่เสมอ โดยจะไม่สร้างเซสชันใหม่ เปลี่ยนนโยบายเครื่องมือของการรันที่ทำงานอยู่ หรือแยกข้อความตามผู้ส่ง ในช่องทางที่มีผู้ใช้หลายคน พรอมป์ขาเข้าจะมีบริบทของผู้ส่งและเส้นทางอยู่แล้ว ดังนั้นการเรียกโมเดลครั้งถัดไปจึงสามารถทราบได้ว่าใครเป็นผู้ส่งแต่ละข้อความ
ใช้ followup หรือ collect เมื่อต้องการให้ข้อความเข้าคิวโดยค่าเริ่มต้นแทนการควบคุมทิศทางการรันที่ทำงานอยู่ ใช้ interrupt เมื่อพรอมป์ล่าสุดควรแทนที่การรันที่ทำงานอยู่
ดีบาวซ์
messages.queue.debounceMs ใช้กับการส่งข้อความ followup และ collect ที่รออยู่ในคิว ในโหมด steer ที่ใช้ชุดทดสอบ Codex แบบเนทีฟ ค่านี้ยังตั้งค่าช่วงเวลารอความเงียบก่อนส่ง turn/steer แบบรวมชุดด้วย สำหรับ OpenClaw การควบคุมทิศทางที่ทำงานอยู่จะไม่ใช้ตัวจับเวลาดีบาวซ์ เนื่องจาก OpenClaw จะรวมข้อความตามธรรมชาติจนถึงรอยต่อการเรียกโมเดลครั้งถัดไป