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