Sessions and memory
تعهدات استنباطشده
تعهدها یادآوریهای پیگیریِ کوتاهمدت هستند. وقتی فعال باشند، OpenClaw میتواند تشخیص دهد که یک گفتوگو فرصتی برای پیگیری در آینده ایجاد کرده است و آن را به خاطر بسپارد تا بعداً دوباره مطرحش کند.
مثالها:
- شما به مصاحبهای در فردا اشاره میکنید. OpenClaw ممکن است پس از آن پیگیری کند.
- میگویید کاملاً خستهاید. OpenClaw ممکن است بعداً بپرسد آیا خوابیدهاید.
- عامل میگوید پس از تغییر چیزی پیگیری خواهد کرد. OpenClaw ممکن است آن موضوع باز را دنبال کند.
تعهدها مانند MEMORY.md واقعیتهای ماندگار نیستند و یادآوریهای دقیق هم
محسوب نمیشوند. آنها بین حافظه و خودکارسازی قرار میگیرند: OpenClaw یک
وظیفه مرتبط با گفتوگو را به خاطر میسپارد و سپس Heartbeat آن را در زمان مقرر ارائه میکند.
فعالکردن تعهدها
تعهدها بهطور پیشفرض غیرفعالاند (commitments.enabled: false). آنها را در پیکربندی فعال کنید:
openclaw config set commitments.enabled trueopenclaw config set commitments.maxPerDay 3openclaw.json معادل:
{ "commitments": { "enabled": true, "maxPerDay": 3 }}commitments.maxPerDay تعداد پیگیریهای استنباطشدهای را که میتوان
در یک بازه یکروزه شناور برای هر نشست عامل ارائه کرد، محدود میکند. مقدار پیشفرض 3 است.
نحوه کار
پس از پاسخ عامل، OpenClaw ممکن است یک مرحله استخراج پسزمینه و پنهان را در زمینهای جداگانه و با ابزارهای غیرفعال اجرا کند. این مرحله فقط به دنبال تعهدهای پیگیری استنباطشده میگردد. این مرحله چیزی در گفتوگوی قابلمشاهده نمینویسد و از عامل اصلی نیز نمیخواهد درباره استخراج استدلال کند.
وقتی گزینهای با اطمینان بالا پیدا شود، OpenClaw تعهدی را با موارد زیر ذخیره میکند:
- شناسه عامل
- کلید نشست
- کانال اصلی و مقصد تحویل
- یک بازه زمانی سررسید
- یک پیگیری پیشنهادی کوتاه
- فراداده غیردستوری برای اینکه Heartbeat تصمیم بگیرد آیا آن را ارسال کند یا نه
تحویل از طریق Heartbeat انجام میشود. وقتی موعد یک تعهد فرا برسد، Heartbeat
آن را به نوبت Heartbeat برای همان عامل و محدوده کانال اضافه میکند.
پرامپت صراحتاً هشدار میدهد که فراداده تعهد قابلاعتماد نیست و به
مدل دستور میدهد از دستورهای موجود در آن پیروی نکند و بهسبب آن از ابزارها استفاده نکند.
مدل میتواند یک پیگیری طبیعی ارسال کند یا برای رد آن با HEARTBEAT_OK پاسخ دهد.
اگر Heartbeat با target: "none" پیکربندی شده باشد، تعهدهای سررسیدشده
داخلی باقی میمانند و پیگیری خارجی ارسال نمیکنند. پرامپتهای تحویل تعهد
متن گفتوگوی اصلی را بازپخش نمیکنند و فقط پیگیری پیشنهادی و
فراداده را شامل میشوند؛ نوبتهای Heartbeat مربوط به تعهدهای سررسیدشده نیز بدون ابزارهای OpenClaw اجرا میشوند.
OpenClaw هرگز یک تعهد استنباطشده را بلافاصله پس از نوشتن آن تحویل نمیدهد. زمان سررسید به حداقل یک فاصله Heartbeat پس از ایجاد تعهد محدود میشود، بنابراین پیگیری نمیتواند همان لحظهای که استنباط شده بازتاب داده شود.
محدوده
تعهدها دقیقاً به زمینه عامل و کانالی محدود میشوند که در آن ایجاد شدهاند. پیگیریای که هنگام گفتوگو با یک عامل در Discord استنباط شده است، توسط عامل دیگر، کانال دیگر یا نشستی نامرتبط تحویل داده نمیشود.
این محدوده بخشی از قابلیت است. پیگیریهای طبیعی باید مانند ادامه همان گفتوگو به نظر برسند، نه مانند یک سامانه یادآوری سراسری.
تعهدها در مقایسه با یادآوریها
| نیاز | استفاده |
|---|---|
| «ساعت ۳ بعدازظهر به من یادآوری کن» | وظایف زمانبندیشده |
| «۲۰ دقیقه دیگر به من پیام بده» | وظایف زمانبندیشده |
| «این گزارش را هر روز کاری اجرا کن» | وظایف زمانبندیشده |
| «فردا مصاحبه دارم» | تعهدها |
| «تمام شب بیدار بودم» | تعهدها |
| «اگر به این رشتهگفتوگوی باز پاسخ ندادم، پیگیری کن» | تعهدها |
درخواستهای صریح کاربر از پیش به مسیر زمانبند تعلق دارند. تعهدها فقط برای پیگیریهای استنباطشده هستند: لحظاتی که کاربر درخواست یادآوری نکرده است، اما گفتوگو بهوضوح یک پیگیری مفید در آینده ایجاد کرده است.
مدیریت تعهدها
برای بررسی و پاککردن تعهدهای ذخیرهشده از CLI استفاده کنید:
openclaw commitmentsopenclaw commitments --allopenclaw commitments --agent mainopenclaw commitments --status snoozedopenclaw commitments dismiss cm_abc123برای مرجع کامل فرمان، به openclaw commitments مراجعه کنید.
حریم خصوصی و هزینه
استخراج تعهد از یک مرحله LLM استفاده میکند، بنابراین فعالکردن آن پس از نوبتهای واجد شرایط، مصرف مدل در پسزمینه را افزایش میدهد. این مرحله از گفتوگوی قابلمشاهده برای کاربر پنهان است، اما میتواند تبادل اخیر موردنیاز برای تشخیص وجود پیگیری را بخواند.
تعهدهای ذخیرهشده بخشی از وضعیت محلی OpenClaw هستند. آنها حافظه عملیاتیاند، نه حافظه بلندمدت. این قابلیت را با فرمان زیر غیرفعال کنید:
openclaw config set commitments.enabled falseعیبیابی
اگر پیگیریهای موردانتظار ظاهر نمیشوند:
- تأیید کنید که
commitments.enabledبرابر باtrueاست. - برای بررسی رکوردهای در انتظار، ردشده، بهتعویقافتاده یا منقضیشده،
openclaw commitments --allرا اجرا کنید. - مطمئن شوید Heartbeat برای عامل در حال اجرا است.
- بررسی کنید آیا
commitments.maxPerDayبرای آن نشست عامل از قبل به حد خود رسیده است. - به یاد داشته باشید که یادآوریهای دقیق در استخراج تعهد نادیده گرفته میشوند و باید در عوض زیر وظایف زمانبندیشده ظاهر شوند.