Sessions and memory

تعهدات استنباط‌شده

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

مثال‌ها:

  • شما به مصاحبه‌ای در فردا اشاره می‌کنید. OpenClaw ممکن است پس از آن پیگیری کند.
  • می‌گویید خسته‌اید. OpenClaw ممکن است بعدا بپرسد آیا خوابیده‌اید.
  • عامل می‌گوید پس از تغییر چیزی پیگیری خواهد کرد. OpenClaw ممکن است آن چرخه باز را دنبال کند.

Commitments حقایق ماندگار مانند MEMORY.md نیستند، و یادآورهای دقیق هم نیستند. آنها بین حافظه و خودکارسازی قرار می‌گیرند: OpenClaw یک تعهد وابسته به گفتگو را به خاطر می‌سپارد، سپس Heartbeat آن را وقتی موعدش برسد تحویل می‌دهد.

فعال‌سازی Commitments

Commitments به‌طور پیش‌فرض خاموش هستند. آنها را در پیکربندی فعال کنید:

openclaw config set commitments.enabled true
openclaw config set commitments.maxPerDay 3

openclaw.json معادل:

{
  "commitments": {
    "enabled": true,
    "maxPerDay": 3
  }
}

commitments.maxPerDay محدود می‌کند که در یک روز چرخان، برای هر نشست عامل چند پیگیری استنباط‌شده بتواند تحویل داده شود. مقدار پیش‌فرض 3 است.

نحوه کار

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

وقتی یک گزینه با اطمینان بالا پیدا کند، OpenClaw یک Commitment را با موارد زیر ذخیره می‌کند:

  • شناسه عامل
  • کلید نشست
  • کانال اصلی و هدف تحویل
  • بازه سررسید
  • یک پیگیری کوتاه پیشنهادی
  • فراداده غیرآموزشی برای اینکه Heartbeat تصمیم بگیرد آیا آن را ارسال کند

تحویل از طریق Heartbeat انجام می‌شود. وقتی موعد یک Commitment برسد، Heartbeat آن Commitment را به نوبت Heartbeat برای همان عامل و دامنه کانال اضافه می‌کند. مدل می‌تواند یک پیگیری طبیعی بفرستد یا برای رد آن HEARTBEAT_OK پاسخ دهد. اگر Heartbeat با target: "none" پیکربندی شده باشد، Commitments سررسیدشده داخلی می‌مانند و پیگیری خارجی ارسال نمی‌کنند. پرامپت‌های تحویل Commitment متن گفتگوی اصلی را بازپخش نمی‌کنند، و نوبت‌های Heartbeat مربوط به Commitment سررسیدشده بدون ابزارهای OpenClaw اجرا می‌شوند.

OpenClaw هرگز یک Commitment استنباط‌شده را بلافاصله پس از نوشتن آن تحویل نمی‌دهد. زمان سررسید حداقل به یک فاصله Heartbeat پس از ایجاد Commitment محدود می‌شود، بنابراین پیگیری نمی‌تواند در همان لحظه‌ای که استنباط شده بازتاب داده شود.

دامنه

Commitments به همان عامل و زمینه کانالی دقیقی محدود می‌شوند که در آن ایجاد شده‌اند. پیگیری‌ای که هنگام صحبت با یک عامل در Discord استنباط شده، توسط عامل دیگر، کانال دیگر، یا نشست نامرتبط تحویل داده نمی‌شود.

این دامنه بخشی از این قابلیت است. پیگیری‌های طبیعی باید مثل ادامه همان گفتگو احساس شوند، نه مثل یک سامانه یادآور سراسری.

Commitments در برابر یادآورها

نیاز استفاده
«ساعت ۳ بعدازظهر به من یادآوری کن» کارهای زمان‌بندی‌شده
«۲۰ دقیقه دیگر به من پیام بده» کارهای زمان‌بندی‌شده
«این گزارش را هر روز کاری اجرا کن» کارهای زمان‌بندی‌شده
«فردا مصاحبه دارم» Commitments
«تمام شب بیدار بودم» Commitments
«اگر به این رشته باز پاسخ ندادم پیگیری کن» Commitments

درخواست‌های دقیق کاربر از قبل به مسیر زمان‌بند تعلق دارند. Commitments فقط برای پیگیری‌های استنباط‌شده هستند: لحظه‌هایی که کاربر درخواست یادآور نکرده، اما گفتگو به‌روشنی یک پیگیری آینده مفید ایجاد کرده است.

مدیریت Commitments

برای بررسی و پاک‌کردن Commitments ذخیره‌شده از CLI استفاده کنید:

openclaw commitments
openclaw commitments --all
openclaw commitments --agent main
openclaw commitments --status snoozed
openclaw commitments dismiss cm_abc123

برای مرجع فرمان، openclaw commitments را ببینید.

حریم خصوصی و هزینه

استخراج Commitment از یک گذر LLM استفاده می‌کند، بنابراین فعال‌سازی آن پس از نوبت‌های واجد شرایط، مصرف مدل پس‌زمینه اضافه می‌کند. این گذر از گفتگوی قابل مشاهده برای کاربر پنهان است، اما می‌تواند تبادل اخیر لازم برای تصمیم‌گیری درباره وجود پیگیری را بخواند.

Commitments ذخیره‌شده وضعیت محلی OpenClaw هستند. آنها حافظه عملیاتی‌اند، نه حافظه بلندمدت. این قابلیت را با دستور زیر غیرفعال کنید:

openclaw config set commitments.enabled false

عیب‌یابی

اگر پیگیری‌های مورد انتظار ظاهر نمی‌شوند:

  • تأیید کنید commitments.enabled برابر true است.
  • برای رکوردهای در انتظار، ردشده، به‌تعویق‌افتاده، یا منقضی‌شده، openclaw commitments --all را بررسی کنید.
  • مطمئن شوید Heartbeat برای عامل در حال اجرا است.
  • بررسی کنید آیا commitments.maxPerDay برای آن نشست عامل از قبل به حد خود رسیده است.
  • به یاد داشته باشید که یادآورهای دقیق توسط استخراج Commitment نادیده گرفته می‌شوند و باید به‌جای آن زیر کارهای زمان‌بندی‌شده ظاهر شوند.

مرتبط