Technical reference
مصرف توکن و هزینهها
OpenClaw توکنها را ردیابی میکند، نه نویسهها را. توکنها مختص هر مدل هستند، اما بیشتر مدلهای سبک OpenAI برای متن انگلیسی بهطور میانگین در هر توکن حدود ۴ نویسه دارند.
پرامپت سیستم چگونه ساخته میشود
OpenClaw در هر اجرا پرامپت سیستم خود را میسازد. این پرامپت شامل موارد زیر است:
- فهرست ابزارها + توضیحات کوتاه
- فهرست Skills (فقط فراداده؛ دستورالعملها در صورت نیاز با
readبارگیری میشوند). نوبتهای بومی Codex، بلوک فشردهٔ Skills را بهصورت دستورالعملهای توسعهدهندهٔ همکاری با دامنهٔ همان نوبت دریافت میکنند؛ سایر چارچوبهای اجرا آن را در سطح عادی پرامپت دریافت میکنند. باskills.limits.maxSkillsPromptCharsمحدود میشود و امکان بازنویسی اختیاری برای هر عامل درagents.entries.*.skillsLimits.maxSkillsPromptCharsوجود دارد. - دستورالعملهای خودبهروزرسانی
- فضای کاری + فایلهای راهاندازی اولیه (
AGENTS.md،SOUL.md،TOOLS.md،IDENTITY.md،USER.md،HEARTBEAT.md،BOOTSTRAP.mdدر صورت جدیدبودن، بهعلاوهٔMEMORY.mdدر صورت وجود). فایلهای تزریقشدهٔ بزرگ باagents.defaults.bootstrapMaxCharsکوتاه میشوند (پیشفرض:20000)؛ کل تزریق راهاندازی اولیه باagents.defaults.bootstrapTotalMaxCharsمحدود میشود (پیشفرض:60000).- نوبتهای بومی Codex، هنگامی که ابزارهای حافظه برای آن فضای کاری
در دسترس باشند، محتوای خام
MEMORY.mdرا درج نمیکنند؛ در عوض، یک اشارهگر کوچک حافظه را در دستورالعملهای توسعهدهندهٔ همکاری با دامنهٔ همان نوبت دریافت میکنند و در صورت نیاز از ابزارهای حافظه استفاده میکنند. اگر ابزارها غیرفعال باشند، جستوجوی حافظه در دسترس نباشد، یا فضای کاری فعال با فضای کاری حافظهٔ عامل متفاوت باشد،MEMORY.mdبه مسیر عادی و محدودِ زمینهٔ نوبت بازمیگردد. - ریشهٔ
memory.mdبا حروف کوچک هرگز تزریق نمیشود. این ورودی قدیمیِ ترمیم برایopenclaw doctor --fixاست که آن را بهMEMORY.mdمنتقل میکند. - فایلهای روزانهٔ
memory/*.mdبخشی از پرامپت عادی راهاندازی اولیه نیستند؛ در نوبتهای معمولی، از طریق ابزارهای حافظه و در صورت نیاز در دسترس میمانند. اجراهای مدل هنگام بازنشانی/راهاندازی میتوانند برای نخستین نوبت، یک بلوک یکبارهٔ زمینهٔ راهاندازی شامل حافظهٔ روزانهٔ اخیر را در ابتدا اضافه کنند که باagents.defaults.startupContextکنترل میشود. پیامهای سادهٔ چت/newو/resetبدون فراخوانی مدل تأیید میشوند. - گزیدههای
AGENTS.mdپس از Compaction به اعلام رضایت صریح از طریقagents.defaults.compaction.postCompactionSectionsنیاز دارند؛ Pluginها میتوانند زمینههای دیگری را از طریقbefore_prompt_buildاضافه کنند.
- نوبتهای بومی Codex، هنگامی که ابزارهای حافظه برای آن فضای کاری
در دسترس باشند، محتوای خام
- زمان (UTC + منطقهٔ زمانی کاربر)
- برچسبهای پاسخ + رفتار Heartbeat
- فرادادهٔ زمان اجرا (میزبان/سیستمعامل/مدل/تفکر)
شرح کامل را در پرامپت سیستم ببینید.
هنگام مستندسازی اعتبارنامهها یا قطعههای احراز هویت، از قراردادهای جاینگهدار محرمانه استفاده کنید تا در تغییرات صرفاً مستنداتی، از مثبت کاذب اسکنر محرمانه جلوگیری شود.
چه چیزهایی در پنجرهٔ زمینه محاسبه میشوند
هرآنچه مدل دریافت میکند در محدودیت زمینه محاسبه میشود:
- پرامپت سیستم (همهٔ بخشهای بالا)
- تاریخچهٔ مکالمه (پیامهای کاربر + دستیار)
- فراخوانیهای ابزار و نتایج ابزار
- پیوستها/رونوشتها (تصاویر، صدا، فایلها)
- خلاصههای Compaction و مصنوعات هرس
- پوششهای ارائهدهنده یا سرآیندهای ایمنی (قابل مشاهده نیستند، اما همچنان محاسبه میشوند)
سطوح سنگین از نظر زمان اجرا، محدودیتهای صریح خود را ذیل
agents.defaults.contextLimits دارند (بازنویسیهای هر عامل ذیل
agents.entries.*.contextLimits):
| کلید | هدف |
|---|---|
memoryGetMaxChars |
حداکثر نویسههایی که memory_get پیش از کوتاهسازی برمیگرداند. |
postCompactionMaxChars |
حداکثر نویسههای نگهداریشده از AGENTS.md هنگام تازهسازی پس از Compaction. |
اینها گزیدههای محدود زمان اجرا و بلوکهای تزریقشدهٔ تحت مالکیت زمان اجرا هستند که از محدودیتهای راهاندازی اولیه، محدودیتهای زمینهٔ راهاندازی و محدودیتهای پرامپت Skills جدا هستند.
OpenClaw محدودیت زندهٔ نتیجهٔ ابزار را از پنجرهٔ مؤثر زمینهٔ مدل
استخراج میکند: 16000 نویسه زیر
۱۰۰ هزار توکن، 32000 نویسه برای ۱۰۰ هزار توکن و بیشتر، و 64000 نویسه برای ۲۰۰ هزار توکن و بیشتر.
محافظ سهم زمینهٔ زمان اجرا همچنین یک نتیجهٔ منفرد ابزار را به ۳۰٪ از
پنجرهٔ زمینه محدود میکند.
پنجرههای بزرگ ارائهدهنده، هنگامی که هزینه یا تأخیر را بهطور ملموس
تغییر دهند، بهطور خودکار فعال نمیشوند. برای مثال، مدلهای مستقیم OpenAI GPT-5.5 و GPT-5.6
یک پنجرهٔ کل 1050000 توکنی منتشر میکنند، اما OpenClaw بودجهٔ فعال
زمان اجرای آنها را بهطور پیشفرض روی 272000 توکن قرار میدهد. بودجهٔ ورودی اختیاری 922000
کل سهمیهٔ خروجی 128000 را رزرو میکند و OpenAI پس از آنکه ورودی از
272000 توکن فراتر رود، قیمتگذاری بالاترِ زمینهٔ طولانی را بر کل درخواست اعمال میکند. به
پیشفرضهای پنجرهٔ زمینهٔ OpenAI مراجعه کنید.
برای تصاویر، OpenClaw پیش از فراخوانی ارائهدهنده، ابعاد بارهای تصویری رونوشت/ابزار را
کاهش میدهد. آن را با agents.defaults.imageMaxDimensionPx تنظیم کنید (پیشفرض:
1200):
- مقادیر کمتر، مصرف توکن بینایی و اندازهٔ بار را کاهش میدهند.
- مقادیر بیشتر، جزئیات بصری بیشتری را برای نماگرفتهای سنگین از نظر OCR/UI حفظ میکنند.
برای تفکیکی کاربردی (بهازای هر فایل تزریقشده، ابزارها، Skills و اندازهٔ پرامپت
سیستم)، از /context list یا /context detail استفاده کنید. به
زمینه مراجعه کنید.
نحوهٔ مشاهدهٔ مصرف کنونی توکن
در چت:
/status-> کارت وضعیت سرشار از ایموجی شامل مدل نشست، مصرف زمینه، توکنهای ورودی/خروجی آخرین پاسخ و هزینهٔ تخمینی، هنگامی که قیمتگذاری محلی برای مدل فعال پیکربندی شده باشد./usage off|tokens|full-> یک پاورقی مصرف بهازای هر پاسخ به همهٔ پاسخها اضافه میکند. برای هر نشست پایدار میماند (بهصورتresponseUsageذخیره میشود)./usage reset(نامهای مستعار:inherit،clear،default) بازنویسی نشست را پاک میکند تا دوباره پیشفرض پیکربندیشده را به ارث ببرد./usage tokensجزئیات توکن/کش نوبت را نشان میدهد./usage fullجزئیات فشردهٔ مدل/زمینه/هزینه را نشان میدهد؛ هزینهٔ تخمینی فقط زمانی نمایش داده میشود که OpenClaw فرادادهٔ مصرف و قیمتگذاری محلی مدل فعال را داشته باشد. چیدمانهای سفارشیmessages.usageTemplateمیتوانند فیلدهای توکن/کش را دربر گیرند.
/usage cost-> خلاصهٔ هزینهٔ محلی از گزارشهای نشست OpenClaw.
سایر سطوح:
- TUI/TUI وب:
/statusو/usageپشتیبانی میشوند. - CLI:
openclaw status --usageوopenclaw channels listپنجرههای سهمیهٔ نرمالشدهٔ ارائهدهنده را نشان میدهند (X% left، نه هزینههای هر پاسخ). ارائهدهندگان کنونی پنجرهٔ مصرف: Claude (Anthropic)، ClawRouter، Copilot (GitHub)، DeepSeek، Gemini (Google Gemini CLI)، MiniMax، OpenAI، Xiaomi، Xiaomi Token Plan و z.ai.
سطوح مصرف، نامهای مستعار رایج فیلدهای بومی ارائهدهنده را پیش از
نمایش نرمالسازی میکنند. برای ترافیک Responses خانوادهٔ OpenAI، این شامل هر دو
input_tokens/output_tokens و prompt_tokens/completion_tokens است، بنابراین
نامهای فیلد مختص انتقال، /status، /usage یا خلاصههای
نشست را تغییر نمیدهند. مصرف Gemini CLI نیز نرمالسازی میشود: تجزیهگر پیشفرض stream-json
رویدادهای دستیار message را میخواند و stats.cached به
cacheRead نگاشت میشود؛ هنگامی که CLI فیلد صریح
stats.input را حذف کند، از stats.input_tokens - stats.cached استفاده میشود. بازنویسیهای قدیمی JSON همچنان متن پاسخ را
از response میخوانند.
برای ترافیک بومی Responses خانوادهٔ OpenAI، نامهای مستعار مصرف WebSocket/SSE
به همان روش نرمالسازی میشوند و هنگامی که total_tokens وجود نداشته یا 0
باشد، مجموعها به ورودی + خروجی نرمالشده بازمیگردند.
هنگامی که تصویر لحظهای نشست کنونی کممحتوا باشد، /status و session_status
میتوانند شمارندههای توکن/کش و برچسب مدل فعال زمان اجرا را از
جدیدترین گزارش مصرف رونوشت بازیابی کنند. مقادیر زندهٔ غیرصفر موجود همچنان بر
مقادیر جایگزین رونوشت اولویت دارند و هنگامی که مجموعهای ذخیرهشده وجود نداشته یا کمتر باشند،
مجموعهای بزرگتر رونوشت که بر پرامپت متمرکزند میتوانند غالب شوند.
احراز هویت مصرف برای پنجرههای سهمیهٔ ارائهدهنده ابتدا از قلابهای مختص ارائهدهنده تأمین میشود؛ اگر ارائهدهندهای قلاب نداشته باشد (یا قلاب توکنی را بهدست نیاورد)، OpenClaw به اعتبارنامههای منطبق OAuth/کلید API از نمایههای احراز هویت، محیط یا پیکربندی بازمیگردد.
ورودیهای رونوشت دستیار همان شکل نرمالشدهٔ مصرف را نگه میدارند،
از جمله usage.cost هنگامی که مدل فعال قیمتگذاری پیکربندیشده داشته باشد و
ارائهدهنده فرادادهٔ مصرف برگرداند. این امر حتی پس از ازبینرفتن وضعیت زندهٔ
زمان اجرا، منبعی پایدار برای /usage cost و وضعیت نشست مبتنی بر
رونوشت فراهم میکند.
OpenClaw حسابداری مصرف ارائهدهنده را از تصویر لحظهای زمینهٔ کنونی
جدا نگه میدارد. usage.total ارائهدهنده میتواند شامل ورودی کششده، خروجی و
چندین فراخوانی مدل در حلقهٔ ابزار باشد، بنابراین برای هزینه و تلهمتری مفید است، اما
ممکن است پنجرهٔ زندهٔ زمینه را بیش از مقدار واقعی نشان دهد. نمایشها و عیبیابیهای زمینه از
آخرین تصویر لحظهای پرامپت (promptTokens، یا آخرین فراخوانی مدل در صورت نبود
تصویر لحظهای پرامپت) برای context.used استفاده میکنند.
تخمین هزینه (هنگام نمایش)
هزینهها از پیکربندی قیمتگذاری مدل شما تخمین زده میشوند:
models.providers.<provider>.models[].costاین مقادیر دلار آمریکا بهازای هر ۱ میلیون توکن برای input، output، cacheRead و
cacheWrite هستند. اگر قیمتگذاری وجود نداشته باشد، /usage full هزینه را حذف میکند؛ هرگاه به
جزئیات توکن/کش در هر پاسخ نیاز دارید، از /usage tokens یا یک messages.usageTemplate سفارشی
استفاده کنید. نمایش هزینه به احراز هویت با کلید API محدود نیست:
ارائهدهندگان بدون کلید API مانند aws-sdk هنگامی که ورودی مدل پیکربندیشدهٔ آنها شامل
قیمتگذاری محلی باشد و ارائهدهنده فرادادهٔ مصرف برگرداند، میتوانند هزینهٔ تخمینی را نمایش دهند.
پس از آنکه فرایندهای جانبی و کانالها به مسیر آمادهٔ Gateway رسیدند، OpenClaw
راهاندازی اولیهٔ اختیاری قیمتگذاری در پسزمینه را برای ارجاعهای مدل پیکربندیشدهای که از قبل
قیمتگذاری محلی ندارند آغاز میکند. آن راهاندازی اولیه، کاتالوگهای قیمتگذاری راهدور OpenRouter و
LiteLLM را دریافت میکند. برای ردشدن از دریافت این کاتالوگها در شبکههای آفلاین یا
محدود، models.pricing.enabled: false را تنظیم کنید؛ ورودیهای صریح
models.providers.*.models[].cost همچنان تخمینهای هزینهٔ محلی را تعیین میکنند.
تأثیر TTL کش و هرس
کشکردن پرامپت ارائهدهنده فقط درون پنجرهٔ TTL کش اعمال میشود. OpenClaw میتواند بهصورت اختیاری هرس TTL کش را اجرا کند: پس از انقضای TTL کش، نشست را هرس میکند و سپس پنجرهٔ کش را بازنشانی میکند تا درخواستهای بعدی بهجای کشکردن دوبارهٔ کل تاریخچه، از زمینهٔ تازه کششده مجدداً استفاده کنند. این کار هنگامی که نشست پس از TTL غیرفعال میماند، هزینههای نوشتن کش را پایینتر نگه میدارد.
آن را در پیکربندی Gateway پیکربندی کنید و جزئیات رفتار را در هرس نشست ببینید.
Heartbeat میتواند کش را در فاصلههای بیکاری گرم نگه دارد. اگر TTL کش مدل
شما 1h است، تنظیم فاصلهٔ Heartbeat کمی کمتر از آن (برای نمونه، 55m) میتواند
از کشکردن دوبارهٔ کل پرامپت جلوگیری کند و هزینههای نوشتن کش را کاهش دهد.
در پیکربندیهای چندعاملی، میتوانید یک پیکربندی مدل مشترک داشته باشید و رفتار
کش را برای هر عامل با agents.entries.*.params.cacheRetention تنظیم کنید.
برای راهنمای کامل تکتک گزینهها، به کشکردن پرامپت مراجعه کنید.
در قیمتگذاری API شرکت Anthropic، خواندن از کش بهطور چشمگیری ارزانتر از توکنهای ورودی است، درحالیکه نوشتن در کش با ضریب بالاتری محاسبه میشود. برای جدیدترین نرخها و ضرایب TTL، قیمتگذاری کش پرامپت Anthropic را ببینید: https://docs.anthropic.com/docs/build-with-claude/prompt-caching
نمونه: گرم نگهداشتن کش ۱ ساعته با Heartbeat
agents: defaults: model: primary: "anthropic/claude-opus-4-6" models: "anthropic/claude-opus-4-6": params: cacheRetention: "long" heartbeat: every: "55m"نمونه: ترافیک ترکیبی با راهبرد کش برای هر عامل
agents: defaults: model: primary: "anthropic/claude-opus-4-6" models: "anthropic/claude-opus-4-6": params: cacheRetention: "long" # خط مبنای پیشفرض برای بیشتر عاملها list: - id: "research" default: true heartbeat: every: "55m" # حافظهٔ نهان بلندمدت را برای نشستهای عمیق گرم نگه دارید - id: "alerts" params: cacheRetention: "none" # از نوشتن در حافظهٔ نهان برای اعلانهای مقطعی اجتناب کنیدagents.entries.*.params روی params مدل انتخابشده ادغام میشود، بنابراین
میتوانید فقط cacheRetention را بازنویسی کنید و سایر پیشفرضهای مدل را
بدون تغییر به ارث ببرید.
زمینهٔ 1M در Anthropic
OpenClaw مدلهای Claude 4.x دارای قابلیت GA مانند Opus 4.8، Opus 4.7، Opus
4.6 و Sonnet 4.6 را با پنجرهٔ زمینهٔ 1M شرکت Anthropic پیکربندی میکند. برای
این مدلها به params.context1m: true نیازی نیست.
agents: defaults: models: "anthropic/claude-opus-4-6": alias: opusپیکربندیهای قدیمیتر میتوانند context1m: true را نگه دارند، اما OpenClaw دیگر
هدر بتای منسوخشدهٔ context-1m-2025-08-07 شرکت Anthropic را برای این تنظیم ارسال
نمیکند و مدلهای قدیمیتر Claude را که پشتیبانی نمیشوند، به 1M گسترش نمیدهد.
الزام: اعتبارنامه باید واجد شرایط استفاده از زمینهٔ طولانی باشد. در غیر این صورت، Anthropic برای آن درخواست با خطای محدودیت نرخ در سمت ارائهدهنده پاسخ میدهد.
اگر برای احراز هویت Anthropic از توکنهای OAuth/اشتراک
(sk-ant-oat-*) استفاده کنید، OpenClaw هدرهای بتای Anthropic موردنیاز OAuth
را حفظ میکند و در صورت باقیماندن بتای منسوخشدهٔ context-1m-* در
پیکربندی قدیمیتر، آن را حذف میکند.
نکاتی برای کاهش فشار توکن
- برای خلاصهسازی نشستهای طولانی از
/compactاستفاده کنید. - خروجیهای بزرگ ابزارها را در گردشکارهای خود کوتاه کنید.
- برای نشستهایی با تعداد زیاد نماگرفت،
agents.defaults.imageMaxDimensionPxرا کاهش دهید. - توضیحات مهارتها را کوتاه نگه دارید (فهرست مهارتها در پرامپت درج میشود).
- برای کارهای اکتشافی و پرحجم، مدلهای کوچکتر را ترجیح دهید.
برای فرمول دقیق سربار فهرست مهارتها، به Skills مراجعه کنید.