Fundamentals
زمینه
«زمینه» یعنی هر چیزی که OpenClaw برای یک اجرا به مدل میفرستد. این مقدار با پنجره زمینه مدل محدود میشود (حد توکن).
مدل ذهنی مبتدی:
- پرامپت سیستم (ساختهشده توسط OpenClaw): قواعد، ابزارها، فهرست Skills، زمان/زمان اجرا، و فایلهای فضای کاری تزریقشده.
- تاریخچه مکالمه: پیامهای شما + پیامهای دستیار در این نشست.
- فراخوانیها/نتایج ابزار + پیوستها: خروجی دستور، خواندن فایل، تصویر/صدا، و غیره.
زمینه همان چیز «حافظه» نیست: حافظه میتواند روی دیسک ذخیره و بعدا دوباره بارگذاری شود؛ زمینه چیزی است که داخل پنجره فعلی مدل قرار دارد.
شروع سریع (بررسی زمینه)
/status→ نمای سریع «پنجره من چقدر پر است؟» + تنظیمات نشست./context list→ چه چیزهایی تزریق شدهاند + اندازههای تقریبی (برای هر فایل + جمع کل)./context detail→ تفکیک عمیقتر: اندازههای هر فایل، هر طرحواره ابزار، هر ورودی Skills، اندازه پرامپت سیستم، و تعداد پیامهای رونوشت قابل فشردهسازی./context map→ تصویر نقشه درختی به سبک WinDirStat از مشارکتکنندگان ردیابیشده زمینه در نشست فعلی./usage tokens→ افزودن پابرگ مصرف هر پاسخ به پاسخهای عادی./compact→ خلاصهسازی تاریخچه قدیمیتر در یک ورودی فشرده برای آزاد کردن فضای پنجره.
همچنین ببینید: دستورهای اسلش، مصرف توکن و هزینهها، Compaction.
نمونه خروجی
مقادیر بسته به مدل، ارائهدهنده، سیاست ابزار، و محتوای فضای کاری شما متفاوتاند.
/context list
🧠 Context breakdownWorkspace: <workspaceDir>Bootstrap max/file: 12,000 charsSandbox: mode=non-main sandboxed=falseSystem prompt (run): 38,412 chars (~9,603 tok) (Project Context 23,901 chars (~5,976 tok)) Injected workspace files:- AGENTS.md: OK | raw 1,742 chars (~436 tok) | injected 1,742 chars (~436 tok)- SOUL.md: OK | raw 912 chars (~228 tok) | injected 912 chars (~228 tok)- TOOLS.md: TRUNCATED | raw 54,210 chars (~13,553 tok) | injected 20,962 chars (~5,241 tok)- IDENTITY.md: OK | raw 211 chars (~53 tok) | injected 211 chars (~53 tok)- USER.md: OK | raw 388 chars (~97 tok) | injected 388 chars (~97 tok)- HEARTBEAT.md: MISSING | raw 0 | injected 0- BOOTSTRAP.md: OK | raw 0 chars (~0 tok) | injected 0 chars (~0 tok) Skills list (system prompt text): 2,184 chars (~546 tok) (12 skills)Tools: read, edit, write, exec, process, browser, message, sessions_send, …Tool list (system prompt text): 1,032 chars (~258 tok)Tool schemas (JSON): 31,988 chars (~7,997 tok) (counts toward context; not shown as text)Tools: (same as above) Session tokens (cached): 14,250 total / ctx=32,000/context detail
🧠 Context breakdown (detailed)…Top skills (prompt entry size):- frontend-design: 412 chars (~103 tok)- oracle: 401 chars (~101 tok)… (+10 more skills) Top tools (schema size):- browser: 9,812 chars (~2,453 tok)- exec: 6,240 chars (~1,560 tok)… (+N more tools)/context map
تصویری را میفرستد که از آخرین گزارش اجرای کششده ساخته شده است. پیش از آنکه یک پیام عادی در نشست گزارش اجرا تولید کرده باشد، /context map بهجای رندر کردن یک برآورد، پیام در دسترس نبودن برمیگرداند. مساحت مستطیل با نویسههای پرامپت ردیابیشده متناسب است:
- فایلهای فضای کاری تزریقشده
- متن پایه پرامپت سیستم
- ورودیهای پرامپت Skills
- طرحوارههای JSON ابزار
/context list، /context detail، و /context json همچنان میتوانند وقتی هیچ گزارش اجرایی کش نشده است، یک برآورد درخواستی را بررسی کنند.
چه چیزهایی در پنجره زمینه حساب میشوند
هر چیزی که مدل دریافت میکند حساب میشود، از جمله:
- پرامپت سیستم (همه بخشها).
- تاریخچه مکالمه.
- فراخوانیهای ابزار + نتایج ابزار.
- پیوستها/رونوشتها (تصویر/صدا/فایلها).
- خلاصههای Compaction و مصنوعات هرس.
- «پوششها» یا سربرگهای پنهان ارائهدهنده (قابل مشاهده نیستند، اما همچنان حساب میشوند).
OpenClaw چگونه پرامپت سیستم را میسازد
پرامپت سیستم متعلق به OpenClaw است و در هر اجرا دوباره ساخته میشود. شامل این موارد است:
- فهرست ابزارها + توضیحات کوتاه.
- فهرست Skills (فقط فراداده؛ پایینتر را ببینید).
- مکان فضای کاری.
- زمان (UTC + زمان تبدیلشده کاربر، اگر پیکربندی شده باشد).
- فراداده زمان اجرا (میزبان/سیستمعامل/مدل/تفکر).
- فایلهای راهانداز فضای کاری تزریقشده زیر زمینه پروژه.
تفکیک کامل: پرامپت سیستم.
فایلهای فضای کاری تزریقشده (زمینه پروژه)
بهطور پیشفرض، OpenClaw مجموعه ثابتی از فایلهای فضای کاری را تزریق میکند (اگر وجود داشته باشند):
AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(فقط اجرای اول)
فایلهای بزرگ بهصورت جداگانه با agents.defaults.bootstrapMaxChars (پیشفرض 20000 نویسه) کوتاه میشوند. OpenClaw همچنین یک سقف تزریق راهانداز کلی را در سراسر فایلها با agents.defaults.bootstrapTotalMaxChars (پیشفرض 60000 نویسه) اعمال میکند. /context اندازههای خام در برابر تزریقشده و اینکه آیا کوتاهسازی رخ داده است یا نه را نشان میدهد.
وقتی کوتاهسازی رخ میدهد، زمان اجرا میتواند یک بلوک هشدار درون پرامپت زیر زمینه پروژه تزریق کند. این را با agents.defaults.bootstrapPromptTruncationWarning پیکربندی کنید (off، once، always؛ پیشفرض always).
Skills: تزریقشده در برابر بارگذاری در صورت نیاز
پرامپت سیستم شامل یک فهرست Skills فشرده است (نام + توضیح + مکان). این فهرست سربار واقعی دارد.
دستورالعملهای Skills بهطور پیشفرض گنجانده نمیشوند. انتظار میرود مدل SKILL.md مربوط به Skill را فقط هنگام نیاز read کند.
ابزارها: دو نوع هزینه وجود دارد
ابزارها به دو شکل روی زمینه اثر میگذارند:
- متن فهرست ابزارها در پرامپت سیستم (چیزی که بهعنوان «ابزاردهی» میبینید).
- طرحوارههای ابزار (JSON). اینها به مدل فرستاده میشوند تا بتواند ابزارها را فراخوانی کند. حتی با اینکه آنها را بهصورت متن ساده نمیبینید، در زمینه حساب میشوند.
/context detail بزرگترین طرحوارههای ابزار را تفکیک میکند تا بتوانید ببینید چه چیزی غالب است.
دستورها، رهنمودها، و «میانبرهای درونخطی»
دستورهای اسلش توسط Gateway مدیریت میشوند. چند رفتار متفاوت وجود دارد:
- دستورهای مستقل: پیامی که فقط
/...باشد بهعنوان یک دستور اجرا میشود. - رهنمودها:
/think،/verbose،/trace،/reasoning،/elevated،/model،/queueپیش از آنکه مدل پیام را ببیند حذف میشوند.- پیامهای فقط شامل رهنمود تنظیمات نشست را پایدار میکنند.
- رهنمودهای درونخطی در یک پیام عادی بهعنوان راهنماییهای مختص همان پیام عمل میکنند.
- میانبرهای درونخطی (فقط فرستندههای مجاز): برخی توکنهای
/...داخل یک پیام عادی میتوانند فورا اجرا شوند (مثال: «hey /status»)، و پیش از آنکه مدل متن باقیمانده را ببیند حذف میشوند.
جزئیات: دستورهای اسلش.
نشستها، Compaction، و هرس (چه چیزی پایدار میماند)
اینکه چه چیزی در پیامها پایدار میماند به سازوکار بستگی دارد:
- تاریخچه عادی تا زمانی که طبق سیاست فشرده/هرس شود در رونوشت نشست باقی میماند.
- Compaction یک خلاصه را در رونوشت پایدار میکند و پیامهای اخیر را دستنخورده نگه میدارد.
- هرس نتایج قدیمی ابزار را از پرامپت درونحافظهای حذف میکند تا فضای پنجره زمینه آزاد شود، اما رونوشت نشست را بازنویسی نمیکند - تاریخچه کامل همچنان روی دیسک قابل بررسی است.
مستندات: نشست، Compaction، هرس نشست.
بهطور پیشفرض، OpenClaw از موتور زمینه داخلی legacy برای مونتاژ و
Compaction استفاده میکند. اگر Pluginای نصب کنید که kind: "context-engine" ارائه میدهد و
آن را با plugins.slots.contextEngine انتخاب کنید، OpenClaw مونتاژ زمینه،
/compact، و hookهای چرخه عمر زمینه زیرعامل مرتبط را به همان
موتور واگذار میکند. ownsCompaction: false باعث بازگشت خودکار به موتور
legacy نمیشود؛ موتور فعال همچنان باید compact() را درست پیادهسازی کند. برای
رابط قابلاتصال کامل، hookهای چرخه عمر، و پیکربندی، موتور زمینه را ببینید.
/context واقعا چه چیزی گزارش میکند
/context در صورت موجود بودن، آخرین گزارش پرامپت سیستم ساختهشده در اجرا را ترجیح میدهد:
System prompt (run)= از آخرین اجرای تعبیهشده (دارای قابلیت ابزار) گرفته شده و در ذخیرهگاه نشست پایدار شده است.System prompt (estimate)= وقتی هیچ گزارش اجرایی وجود ندارد (یا هنگام اجرا از طریق یک بکاند CLI که گزارش را تولید نمیکند) در لحظه محاسبه میشود.
در هر دو حالت، اندازهها و مشارکتکنندگان اصلی را گزارش میکند؛ کل پرامپت سیستم یا طرحوارههای ابزار را تخلیه نمیکند. در حالت تفصیلی، همچنین رونوشت نشست را با همان گزاره پیام مکالمه واقعی که Compaction استفاده میکند مقایسه میکند، بنابراین تشخیص مصرف بالای پرامپت/کش از تاریخچه مکالمه قابل فشردهسازی آسانتر است.