---
read_when:
    - توضیح نحوهٔ رفتار هدایت هنگام استفادهٔ یک عامل از ابزارها
    - تغییر رفتار صف اجرای فعال یا یکپارچه‌سازی هدایت زمان اجرا
    - مقایسهٔ هدایت با حالت‌های صف followup، collect و interrupt
summary: چگونه هدایت اجرای فعال پیام‌ها را در مرزهای زمان اجرا در صف قرار می‌دهد
title: صف هدایت
x-i18n:
    generated_at: "2026-06-27T17:37:47Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: b38d036d2a44af431653746e2d5918af0a8af471450f440479cf0a1acc86c9cd
    source_path: concepts/queue-steering.md
    workflow: 16
---

وقتی یک پیام عادی در حالی می‌رسد که اجرای یک نشست از پیش در حال پخش جریانی است، OpenClaw
به‌طور پیش‌فرض تلاش می‌کند آن پیام را زمانی که حالت صف
`steer` است، به محیط اجرای فعال بفرستد. برای این رفتار پیش‌فرض،
نه ورودی پیکربندی لازم است و نه دستور صف. OpenClaw و هارنس app-server بومی Codex جزئیات تحویل را
به‌صورت متفاوت پیاده‌سازی می‌کنند.

## مرز محیط اجرا

هدایت، فراخوانی ابزاری را که از پیش در حال اجراست قطع نمی‌کند. OpenClaw پیام‌های
هدایتِ صف‌شده را در مرزهای مدل بررسی می‌کند:

1. دستیار درخواست فراخوانی ابزار می‌دهد.
2. OpenClaw دسته فراخوانی ابزارِ پیام فعلی دستیار را اجرا می‌کند.
3. OpenClaw رویداد پایان نوبت را منتشر می‌کند.
4. OpenClaw پیام‌های هدایتِ صف‌شده را تخلیه می‌کند.
5. OpenClaw آن پیام‌ها را پیش از فراخوانی بعدی LLM به‌عنوان پیام‌های کاربر اضافه می‌کند.

این کار نتایج ابزار را با پیام دستیاری که آن‌ها را درخواست کرده جفت نگه می‌دارد،
سپس اجازه می‌دهد فراخوانی بعدی مدل آخرین ورودی کاربر را ببیند.

هارنس app-server بومی Codex به‌جای صف هدایت داخلی محیط اجرای OpenClaw،
`turn/steer` را ارائه می‌کند. OpenClaw پیام‌های صف‌شده را برای پنجره سکوتِ
پیکربندی‌شده دسته‌بندی می‌کند، سپس یک درخواست `turn/steer` واحد را با تمام ورودی‌های
گردآوری‌شده کاربر به ترتیب ورود می‌فرستد.

نوبت‌های بازبینی Codex و Compaction دستی، هدایت در همان نوبت را رد می‌کنند. وقتی یک
محیط اجرا نتواند هدایت را در حالت `steer` بپذیرد، OpenClaw پیش از شروع
پیام، منتظر می‌ماند اجرای فعال تمام شود.

این صفحه هدایتِ حالت صف را برای پیام‌های ورودی عادی زمانی توضیح می‌دهد که حالت
`steer` است. اگر حالت `followup` یا `collect` باشد، پیام‌های عادی وارد
این مسیر هدایت نمی‌شوند؛ آن‌ها تا پایان اجرای فعال منتظر می‌مانند. برای فرمان صریح
`/steer <message>`، [هدایت](/fa/tools/steer) را ببینید.

## حالت‌ها

| حالت        | رفتار اجرای فعال                                    | رفتار بعدی                                                                      |
| ----------- | ------------------------------------------------------ | ----------------------------------------------------------------------------------- |
| `steer`     | هر زمان بتواند، پیام را به محیط اجرای فعال هدایت می‌کند. | اگر هدایت در دسترس نباشد، منتظر می‌ماند اجرای فعال تمام شود.                      |
| `followup`  | هدایت نمی‌کند.                                        | پیام‌های صف‌شده را بعدا پس از پایان اجرای فعال اجرا می‌کند.                               |
| `collect`   | هدایت نمی‌کند.                                        | پیام‌های صف‌شده سازگار را پس از پنجره debounce در یک نوبت بعدی ادغام می‌کند. |
| `interrupt` | به‌جای هدایت اجرای فعال، آن را لغو می‌کند.          | پس از لغو، جدیدترین پیام را شروع می‌کند.                                           |

## نمونه انفجار پیام

اگر چهار کاربر هنگام اجرای یک فراخوانی ابزار توسط عامل پیام بفرستند:

- با رفتار پیش‌فرض، محیط اجرای فعال هر چهار پیام را به ترتیب ورود
  پیش از تصمیم بعدی مدل دریافت می‌کند. OpenClaw آن‌ها را در مرز بعدی مدل
  تخلیه می‌کند؛ Codex آن‌ها را به‌صورت یک `turn/steer` دسته‌بندی‌شده دریافت می‌کند.
- با `/queue collect`، OpenClaw هدایت نمی‌کند. منتظر می‌ماند اجرای فعال
  پایان یابد، سپس پس از پنجره debounce یک نوبت پیگیری با پیام‌های صف‌شده سازگار
  ایجاد می‌کند.
- با `/queue interrupt`، OpenClaw اجرای فعال را لغو می‌کند و به‌جای هدایت،
  جدیدترین پیام را شروع می‌کند.

## دامنه

هدایت همیشه اجرای نشست فعال فعلی را هدف می‌گیرد. نشست جدیدی ایجاد نمی‌کند،
سیاست ابزار اجرای فعال را تغییر نمی‌دهد، یا پیام‌ها را بر اساس فرستنده جدا نمی‌کند. در
کانال‌های چندکاربره، پیام‌های ورودی از قبل شامل زمینه فرستنده و مسیر هستند، بنابراین
فراخوانی بعدی مدل می‌تواند ببیند هر پیام را چه کسی فرستاده است.

وقتی می‌خواهید پیام‌ها به‌طور پیش‌فرض به‌جای هدایت اجرای فعال در صف قرار بگیرند،
از `followup` یا `collect` استفاده کنید. وقتی جدیدترین پیام باید جایگزین
اجرای فعال شود، از `interrupt` استفاده کنید.

## Debounce

`messages.queue.debounceMs` برای تحویل `followup` و `collect` صف‌شده اعمال می‌شود.
در حالت `steer` با هارنس بومی Codex، همچنین پنجره سکوت را پیش از
ارسال `turn/steer` دسته‌بندی‌شده تنظیم می‌کند. برای OpenClaw، خود هدایت فعال از
تایمر debounce استفاده نمی‌کند، چون OpenClaw به‌طور طبیعی پیام‌ها را تا مرز بعدی مدل
دسته‌بندی می‌کند.

## مرتبط

- [صف فرمان](/fa/concepts/queue)
- [هدایت](/fa/tools/steer)
- [پیام‌ها](/fa/concepts/messages)
- [حلقه عامل](/fa/concepts/agent-loop)
