docs/docs/fa/tools/thinking.md
2026-05-04 18:27:37 +00:00

22 KiB
Raw Blame History

read_when summary title x-i18n
تنظیم تجزیه یا پیش‌فرض‌های دستورالعمل‌های تفکر، حالت سریع یا پرجزئیات
نحو دستورالعمل‌ها برای /think، /fast، /verbose، /trace و قابلیت مشاهدهٔ استدلال سطوح تفکر
generated_at model provider source_hash source_path workflow
2026-05-04T18:23:34Z gpt-5.5 openai fcd1cd76ca5d0b08656e0629df656ad8aa037201d8de68093b3e46eb0708f811 tools/thinking.md 16

چه کاری انجام می‌دهد

  • دستور درون‌خطی در هر بدنهٔ ورودی: /t <level>، /think:<level> یا /thinking <level>.
  • سطح‌ها (نام‌های مستعار): off | minimal | low | medium | high | xhigh | adaptive | max
    • minimal → «فکر کن»
    • low → «سخت فکر کن»
    • medium → «سخت‌تر فکر کن»
    • high → «بسیار عمیق فکر کن» (حداکثر بودجه)
    • xhigh → «بسیار عمیق فکر کن+» (مدل‌های GPT-5.2+ و Codex، به‌علاوهٔ تلاش Anthropic Claude Opus 4.7)
    • adaptive → تفکر تطبیقی مدیریت‌شده توسط ارائه‌دهنده (برای Claude 4.6 روی Anthropic/Bedrock، Anthropic Claude Opus 4.7 و تفکر پویا در Google Gemini پشتیبانی می‌شود)
    • max → حداکثر استدلال ارائه‌دهنده (Anthropic Claude Opus 4.7؛ Ollama این را به بالاترین تلاش بومی think خود نگاشت می‌کند)
    • x-high، x_high، extra-high، extra high و extra_high به xhigh نگاشت می‌شوند.
    • highest به high نگاشت می‌شود.
  • یادداشت‌های ارائه‌دهنده:
    • منوها و انتخاب‌گرهای تفکر بر اساس پروفایل ارائه‌دهنده هدایت می‌شوند. Pluginهای ارائه‌دهنده مجموعهٔ دقیق سطح‌ها را برای مدل انتخاب‌شده اعلام می‌کنند، از جمله برچسب‌هایی مانند on دودویی.
    • adaptive، xhigh و max فقط برای پروفایل‌های ارائه‌دهنده/مدلی نمایش داده می‌شوند که از آن‌ها پشتیبانی می‌کنند. دستورهای تایپ‌شده برای سطح‌های پشتیبانی‌نشده با گزینه‌های معتبر همان مدل رد می‌شوند.
    • سطح‌های پشتیبانی‌نشدهٔ ذخیره‌شدهٔ موجود بر اساس رتبهٔ پروفایل ارائه‌دهنده دوباره نگاشت می‌شوند. adaptive در مدل‌های غیرتطبیقی به medium برمی‌گردد، در حالی که xhigh و max به بزرگ‌ترین سطح غیر off پشتیبانی‌شده برای مدل انتخاب‌شده برمی‌گردند.
    • مدل‌های Anthropic Claude 4.6 وقتی سطح تفکر صریحی تنظیم نشده باشد، به‌طور پیش‌فرض adaptive هستند.
    • Anthropic Claude Opus 4.7 به‌طور پیش‌فرض از تفکر تطبیقی استفاده نمی‌کند. پیش‌فرض تلاش API آن متعلق به ارائه‌دهنده می‌ماند، مگر اینکه صراحتاً سطح تفکر تنظیم کنید.
    • Anthropic Claude Opus 4.7 دستور /think xhigh را به تفکر تطبیقی به‌همراه output_config.effort: "xhigh" نگاشت می‌کند، چون /think یک دستور تفکر است و xhigh تنظیم تلاش Opus 4.7 است.
    • Anthropic Claude Opus 4.7 همچنین /think max را ارائه می‌کند؛ این دستور به همان مسیر حداکثر تلاش متعلق به ارائه‌دهنده نگاشت می‌شود.
    • مدل‌های DeepSeek V4 دستور /think xhigh|max را ارائه می‌کنند؛ هر دو به reasoning_effort: "max" در DeepSeek نگاشت می‌شوند، در حالی که سطح‌های پایین‌تر غیر off به high نگاشت می‌شوند.
    • مدل‌های دارای قابلیت تفکر Ollama دستور /think low|medium|high|max را ارائه می‌کنند؛ max به think: "high" بومی نگاشت می‌شود، چون API بومی Ollama رشته‌های تلاش low، medium و high را می‌پذیرد.
    • مدل‌های OpenAI GPT دستور /think را از طریق پشتیبانی تلاش مختص مدل در Responses API نگاشت می‌کنند. /think off فقط وقتی مدل هدف از آن پشتیبانی کند reasoning.effort: "none" را می‌فرستد؛ در غیر این صورت OpenClaw به‌جای فرستادن مقدار پشتیبانی‌نشده، بار دادهٔ استدلال غیرفعال‌شده را حذف می‌کند.
    • ورودی‌های کاتالوگ سفارشی سازگار با OpenAI می‌توانند با تنظیم models.providers.<provider>.models[].compat.supportedReasoningEfforts برای شامل کردن "xhigh"، از /think xhigh پشتیبانی کنند. این از همان فرادادهٔ سازگاری استفاده می‌کند که بارهای دادهٔ تلاش استدلال خروجی OpenAI را نگاشت می‌کند، بنابراین منوها، اعتبارسنجی نشست، CLI عامل و llm-task با رفتار انتقال هم‌نظر می‌مانند.
    • ارجاع‌های پیکربندی‌شدهٔ قدیمی OpenRouter Hunter Alpha تزریق استدلال پروکسی را رد می‌کنند، چون آن مسیر بازنشسته می‌توانست متن پاسخ نهایی را از طریق فیلدهای استدلال برگرداند.
    • Google Gemini دستور /think adaptive را به تفکر پویای متعلق به ارائه‌دهندهٔ Gemini نگاشت می‌کند. درخواست‌های Gemini 3 یک thinkingLevel ثابت را حذف می‌کنند، در حالی که درخواست‌های Gemini 2.5 مقدار thinkingBudget: -1 را می‌فرستند؛ سطح‌های ثابت همچنان به نزدیک‌ترین thinkingLevel یا بودجهٔ Gemini برای آن خانوادهٔ مدل نگاشت می‌شوند.
    • MiniMax (minimax/*) در مسیر استریم سازگار با Anthropic به‌طور پیش‌فرض thinking: { type: "disabled" } است، مگر اینکه صراحتاً تفکر را در پارامترهای مدل یا پارامترهای درخواست تنظیم کنید. این کار از نشت دلتاهای reasoning_content از قالب استریم غیر بومی Anthropic در MiniMax جلوگیری می‌کند.
    • Z.AI (zai/*) فقط از تفکر دودویی (on/off) پشتیبانی می‌کند. هر سطح غیر off به‌عنوان on در نظر گرفته می‌شود (به low نگاشت می‌شود).
    • Moonshot (moonshot/*) دستور /think off را به thinking: { type: "disabled" } و هر سطح غیر off را به thinking: { type: "enabled" } نگاشت می‌کند. وقتی تفکر فعال باشد، Moonshot فقط tool_choice با مقدار auto|none را می‌پذیرد؛ OpenClaw مقدارهای ناسازگار را به auto نرمال‌سازی می‌کند.

ترتیب حل‌وفصل

  1. دستور درون‌خطی روی پیام (فقط روی همان پیام اعمال می‌شود).
  2. بازنویسی نشست (با ارسال یک پیام فقط شامل دستور تنظیم می‌شود).
  3. پیش‌فرض هر عامل (agents.list[].thinkingDefault در پیکربندی).
  4. پیش‌فرض سراسری (agents.defaults.thinkingDefault در پیکربندی).
  5. پشتیبان: پیش‌فرض اعلام‌شده توسط ارائه‌دهنده، اگر موجود باشد؛ در غیر این صورت مدل‌های دارای قابلیت استدلال به medium یا نزدیک‌ترین سطح غیر off پشتیبانی‌شده برای آن مدل حل می‌شوند و مدل‌های بدون استدلال روی off می‌مانند.

تنظیم پیش‌فرض نشست

  • پیامی بفرستید که فقط دستور باشد (فاصلهٔ سفید مجاز است)، برای مثال /think:medium یا /t high.
  • این تنظیم برای نشست فعلی باقی می‌ماند (به‌طور پیش‌فرض برای هر فرستنده)؛ با /think:off یا بازنشانی نشست پس از بیکاری پاک می‌شود.
  • پاسخ تأیید فرستاده می‌شود (Thinking level set to high. / Thinking disabled.). اگر سطح نامعتبر باشد (مثلاً /thinking big)، فرمان با یک راهنما رد می‌شود و وضعیت نشست بدون تغییر می‌ماند.
  • برای دیدن سطح تفکر فعلی، /think (یا /think:) را بدون آرگومان بفرستید.

اعمال بر اساس عامل

  • Pi جاسازی‌شده: سطح حل‌شده به زمان‌اجرای عامل Pi درون‌فرایندی پاس داده می‌شود.
  • بک‌اند Claude CLI: سطح‌های غیر off هنگام استفاده از claude-cli به‌عنوان --effort به Claude Code پاس داده می‌شوند؛ بک‌اندهای CLI را ببینید.

حالت سریع (/fast)

  • سطح‌ها: on|off.
  • پیام فقط شامل دستور، بازنویسی حالت سریع نشست را تغییر می‌دهد و پاسخ Fast mode enabled. / Fast mode disabled. می‌دهد.
  • برای دیدن وضعیت مؤثر فعلی حالت سریع، /fast (یا /fast status) را بدون حالت بفرستید.
  • OpenClaw حالت سریع را به این ترتیب حل می‌کند:
    1. /fast on|off درون‌خطی/فقط شامل دستور
    2. بازنویسی نشست
    3. پیش‌فرض هر عامل (agents.list[].fastModeDefault)
    4. پیکربندی هر مدل: agents.defaults.models["<provider>/<model>"].params.fastMode
    5. پشتیبان: off
  • برای openai/*، حالت سریع با ارسال service_tier=priority روی درخواست‌های Responses پشتیبانی‌شده به پردازش اولویت‌دار OpenAI نگاشت می‌شود.
  • برای openai-codex/*، حالت سریع همان پرچم service_tier=priority را روی Codex Responses می‌فرستد. OpenClaw یک کلید مشترک /fast را در هر دو مسیر احراز هویت نگه می‌دارد.
  • برای درخواست‌های عمومی مستقیم anthropic/*، از جمله ترافیک احراز هویت‌شده با OAuth که به api.anthropic.com فرستاده می‌شود، حالت سریع به سطح‌های سرویس Anthropic نگاشت می‌شود: /fast on مقدار service_tier=auto را تنظیم می‌کند، /fast off مقدار service_tier=standard_only را تنظیم می‌کند.
  • برای minimax/* در مسیر سازگار با Anthropic، /fast on (یا params.fastMode: true) مقدار MiniMax-M2.7 را به MiniMax-M2.7-highspeed بازنویسی می‌کند.
  • پارامترهای صریح مدل Anthropic با نام serviceTier / service_tier وقتی هر دو تنظیم باشند، پیش‌فرض حالت سریع را بازنویسی می‌کنند. OpenClaw همچنان تزریق سطح سرویس Anthropic را برای URLهای پایهٔ پروکسی غیر Anthropic رد می‌کند.
  • /status فقط وقتی حالت سریع فعال باشد Fast را نشان می‌دهد.

دستورهای پرجزئیات (/verbose یا /v)

  • سطح‌ها: on (حداقلی) | full | off (پیش‌فرض).
  • پیام فقط شامل دستور، حالت پرجزئیات نشست را تغییر می‌دهد و پاسخ Verbose logging enabled. / Verbose logging disabled. می‌دهد؛ سطح‌های نامعتبر بدون تغییر وضعیت، یک راهنما برمی‌گردانند.
  • /verbose off یک بازنویسی صریح نشست ذخیره می‌کند؛ آن را از طریق رابط کاربری Sessions با انتخاب inherit پاک کنید.
  • دستور درون‌خطی فقط روی همان پیام اثر می‌گذارد؛ در غیر این صورت پیش‌فرض‌های نشست/سراسری اعمال می‌شوند.
  • برای دیدن سطح پرجزئیات فعلی، /verbose (یا /verbose:) را بدون آرگومان بفرستید.
  • وقتی حالت پرجزئیات روشن است، عامل‌هایی که نتایج ابزار ساختاریافته منتشر می‌کنند (Pi، سایر عامل‌های JSON)، هر فراخوانی ابزار را به‌عنوان پیام جداگانهٔ فقط فراداده، با پیشوند <emoji> <tool-name>: <arg> در صورت وجود، برمی‌گردانند. این خلاصه‌های ابزار به‌محض شروع هر ابزار فرستاده می‌شوند (حباب‌های جداگانه)، نه به‌عنوان دلتاهای استریم.
  • خلاصه‌های شکست ابزار در حالت عادی همچنان قابل مشاهده می‌مانند، اما پسوندهای جزئیات خطای خام پنهان می‌شوند مگر اینکه حالت پرجزئیات on یا full باشد.
  • وقتی حالت پرجزئیات full باشد، خروجی‌های ابزار نیز پس از تکمیل ارسال می‌شوند (حباب جداگانه، کوتاه‌شده تا طول امن). اگر هنگام در جریان بودن یک اجرا /verbose on|full|off را تغییر دهید، حباب‌های ابزار بعدی از تنظیم جدید پیروی می‌کنند.
  • agents.defaults.toolProgressDetail شکل خلاصه‌های ابزار /verbose و خطوط ابزار پیش‌نویس پیشرفت را کنترل می‌کند. از "explain" (پیش‌فرض) برای برچسب‌های انسانی فشرده مانند 🛠️ Exec: checking JS syntax استفاده کنید؛ وقتی می‌خواهید فرمان/جزئیات خام نیز برای اشکال‌زدایی افزوده شود، از "raw" استفاده کنید. مقدار هر عامل در agents.list[].toolProgressDetail پیش‌فرض را بازنویسی می‌کند.
    • explain: 🛠️ Exec: check JS syntax for /tmp/app.js
    • raw: 🛠️ Exec: check JS syntax for /tmp/app.js, node --check /tmp/app.js

دستورهای رهگیری Plugin (/trace)

  • سطح‌ها: on | off (پیش‌فرض).
  • پیام فقط شامل دستور، خروجی رهگیری Plugin نشست را تغییر می‌دهد و پاسخ Plugin trace enabled. / Plugin trace disabled. می‌دهد.
  • دستور درون‌خطی فقط روی همان پیام اثر می‌گذارد؛ در غیر این صورت پیش‌فرض‌های نشست/سراسری اعمال می‌شوند.
  • برای دیدن سطح رهگیری فعلی، /trace (یا /trace:) را بدون آرگومان بفرستید.
  • /trace محدودتر از /verbose است: فقط خطوط رهگیری/اشکال‌زدایی متعلق به Plugin مانند خلاصه‌های اشکال‌زدایی Active Memory را آشکار می‌کند.
  • خطوط رهگیری می‌توانند در /status و به‌عنوان پیام تشخیصی پیرو پس از پاسخ عادی دستیار ظاهر شوند.

نمایان بودن استدلال (/reasoning)

  • سطح‌ها: on|off|stream.
  • پیام فقط شامل دستور تعیین می‌کند که بلوک‌های تفکر در پاسخ‌ها نشان داده شوند یا نه.
  • وقتی فعال باشد، استدلال به‌عنوان یک پیام جداگانه با پیشوند Reasoning: فرستاده می‌شود.
  • stream (فقط Telegram): هنگام تولید پاسخ، استدلال را در حباب پیش‌نویس Telegram استریم می‌کند، سپس پاسخ نهایی را بدون استدلال می‌فرستد.
  • نام مستعار: /reason.
  • برای دیدن سطح استدلال فعلی، /reasoning (یا /reasoning:) را بدون آرگومان بفرستید.
  • ترتیب حل‌وفصل: دستور درون‌خطی، سپس بازنویسی نشست، سپس پیش‌فرض هر عامل (agents.list[].reasoningDefault)، سپس پشتیبان (off).

برچسب‌های استدلال مدل محلیِ بدشکل به‌صورت محافظه‌کارانه مدیریت می‌شوند. بلوک‌های بستهٔ <think>...</think> در پاسخ‌های عادی پنهان می‌مانند، و استدلال بسته‌نشده پس از متنِ از قبل قابل مشاهده نیز پنهان می‌شود. اگر پاسخی کاملاً در یک برچسب آغازینِ بسته‌نشدهٔ واحد پیچیده شده باشد و در غیر این صورت به‌عنوان متن خالی تحویل داده شود، OpenClaw برچسب آغازین بدشکل را حذف می‌کند و متن باقی‌مانده را تحویل می‌دهد.

مرتبط

Heartbeatها

  • بدنهٔ پروب Heartbeat همان پرامپت Heartbeat پیکربندی‌شده است (پیش‌فرض: Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.). دستورهای درون‌خطی در پیام Heartbeat طبق معمول اعمال می‌شوند (اما از تغییر پیش‌فرض‌های نشست از Heartbeatها خودداری کنید).
  • تحویل Heartbeat به‌طور پیش‌فرض فقط شامل بار دادهٔ نهایی است. برای ارسال پیام جداگانهٔ Reasoning: نیز (در صورت وجود)، agents.defaults.heartbeat.includeReasoning: true یا مقدار هر عامل agents.list[].heartbeat.includeReasoning: true را تنظیم کنید.

رابط کاربری چت وب

  • انتخاب‌گر تفکر چت وب هنگام بارگذاری صفحه، سطح ذخیره‌شدهٔ نشست را از مخزن/پیکربندی نشست ورودی بازتاب می‌دهد.
  • انتخاب سطحی دیگر، بازنویسی نشست را بلافاصله از طریق sessions.patch می‌نویسد؛ منتظر ارسال بعدی نمی‌ماند و یک بازنویسی یک‌بارهٔ thinkingOnce نیست.
  • گزینهٔ اول همیشه Default (<resolved level>) است، که در آن پیش‌فرض حل‌شده از پروفایل تفکر ارائه‌دهندهٔ مدل نشست فعال به‌همراه همان منطق پشتیبانی‌ای می‌آید که /status و session_status استفاده می‌کنند.
  • انتخاب‌گر از thinkingLevels برگشتی از ردیف/پیش‌فرض‌های نشست Gateway استفاده می‌کند، و thinkingOptions به‌عنوان فهرست برچسب قدیمی نگه داشته می‌شود. رابط کاربری مرورگر فهرست regex ارائه‌دهندهٔ خودش را نگه نمی‌دارد؛ Pluginها مالک مجموعه سطح‌های مختص مدل هستند.
  • /think:<level> همچنان کار می‌کند و همان سطح نشست ذخیره‌شده را به‌روزرسانی می‌کند، بنابراین دستورهای چت و انتخاب‌گر همگام می‌مانند.

پروفایل‌های ارائه‌دهنده

  • Pluginهای ارائه‌دهنده می‌توانند resolveThinkingProfile(ctx) را در معرض دسترس قرار دهند تا سطوح پشتیبانی‌شده مدل و مقدار پیش‌فرض را تعریف کنند.
  • Pluginهای ارائه‌دهنده‌ای که مدل‌های Claude را پروکسی می‌کنند باید از resolveClaudeThinkingProfile(modelId) از openclaw/plugin-sdk/provider-model-shared دوباره استفاده کنند تا کاتالوگ‌های مستقیم Anthropic و پروکسی هم‌تراز بمانند.
  • هر سطح پروفایل یک id متعارف ذخیره‌شده دارد (off، minimal، low، medium، high، xhigh، adaptive، یا max) و می‌تواند یک label نمایشی داشته باشد. ارائه‌دهندگان دودویی از { id: "low", label: "on" } استفاده می‌کنند.
  • Pluginهای ابزار که نیاز دارند یک بازنویسی صریح تفکر را اعتبارسنجی کنند باید از api.runtime.agent.resolveThinkingPolicy({ provider, model }) به‌همراه api.runtime.agent.normalizeThinkingLevel(...) استفاده کنند؛ آن‌ها نباید فهرست‌های سطح ارائه‌دهنده/مدل خودشان را نگه دارند.
  • Pluginهای ابزار که به فراداده پیکربندی‌شده مدل سفارشی دسترسی دارند می‌توانند catalog را به resolveThinkingPolicy پاس بدهند تا opt-inهای compat.supportedReasoningEfforts در اعتبارسنجی سمت Plugin منعکس شوند.
  • هوک‌های قدیمی منتشرشده (supportsXHighThinking، isBinaryThinking، و resolveDefaultThinkingLevel) به‌عنوان آداپترهای سازگاری باقی می‌مانند، اما مجموعه‌های سطح سفارشی جدید باید از resolveThinkingProfile استفاده کنند.
  • ردیف‌ها/پیش‌فرض‌های Gateway، thinkingLevels، thinkingOptions، و thinkingDefault را در معرض دسترس قرار می‌دهند تا کلاینت‌های ACP/چت همان شناسه‌ها و برچسب‌های پروفایلی را رندر کنند که اعتبارسنجی زمان اجرا استفاده می‌کند.