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 اضافه کنند.
  • زمان (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 استفاده می‌کنند.

تخمین هزینه (هنگام نمایش)

هزینه‌ها از پیکربندی قیمت‌گذاری مدل شما تخمین زده می‌شوند:

text
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

yaml
agents:  defaults:    model:      primary: "anthropic/claude-opus-4-6"    models:      "anthropic/claude-opus-4-6":        params:          cacheRetention: "long"    heartbeat:      every: "55m"

نمونه: ترافیک ترکیبی با راهبرد کش برای هر عامل

yaml
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 نیازی نیست.

yaml
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 مراجعه کنید.

مرتبط

Was this useful?
On this page

On this page