Concept internals

نشانگرهای در حال تایپ

نشانگرهای تایپ در حالی که یک اجرا فعال است به کانال چت ارسال می‌شوند. از agents.defaults.typingMode برای کنترل این‌که تایپ چه زمانی شروع شود و از typingIntervalSeconds برای کنترل این‌که هر چند وقت یک‌بار تازه‌سازی شود استفاده کنید.

پیش‌فرض‌ها

وقتی agents.defaults.typingMode تنظیم نشده باشد، OpenClaw رفتار قدیمی را حفظ می‌کند:

  • چت‌های مستقیم: تایپ بلافاصله پس از شروع حلقه مدل آغاز می‌شود.
  • چت‌های گروهی با اشاره: تایپ بلافاصله شروع می‌شود.
  • چت‌های گروهی بدون اشاره: تایپ فقط زمانی شروع می‌شود که متن پیام شروع به جریان‌یابی کند.
  • اجراهای Heartbeat: اگر هدف Heartbeat نهایی‌شده یک چت دارای قابلیت تایپ باشد و تایپ غیرفعال نشده باشد، تایپ هنگام شروع اجرای Heartbeat آغاز می‌شود.

حالت‌ها

agents.defaults.typingMode را روی یکی از این موارد تنظیم کنید:

  • never - هیچ‌وقت نشانگر تایپ نمایش داده نمی‌شود.
  • instant - تایپ را به‌محض شروع حلقه مدل آغاز می‌کند، حتی اگر اجرا بعدا فقط توکن پاسخ بی‌صدا را برگرداند.
  • thinking - تایپ را با اولین دلتای استدلال آغاز می‌کند (برای اجرا به reasoningLevel: "stream" نیاز دارد).
  • message - تایپ را با اولین دلتای متن غیر بی‌صدا آغاز می‌کند (توکن بی‌صدای NO_REPLY را نادیده می‌گیرد).

ترتیب «چقدر زود فعال می‌شود»: nevermessagethinkinginstant

پیکربندی

{
  agent: {
    typingMode: "thinking",
    typingIntervalSeconds: 6,
  },
}

می‌توانید حالت یا آهنگ اجرا را برای هر جلسه بازنویسی کنید:

{
  session: {
    typingMode: "message",
    typingIntervalSeconds: 4,
  },
}

نکته‌ها

  • حالت message برای پاسخ‌های فقط بی‌صدا، وقتی کل payload دقیقا همان توکن بی‌صدا باشد (برای مثال NO_REPLY / no_reply، بدون حساسیت به بزرگی و کوچکی حروف)، تایپ را نشان نمی‌دهد.
  • thinking فقط زمانی فعال می‌شود که اجرا استدلال را به‌صورت جریانی ارسال کند (reasoningLevel: "stream"). اگر مدل دلتای استدلال منتشر نکند، تایپ شروع نمی‌شود.
  • تایپ Heartbeat یک سیگنال زنده‌بودن برای هدف تحویل نهایی‌شده است. به‌جای پیروی از زمان‌بندی جریان message یا thinking، در شروع اجرای Heartbeat آغاز می‌شود. برای غیرفعال کردن آن، typingMode: "never" را تنظیم کنید.
  • وقتی target: "none" باشد، وقتی هدف قابل تشخیص نباشد، وقتی تحویل چت برای Heartbeat غیرفعال باشد، یا وقتی کانال از تایپ پشتیبانی نکند، Heartbeatها تایپ را نشان نمی‌دهند.
  • typingIntervalSeconds آهنگ تازه‌سازی را کنترل می‌کند، نه زمان شروع را. مقدار پیش‌فرض ۶ ثانیه است.

مرتبط