Messages and delivery

คิวควบคุมทิศทาง

เมื่อพรอมป์ปกติเข้ามาขณะที่การรันเซสชันกำลังสตรีมอยู่แล้ว และโหมดคิวเป็น steer (ค่าเริ่มต้น ไม่ต้องกำหนดค่า) OpenClaw จะพยายามส่งพรอมป์นั้นเข้าสู่รันไทม์ที่ทำงานอยู่ OpenClaw และชุดทดสอบ app-server แบบเนทีฟของ Codex ใช้รายละเอียดการส่งที่แตกต่างกัน

หน้านี้อธิบายการควบคุมทิศทางด้วยโหมดคิวสำหรับข้อความขาเข้าปกติในโหมด steer ในโหมด followup หรือ collect ข้อความปกติจะข้ามเส้นทางนี้และรอจนกว่าการรันที่ทำงานอยู่จะเสร็จสิ้น สำหรับคำสั่ง /steer <message> โดยตรง โปรดดู การควบคุมทิศทาง

ขอบเขตรันไทม์

การควบคุมทิศทางจะไม่ขัดจังหวะการเรียกใช้เครื่องมือที่กำลังทำงานอยู่ OpenClaw จะตรวจสอบข้อความควบคุมทิศทางที่รออยู่ในคิว ณ รอยต่อระหว่างการเรียกโมเดล:

  1. ผู้ช่วยร้องขอการเรียกใช้เครื่องมือ
  2. OpenClaw ดำเนินการชุดการเรียกใช้เครื่องมือของข้อความผู้ช่วยปัจจุบัน
  3. OpenClaw ส่งเหตุการณ์สิ้นสุดรอบ
  4. OpenClaw นำข้อความควบคุมทิศทางที่รออยู่ออกจากคิว
  5. OpenClaw เพิ่มข้อความเหล่านั้นเป็นข้อความของผู้ใช้ก่อนการเรียก LLM ครั้งถัดไป

วิธีนี้ทำให้ผลลัพธ์ของเครื่องมือจับคู่กับข้อความผู้ช่วยที่ร้องขอผลลัพธ์นั้น จากนั้นจึงให้การเรียกโมเดลครั้งถัดไปเห็นข้อมูลล่าสุดจากผู้ใช้

ชุดทดสอบ app-server แบบเนทีฟของ Codex เปิดเผย turn/steer แทนคิวควบคุมทิศทางภายในของรันไทม์ OpenClaw โดย OpenClaw จะรวมพรอมป์ที่รออยู่ในคิวตามช่วงเวลารอความเงียบที่กำหนดค่าไว้ แล้วส่งคำขอ turn/steer เพียงครั้งเดียวพร้อมข้อมูลจากผู้ใช้ทั้งหมดที่รวบรวมไว้ตามลำดับที่เข้ามา

รอบการตรวจทานและรอบ Compaction แบบกำหนดเองของ Codex จะปฏิเสธการควบคุมทิศทางภายในรอบเดียวกัน เมื่อรันไทม์ไม่สามารถรับการควบคุมทิศทางในโหมด steer ได้ OpenClaw จะรอให้การรันที่ทำงานอยู่เสร็จสิ้นก่อนเริ่มประมวลผลพรอมป์

โหมด

โหมด พฤติกรรมระหว่างการรันที่ทำงานอยู่ พฤติกรรมภายหลัง
steer ควบคุมทิศทางพรอมป์เข้าสู่รันไทม์ที่ทำงานอยู่เมื่อสามารถทำได้ รอให้การรันที่ทำงานอยู่เสร็จสิ้น หากไม่สามารถควบคุมทิศทางได้
followup ไม่ควบคุมทิศทาง เรียกใช้ข้อความที่รออยู่ในคิวภายหลัง หลังจากการรันที่ทำงานอยู่สิ้นสุดลง
collect ไม่ควบคุมทิศทาง รวมข้อความที่เข้ากันได้ซึ่งรออยู่ในคิวเป็นรอบเดียวในภายหลัง หลังพ้นช่วงดีบาวซ์
interrupt ยกเลิกการรันที่ทำงานอยู่แทนการควบคุมทิศทาง เริ่มข้อความล่าสุดหลังจากยกเลิกการรัน

ตัวอย่างการส่งข้อความต่อเนื่องอย่างรวดเร็ว

หากผู้ใช้สี่คนส่งข้อความขณะที่เอเจนต์กำลังดำเนินการเรียกใช้เครื่องมือ:

  • เมื่อใช้พฤติกรรมเริ่มต้น รันไทม์ที่ทำงานอยู่จะได้รับข้อความทั้งสี่ตามลำดับที่เข้ามาก่อนการตัดสินใจครั้งถัดไปของโมเดล OpenClaw จะนำข้อความเหล่านั้นออกจากคิว ณ รอยต่อการเรียกโมเดลครั้งถัดไป ส่วน Codex จะได้รับข้อความเหล่านั้นเป็น turn/steer แบบรวมชุดเพียงครั้งเดียว
  • เมื่อใช้ /queue collect OpenClaw จะไม่ควบคุมทิศทาง แต่จะรอจนกว่าการรันที่ทำงานอยู่สิ้นสุดลง จากนั้นสร้างรอบติดตามผลด้วยข้อความที่เข้ากันได้ซึ่งรออยู่ในคิวหลังพ้นช่วงดีบาวซ์
  • เมื่อใช้ /queue interrupt OpenClaw จะยกเลิกการรันที่ทำงานอยู่และเริ่มข้อความล่าสุดแทนการควบคุมทิศทาง

ขอบเขต

การควบคุมทิศทางจะมุ่งไปยังการรันเซสชันปัจจุบันที่ทำงานอยู่เสมอ โดยจะไม่สร้างเซสชันใหม่ เปลี่ยนนโยบายเครื่องมือของการรันที่ทำงานอยู่ หรือแยกข้อความตามผู้ส่ง ในช่องทางที่มีผู้ใช้หลายคน พรอมป์ขาเข้าจะมีบริบทของผู้ส่งและเส้นทางอยู่แล้ว ดังนั้นการเรียกโมเดลครั้งถัดไปจึงสามารถทราบได้ว่าใครเป็นผู้ส่งแต่ละข้อความ

ใช้ followup หรือ collect เมื่อต้องการให้ข้อความเข้าคิวโดยค่าเริ่มต้นแทนการควบคุมทิศทางการรันที่ทำงานอยู่ ใช้ interrupt เมื่อพรอมป์ล่าสุดควรแทนที่การรันที่ทำงานอยู่

ดีบาวซ์

messages.queue.debounceMs ใช้กับการส่งข้อความ followup และ collect ที่รออยู่ในคิว ในโหมด steer ที่ใช้ชุดทดสอบ Codex แบบเนทีฟ ค่านี้ยังตั้งค่าช่วงเวลารอความเงียบก่อนส่ง turn/steer แบบรวมชุดด้วย สำหรับ OpenClaw การควบคุมทิศทางที่ทำงานอยู่จะไม่ใช้ตัวจับเวลาดีบาวซ์ เนื่องจาก OpenClaw จะรวมข้อความตามธรรมชาติจนถึงรอยต่อการเรียกโมเดลครั้งถัดไป

เนื้อหาที่เกี่ยวข้อง

Was this useful?
On this page

On this page