Fundamentals
زمینه
«زمینه» یعنی هر چیزی که OpenClaw برای یک اجرا به مدل ارسال میکند. اندازهٔ آن به پنجرهٔ زمینه مدل (محدودیت توکن) مقید است.
مدل ذهنی برای مبتدیان:
- پرامپت سیستمی (ساختهشده توسط OpenClaw): قواعد، ابزارها، فهرست Skills، زمان/محیط اجرا و فایلهای فضای کاری تزریقشده.
- تاریخچهٔ مکالمه: پیامهای شما + پیامهای دستیار در این نشست.
- فراخوانیها/نتایج ابزارها + پیوستها: خروجی فرمان، خواندن فایلها، تصاویر/صدا و غیره.
زمینه با «حافظه» یکسان نیست: حافظه میتواند روی دیسک ذخیره و بعداً دوباره بارگذاری شود؛ زمینه همان چیزی است که در پنجرهٔ فعلی مدل قرار دارد.
شروع سریع (بررسی زمینه)
/status← نمایی سریع از «پنجرهام چقدر پر است؟» + تنظیمات نشست./context list← موارد تزریقشده + اندازههای تقریبی (برای هر فایل + مجموع)./context detail← تفکیک عمیقتر: اندازهٔ هر فایل، طرحوارهٔ هر ابزار، ورودی هر Skill، پرامپت سیستمی و تعداد پیامهای رونوشت قابل Compaction./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 بهجای ترسیم یک برآورد، پیامِ در دسترس نبودن را برمیگرداند. مساحت مستطیلها متناسب با تعداد نویسههای ردیابیشدهٔ پرامپت است:
- رونوشت مکالمه (پیامهای کاربر، پاسخهای دستیار، نتایج ابزار و خلاصههای Compaction)، بهعلاوهٔ زمینهٔ زمان اجرا برای هر نوبت و افزودههای پرامپتِ قلابها که فقط به مدل میرسند
- فایلهای فضای کاری تزریقشده
- متن پایهٔ پرامپت سیستمی
- ورودیهای پرامپت Skill
- طرحوارههای JSON ابزار
گروه مکالمه همزمان با ادامهٔ نشست رشد میکند، بنابراین نقشه در هر نوبت تغییر میکند؛ پس از Compaction، این گروه به یک کاشی خلاصهها فرو میریزد.
وقتی هیچ گزارش اجرایی در حافظهٔ نهان وجود ندارد، /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 فشرده (نام + توضیح + مکان) است. این فهرست سربار واقعی دارد.
دستورالعملهای Skill بهطور پیشفرض گنجانده نمیشوند. انتظار میرود مدل فایل SKILL.md مربوط به Skill را فقط هنگام نیاز با read بخواند.
ابزارها: دو نوع هزینه وجود دارد
ابزارها از دو راه بر زمینه اثر میگذارند:
- متن فهرست ابزارها در پرامپت سیستمی (چیزی که با عنوان «ابزارها» میبینید).
- طرحوارههای ابزار (JSON). این طرحوارهها برای امکان فراخوانی ابزارها به مدل ارسال میشوند. حتی با اینکه آنها را بهصورت متن ساده نمیبینید، در زمینه محاسبه میشوند.
/context detail بزرگترین طرحوارههای ابزار را تفکیک میکند تا بتوانید عاملهای غالب را ببینید.
فرمانها، دستورالعملها و «میانبرهای درونخطی»
فرمانهای اسلش توسط Gateway مدیریت میشوند. چند رفتار متفاوت وجود دارد:
- فرمانهای مستقل: پیامی که فقط شامل
/...است، بهعنوان فرمان اجرا میشود. - دستورالعملها:
/think،/fast،/verbose،/trace،/reasoning،/elevated،/exec،/modelو/queueپیش از دیدهشدن پیام توسط مدل حذف میشوند.- پیامهایی که فقط شامل دستورالعمل هستند، تنظیمات نشست را ماندگار میکنند.
- دستورالعملهای درونخطی در یک پیام عادی بهعنوان راهنمای همان پیام عمل میکنند.
- میانبرهای درونخطی (فقط فرستندگان موجود در فهرست مجاز): بعضی نشانههای
/...درون یک پیام عادی میتوانند فوراً اجرا شوند (مثال: «سلام/status») و پیش از دیدهشدن متن باقیمانده توسط مدل حذف میشوند.
جزئیات: فرمانهای اسلش.
نشستها، Compaction و هرس (چه چیزهایی ماندگار میشوند)
آنچه میان پیامها ماندگار میشود به سازوکار بستگی دارد:
- تاریخچهٔ عادی تا زمانی که طبق سیاست Compaction یا هرس شود، در رونوشت نشست باقی میماند.
- Compaction یک خلاصه را در رونوشت ماندگار میکند و پیامهای اخیر را دستنخورده نگه میدارد.
- هرس نتایج قدیمی ابزار را از پرامپتِ درون حافظه حذف میکند تا فضای پنجرهٔ زمینه آزاد شود، اما رونوشت نشست را بازنویسی نمیکند؛ تاریخچهٔ کامل همچنان روی دیسک قابل بررسی است.
مستندات: نشست، Compaction، هرس نشست.
OpenClaw بهطور پیشفرض برای مونتاژ و Compaction از موتور زمینهٔ داخلی legacy استفاده میکند. اگر Pluginی نصب کنید که kind: "context-engine" را فراهم کند و آن را با plugins.slots.contextEngine انتخاب کنید، OpenClaw مونتاژ زمینه، /compact و قلابهای چرخهٔ عمر زمینهٔ زیرعامل مرتبط را به آن موتور واگذار میکند. ownsCompaction: false باعث بازگشت خودکار به موتور legacy نمیشود؛ موتور فعال همچنان باید compact() را بهدرستی پیادهسازی کند. برای رابط کامل قابلاتصال، قلابهای چرخهٔ عمر و پیکربندی، موتور زمینه را ببینید.
/context واقعاً چه چیزی گزارش میکند
در صورت دسترسی، /context جدیدترین گزارش پرامپت سیستمی ساختهشده در اجرا را ترجیح میدهد:
System prompt (run)= از آخرین اجرای تعبیهشده (دارای قابلیت ابزار) ثبت و در مخزن نشست ماندگار شده است.System prompt (estimate)= وقتی گزارش اجرایی وجود ندارد (یا هنگام اجرا از طریق یک پشتیبان CLI که گزارش را تولید نمیکند)، در لحظه محاسبه میشود.
در هر دو حالت، اندازهها و مشارکتکنندگان اصلی گزارش میشوند؛ این فرمان پرامپت سیستمی کامل یا طرحوارههای ابزار را نمایش نمیدهد. در حالت جزئیات، رونوشت نشست نیز با همان گزارهٔ پیام مکالمهٔ واقعی که Compaction استفاده میکند مقایسه میشود؛ بنابراین تشخیص مصرف بالای پرامپت/حافظهٔ نهان از تاریخچهٔ مکالمهٔ قابل Compaction آسانتر است.