---
read_when:
    - อธิบายว่า steer ทำงานอย่างไรขณะที่ agent กำลังใช้เครื่องมือ
    - การเปลี่ยนพฤติกรรมคิวการรันที่ใช้งานอยู่หรือการผสานการควบคุมทิศทางรันไทม์
    - เปรียบเทียบการควบคุมทิศทางกับโหมดคิว followup, collect และ interrupt
summary: การกำกับการรันที่กำลังทำงานจัดคิวข้อความที่ขอบเขตรันไทม์อย่างไร
title: คิวควบคุม
x-i18n:
    generated_at: "2026-06-27T17:29:20Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: b38d036d2a44af431653746e2d5918af0a8af471450f440479cf0a1acc86c9cd
    source_path: concepts/queue-steering.md
    workflow: 16
---

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

## ขอบเขตของ runtime

การ steer จะไม่ขัดจังหวะ tool call ที่กำลังทำงานอยู่ OpenClaw ตรวจหา
ข้อความ steering ที่อยู่ในคิวที่ขอบเขตของโมเดล:

1. ผู้ช่วยร้องขอ tool call
2. OpenClaw ดำเนินการชุด tool-call ของข้อความผู้ช่วยปัจจุบัน
3. OpenClaw ปล่อยเหตุการณ์สิ้นสุด turn
4. OpenClaw ระบายข้อความ steering ที่อยู่ในคิว
5. 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](/th/tools/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 collect` OpenClaw จะไม่ steer แต่จะรอจนกว่าการรันที่ทำงานอยู่
  สิ้นสุด จากนั้นสร้าง turn แบบ followup พร้อมข้อความที่อยู่ในคิวที่เข้ากันได้หลัง
  ช่วง debounce
- ด้วย `/queue interrupt` OpenClaw จะยกเลิกการรันที่ทำงานอยู่และเริ่มข้อความ
  ใหม่ที่สุดแทนการ steer

## ขอบเขต

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

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

## Debounce

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

## ที่เกี่ยวข้อง

- [คิวคำสั่ง](/th/concepts/queue)
- [Steer](/th/tools/steer)
- [ข้อความ](/th/concepts/messages)
- [ลูป agent](/th/concepts/agent-loop)
