Sessions and memory

هرس نشست

هرس نشست، نتایج قدیمی ابزارها را پیش از هر فراخوانی LLM از زمینه حذف می‌کند. این کار تورم زمینه ناشی از انباشت خروجی‌های ابزارها (نتایج exec، خواندن فایل‌ها، نتایج جست‌وجو) را بدون بازنویسی متن عادی گفت‌وگو کاهش می‌دهد.

چرا مهم است

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

هرس به‌ویژه برای کش‌کردن پرامپت Anthropic ارزشمند است. پس از منقضی شدن TTL کش، درخواست بعدی کل پرامپت را دوباره کش می‌کند. هرس اندازه نوشتن کش را کاهش می‌دهد و مستقیماً هزینه را پایین می‌آورد.

چگونه کار می‌کند

  1. منتظر بمانید تا TTL کش منقضی شود (پیش‌فرض ۵ دقیقه).
  2. نتایج قدیمی ابزارها را برای هرس عادی پیدا کنید (متن گفت‌وگو دست‌نخورده می‌ماند).
  3. نتایج بیش‌ازحد بزرگ را نرم-کوتاه کنید -- ابتدا و انتها را نگه دارید و ... درج کنید.
  4. بقیه را سخت-پاک کنید -- با یک جای‌نگهدار جایگزین کنید.
  5. TTL را بازنشانی کنید تا درخواست‌های بعدی از کش تازه دوباره استفاده کنند.

پاک‌سازی تصاویر قدیمی

OpenClaw همچنین برای نشست‌هایی که بلوک‌های خام تصویر یا نشانگرهای رسانه‌ای پرامپت-آب‌دهی را در تاریخچه نگه می‌دارند، یک نمای بازپخش جداگانه و idempotent می‌سازد.

  • این نما ۳ نوبت کامل‌شده اخیر را بایت‌به‌بایت حفظ می‌کند تا پیشوندهای کش پرامپت برای پیگیری‌های اخیر پایدار بمانند.
  • در نمای بازپخش، بلوک‌های تصویر قدیمی‌تر که از قبل پردازش شده‌اند و از تاریخچه user یا toolResult آمده‌اند می‌توانند با [image data removed - already processed by model] جایگزین شوند.
  • ارجاع‌های متنی قدیمی‌تر به رسانه مانند [media attached: ...]، [Image: source: ...]، و media://inbound/... می‌توانند با [media reference removed - already processed by model] جایگزین شوند. نشانگرهای پیوست نوبت فعلی دست‌نخورده می‌مانند تا مدل‌های بینایی همچنان بتوانند تصاویر تازه را آب‌دهی کنند.
  • متن خام نشست بازنویسی نمی‌شود، بنابراین نمایشگرهای تاریخچه همچنان می‌توانند ورودی‌های پیام اصلی و تصاویر آن‌ها را رندر کنند.
  • این قابلیت جدا از هرس عادی مبتنی بر TTL کش است. هدف آن جلوگیری از این است که payloadهای تکراری تصویر یا ارجاع‌های کهنه رسانه در نوبت‌های بعدی کش‌های پرامپت را خراب کنند.

پیش‌فرض‌های هوشمند

OpenClaw هرس را برای پروفایل‌های Anthropic به‌صورت خودکار فعال می‌کند:

نوع پروفایل هرس فعال است Heartbeat
احراز هویت Anthropic OAuth/token (شامل استفاده دوباره از Claude CLI) بله ۱ ساعت
کلید API بله ۳۰ دقیقه

اگر مقادیر صریح تنظیم کنید، OpenClaw آن‌ها را بازنویسی نمی‌کند.

فعال یا غیرفعال کردن

هرس برای ارائه‌دهندگان غیر Anthropic به‌صورت پیش‌فرض خاموش است. برای فعال‌سازی:

{
  agents: {
    defaults: {
      contextPruning: { mode: "cache-ttl", ttl: "5m" },
    },
  },
}

برای غیرفعال‌سازی: mode: "off" را تنظیم کنید.

هرس در برابر Compaction

هرس Compaction
چیست نتایج ابزارها را کوتاه می‌کند گفت‌وگو را خلاصه می‌کند
ذخیره می‌شود؟ نه (برای هر درخواست) بله (در متن نشست)
دامنه فقط نتایج ابزارها کل گفت‌وگو

این دو مکمل یکدیگرند -- هرس، خروجی ابزارها را بین چرخه‌های Compaction کم‌حجم نگه می‌دارد.

مطالعه بیشتر

  • Compaction -- کاهش زمینه مبتنی بر خلاصه‌سازی
  • پیکربندی Gateway -- همه گزینه‌های پیکربندی هرس (contextPruning.*)

مرتبط