---
read_when:
    - طراحی یا بازآرایی درک رسانه‌ای
    - تنظیم پیش‌پردازش ورودی صدا/ویدئو/تصویر
sidebarTitle: Media understanding
summary: درک تصاویر/صدا/ویدئوی ورودی (اختیاری) با ارائه‌دهنده و روش‌های جایگزین CLI
title: درک رسانه‌ها
x-i18n:
    generated_at: "2026-07-27T16:43:16Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 38e9a0f89607bb9c4af85689ef0fbd3df9234b36e06d86c129e0d823d6e05143
    source_path: nodes/media-understanding.md
    workflow: 16
---

OpenClaw می‌تواند رسانه‌های ورودی (تصویر/صوت/ویدئو) را پیش از اجرای پایپ‌لاین پاسخ خلاصه کند تا تجزیهٔ فرمان و مسیریابی به‌جای بایت‌های خام بر اساس متنی کوتاه انجام شود. قابلیت درک، ابزارهای محلی یا کلیدهای ارائه‌دهنده را به‌طور خودکار شناسایی می‌کند؛ همچنین می‌توان مدل‌های مشخصی را پیکربندی کرد. رسانهٔ اصلی همیشه طبق روال معمول به مدل تحویل داده می‌شود؛ اگر درک ناموفق یا غیرفعال باشد، جریان پاسخ بدون تغییر ادامه می‌یابد.

Pluginهای فروشندگان، فرادادهٔ قابلیت‌ها را ثبت می‌کنند (اینکه کدام ارائه‌دهنده از کدام نوع رسانه پشتیبانی می‌کند، مدل پیش‌فرض و اولویت). هستهٔ OpenClaw مالک پیکربندی مشترک `tools.media`، ترتیب بازگشت و یکپارچه‌سازی پایپ‌لاین پاسخ است.

## نحوهٔ کار

<Steps>
  <Step title="گردآوری پیوست‌ها">
    اطلاعات مرتب‌شدهٔ رسانه‌های ورودی (`path`، `url`، `contentType` و `kind`) را گردآوری می‌کند.
  </Step>
  <Step title="انتخاب برای هر قابلیت">
    برای هر قابلیت فعال (تصویر/صوت/ویدئو)، پیوست‌ها را طبق خط‌مشی `attachments` انتخاب می‌کند (پیش‌فرض: فقط نخستین پیوست).
  </Step>
  <Step title="انتخاب مدل">
    نخستین ورودی مدل واجد شرایط را انتخاب می‌کند (اندازه + قابلیت + احراز هویت در دسترس).
  </Step>
  <Step title="بازگشت هنگام شکست">
    اگر مدل خطا دهد، مهلتش پایان یابد یا اندازهٔ رسانه از `maxBytes` بیشتر باشد، ورودی بعدی را امتحان می‌کند.
  </Step>
  <Step title="اعمال در صورت موفقیت">
    `Body` به یک بلوک `[Image]`، `[Audio]` یا `[Video]` تبدیل می‌شود. برای صوت، `{{Transcript}}` نیز تنظیم می‌شود؛ تجزیهٔ فرمان در صورت وجود متن زیرنویس از آن استفاده می‌کند و در غیر این صورت از رونوشت بهره می‌گیرد. زیرنویس‌ها به‌شکل `User text:` درون بلوک حفظ می‌شوند.
  </Step>
</Steps>

## پیکربندی

`tools.media` شامل یک فهرست مدل برچسب‌گذاری‌شده بر اساس قابلیت، به‌همراه کنترل‌های کوچک مختص هر قابلیت است:

```json5
{
  tools: {
    media: {
      concurrency: 2, // حداکثر اجرای هم‌زمان قابلیت‌ها (پیش‌فرض)
      models: [
        { provider: "openai", model: "gpt-4o-mini-transcribe", capabilities: ["audio"] },
        { provider: "google", model: "gemini-3-flash-preview", capabilities: ["image", "video"] },
      ],
      image: { preferredModel: "google/gemini-3-flash-preview" },
      audio: { enabled: true },
      video: { enabled: true },
    },
  },
}
```

کلیدهای مختص هر قابلیت (`image`/`audio`/`video`):

| کلید              | نوع      | پیش‌فرض                                | توضیحات                                                                |
| ---------------- | --------- | -------------------------------------- | -------------------------------------------------------------------- |
| `enabled`        | `boolean` | خودکار (`false` غیرفعال می‌کند)                | برای خاموش‌کردن شناسایی خودکار این قابلیت، `false` را تنظیم کنید              |
| `preferredModel` | `string`  | نخستین ورودی سازگار                 | `provider/model`، شناسهٔ مدل، `provider:<id>` یا `cli:command` را ترجیح می‌دهد |
| `prompt`         | `string`  | پیش‌فرض قابلیت                     | اعلان پیش‌فرض، هنگامی که ورودی آن را بازنویسی نمی‌کند                    |
| `maxChars`       | `number`  | `500` برای تصویر/ویدئو، تنظیم‌نشده برای صوت         | محدودیت پیش‌فرض خروجی                                                 |
| `maxBytes`       | `number`  | 10MB تصویر، 20MB صوت، 50MB ویدئو     | محدودیت پیش‌فرض ورودی                                                  |
| `timeoutSeconds` | `number`  | `60` برای تصویر/صوت، `120` برای ویدئو          | مهلت پیش‌فرض درخواست                                              |
| `language`       | `string`  | تنظیم‌نشده                                  | راهنمای رونویسی صوت                                             |
| `scope`          | شیء    | تنظیم‌نشده                                  | محدودسازی بر اساس کانال/نوع گفت‌وگو/کلید منبع                                 |
| `attachments`    | شیء    | `{ mode: "first", maxAttachments: 1 }` | انتخاب پیوست‌های منطبق برای پردازش                      |
| `echoTranscript` | `boolean` | `false`                                | فقط صوت: بازتاب رونوشت پیش از پردازش عامل              |
| `echoFormat`     | `string`  | `'📝 "{transcript}"'`                  | فقط صوت: قالب رونوشت بازتاب‌شده                         |

اعلان‌ها، محدودیت‌ها، راهنماهای زبان، بازنویسی‌های درخواست و گزینه‌های ارائه‌دهنده را می‌توان به‌عنوان پیش‌فرض قابلیت تنظیم کرد یا در ورودی‌های منفرد `tools.media.models[]` بازنویسی کرد. هنگامی که هیچ مدل مشخصی پیکربندی نشده باشد، پیش‌فرض‌های قابلیت ارائه‌دهندگان شناسایی‌شده به‌طور خودکار را نیز پوشش می‌دهند.

### ورودی‌های مدل

هر ورودی `models[]` یک ورودی **ارائه‌دهنده** (پیش‌فرض) یا ورودی **CLI** است:

<Tabs>
  <Tab title="ورودی ارائه‌دهنده">
    ```json5
    {
      type: "provider", // در صورت حذف، پیش‌فرض است
      provider: "openai",
      model: "gpt-5.6-sol",
      prompt: "تصویر را در حداکثر 500 نویسه توصیف کنید.",
      maxChars: 500,
      maxBytes: 10485760,
      timeoutSeconds: 60,
      capabilities: ["image"],
      profile: "vision-profile",
      preferredProfile: "vision-fallback",
    }
    ```
  </Tab>
  <Tab title="ورودی CLI">
    ```json5
    {
      type: "cli",
      command: "gemini",
      args: [
        "-m",
        "gemini-3-flash",
        "--allowed-tools",
        "read_file",
        "رسانهٔ موجود در {{AttachmentPath}} را بخوانید و آن را در حداکثر {{MaxChars}} نویسه توصیف کنید.",
      ],
      maxChars: 500,
      maxBytes: 52428800,
      timeoutSeconds: 120,
      capabilities: ["video", "image"],
    }
    ```

    الگوهای CLI همچنین می‌توانند از `{{AttachmentUrl}}`، `{{AttachmentContentType}}`، `{{AttachmentDir}}`، `{{AttachmentIndex}}`، `{{OutputDir}}` (دایرکتوری موقت ایجادشده برای این اجرا) و `{{OutputBase}}` (مسیر پایهٔ فایل موقت، بدون پسوند) استفاده کنند. نام‌های قدیمی‌تر `{{MediaPath}}`، `{{MediaUrl}}`، `{{MediaType}}` و `{{MediaDir}}` همچنان نام‌های مستعار سازگاری منسوخ هستند.

  </Tab>
</Tabs>

### اعتبارنامه‌های ارائه‌دهنده

درک رسانه توسط ارائه‌دهنده از همان فرایند حل احراز هویت فراخوانی‌های عادی مدل استفاده می‌کند: نمایه‌های احراز هویت، متغیرهای محیطی و سپس `models.providers.<providerId>.apiKey`. ورودی‌های `tools.media.models[]` فیلد درون‌خطی `apiKey` را نمی‌پذیرند.

```json5
{
  models: {
    providers: {
      openai: { apiKey: "<OPENAI_API_KEY>" },
      moonshot: { apiKey: "<MOONSHOT_API_KEY>" },
    },
  },
}
```

برای نمایه‌ها، متغیرهای محیطی و URLهای پایهٔ سفارشی، به [ابزارها و ارائه‌دهندگان سفارشی](/fa/gateway/config-tools) مراجعه کنید.

## قواعد و رفتار

- رسانه‌ای که اندازه‌اش از `maxBytes` بیشتر باشد، برای آن مدل نادیده گرفته می‌شود و مدل بعدی امتحان می‌شود.
- فایل‌های صوتی کوچک‌تر از 1024 بایت، خالی/خراب در نظر گرفته می‌شوند و پیش از رونویسی نادیده گرفته می‌شوند؛ در عوض، عامل یک رونوشت جایگزین قطعی دریافت می‌کند.
- اگر مدل اصلی فعال تصویر از قبل به‌صورت بومی از بینایی پشتیبانی کند، OpenClaw بلوک خلاصهٔ `[Image]` را نادیده می‌گیرد و تصویر اصلی را مستقیماً به مدل می‌دهد. MiniMax یک استثنا است: `minimax`، `minimax-cn`، `minimax-portal` و `minimax-portal-cn` همیشه درک تصویر را از طریق ارائه‌دهندهٔ رسانهٔ `MiniMax-VL-01` تحت مالکیت Plugin مسیریابی می‌کنند، حتی اگر فرادادهٔ قدیمی گفت‌وگوی MiniMax M2.x مدعی ورودی تصویر باشد (فقط `MiniMax-M3` و نسخه‌های بعدی به‌عنوان مدل‌های دارای قابلیت بینایی بومی در نظر گرفته می‌شوند).
- اگر مدل اصلی Gateway/WebChat فقط متنی باشد، پیوست‌های تصویر به‌شکل ارجاع‌های برون‌سپاری‌شدهٔ `media://inbound/*` حفظ می‌شوند تا ابزارهای تصویر/PDF یا یک مدل تصویر پیکربندی‌شده همچنان بتوانند آن‌ها را بررسی کنند و پیوست از دست نرود.
- مقدار صریح `openclaw infer image describe --file <path> --model <provider/model>` (نام مستعار: `openclaw capability image describe`) آن ارائه‌دهنده/مدل دارای قابلیت تصویر را مستقیماً اجرا می‌کند؛ از جمله ارجاع‌های Ollama مانند `ollama/qwen2.5vl:7b`، هنگامی که یک مدل منطبق دارای قابلیت تصویر در `models.providers.ollama.models[]` پیکربندی شده باشد.
- اگر `<capability>.enabled` برابر با `false` نباشد اما هیچ مدلی پیکربندی نشده باشد، OpenClaw هنگامی که ارائه‌دهندهٔ مدل پاسخ فعال از قابلیت موردنظر پشتیبانی کند، آن مدل را امتحان می‌کند.

### شناسایی خودکار (پیش‌فرض)

هنگامی که `tools.media.<capability>.enabled` برابر با `false` نباشد و هیچ مدلی پیکربندی نشده باشد، OpenClaw گزینه‌های زیر را به‌ترتیب امتحان می‌کند و در نخستین گزینهٔ عملی متوقف می‌شود:

<Steps>
  <Step title="مدل تصویر پیکربندی‌شده (فقط تصویر)">
    ارجاع‌های اصلی/جایگزین `agents.defaults.imageModel`، مگر اینکه مدل پاسخ فعال از قبل به‌صورت بومی از بینایی پشتیبانی کند. ارجاع‌های `provider/model` ترجیح داده می‌شوند؛ ارجاع‌های بدون پیشوند فقط زمانی از روی ورودی‌های مدل ارائه‌دهندهٔ دارای قابلیت تصویر پیکربندی‌شده واجد شرایط می‌شوند که تطبیق یکتا باشد.
  </Step>
  <Step title="مدل پاسخ فعال">
    مدل پاسخ فعال، هنگامی که ارائه‌دهندهٔ آن از قابلیت موردنظر پشتیبانی کند.
  </Step>
  <Step title="احراز هویت ارائه‌دهنده (فقط صوت، پیش از CLIهای محلی)">
    ورودی‌های پیکربندی‌شدهٔ `models.providers.*` که از صوت پشتیبانی می‌کنند، پیش از CLIهای محلی امتحان می‌شوند. ترتیب اولویت ارائه‌دهندگان همراه (تساوی‌ها بر اساس شناسهٔ ارائه‌دهنده و به‌ترتیب الفبا شکسته می‌شوند): Groq/OpenAI &rarr; xAI &rarr; Deepgram &rarr; OpenRouter &rarr; Google/SenseAudio &rarr; Deepinfra/ElevenLabs &rarr; Mistral.
  </Step>
  <Step title="CLIهای محلی (فقط صوت)">
    فایل‌های اجرایی محلی آماده به یک فهرست بازگشت مرتب‌شده تبدیل می‌شوند:
    - `whisper-cli` فقط پس از آنکه یک فراخوانی مدل پیشین در فرایند جاری Metal یا CUDA را مشاهده کرده باشد، در جایگاه نخست قرار می‌گیرد
    - `sherpa-onnx-offline` با پیش‌فرض CPU (نیازمند `SHERPA_ONNX_MODEL_DIR` با `tokens.txt`/`encoder.onnx`/`decoder.onnx`/`joiner.onnx`)
    - `whisper-cli` هنگامی که شتاب‌دهی صرفاً در زمان ساخت پشتیبانی می‌شود یا مشاهده نشده است
    - `parakeet-mlx` روی Apple Silicon (دارای قابلیت MLX، استفاده از دستگاه مشاهده نشده است)
    - `whisper` (CLI پایتون؛ به‌طور پیش‌فرض از مدل `turbo` استفاده می‌کند و آن را خودکار بارگیری می‌کند)

    بررسی قابلیت پشتیبان ذخیرهٔ موقت می‌شود و مدلی را بارگذاری نمی‌کند. قابلیت زمان ساخت، پرچم‌های پشتیبان درخواستی و پشتیبانی که در یک فراخوانی واقعی مشاهده شده است، جدا از هم باقی می‌مانند. whisper.cpp شناسایی‌شده به‌طور خودکار گزارش‌های اجرای مدل را فعال نگه می‌دارد تا خط پشتیبان انتخاب‌شده در بالادست ثبت شود. ورودی‌های صریح CLI ترتیب پیکربندی‌شده، پرچم‌های پشتیبان و پرچم‌های خروجی خود را حفظ می‌کنند.

  </Step>
  <Step title="احراز هویت ارائه‌دهنده (تصویر/ویدئو)">
    ورودی‌های پیکربندی‌شدهٔ `models.providers.*` که از قابلیت موردنظر پشتیبانی می‌کنند، پیش از ترتیب بازگشت همراه امتحان می‌شوند. ارائه‌دهندگان پیکربندی مختص تصویر که مدلی دارای قابلیت تصویر دارند، حتی اگر Plugin همراه فروشنده نباشند، به‌طور خودکار برای درک رسانه ثبت می‌شوند.

    ترتیب اولویت ارائه‌دهندگان همراه (تساوی‌ها بر اساس شناسهٔ ارائه‌دهنده و به‌ترتیب الفبا شکسته می‌شوند):
    - تصویر: Anthropic/OpenAI &rarr; Google &rarr; MiniMax &rarr; Deepinfra &rarr; MiniMax Portal &rarr; Z.AI
    - ویدئو: Google &rarr; Qwen &rarr; Moonshot

  </Step>
  <Step title="CLI ‏Antigravity (فقط تصویر/ویدئو)">
    نخستین فایل اجرایی نصب‌شدهٔ `agy` یا `antigravity` (قابل بازنویسی با `OPENCLAW_ANTIGRAVITY_CLI`) که در برابر دایرکتوری رسانه در محیط ایزوله اجرا می‌شود.
  </Step>
</Steps>

برای غیرفعال‌کردن شناسایی خودکار یک قابلیت:

```json5
{
  tools: {
    media: {
      audio: {
        enabled: false,
      },
    },
  },
}
```

<Note>
شناسایی فایل اجرایی در macOS/Linux/Windows به‌صورت بهترین تلاش انجام می‌شود؛ اطمینان حاصل کنید که CLI در `PATH` قرار دارد (`~` گسترش می‌یابد)، یا یک ورودی مدل CLI صریح با مسیر کامل فرمان تنظیم کنید.
</Note>

### پشتیبانی از پراکسی (فراخوانی‌های ارائه‌دهندهٔ صوت/ویدئو)

درک مبتنی بر ارائه‌دهنده برای **صوت** و **ویدئو** از متغیرهای محیطی استاندارد پراکسی خروجی، از جمله قواعد دورزدن `NO_PROXY`/`no_proxy`، پیروی می‌کند: `HTTPS_PROXY`، `HTTP_PROXY`، `ALL_PROXY`، `https_proxy`، `http_proxy`، `all_proxy`. متغیرهای حروف کوچک بر حروف بزرگ اولویت دارند. اگر هیچ‌کدام تنظیم نشده باشند، درک رسانه از خروج مستقیم استفاده می‌کند؛ اگر مقدار پراکسی بدشکل باشد، OpenClaw هشداری ثبت می‌کند و به دریافت مستقیم بازمی‌گردد. درک تصویر از این مسیر پراکسی عبور نمی‌کند.

## قابلیت‌ها

برای محدودکردن یک ورودی `models[]` به انواع مشخصی از رسانه، `capabilities` را روی آن تنظیم کنید. برای فهرست‌های مشترک، OpenClaw پیش‌فرض‌ها را برای هر ارائه‌دهندهٔ همراه استنتاج می‌کند:

| ارائه‌دهنده                                                                 | قابلیت‌ها          |
| ------------------------------------------------------------------------ | --------------------- |
| `openai`، `anthropic`، `minimax`                                         | تصویر                 |
| `minimax-portal`                                                         | تصویر                 |
| `moonshot`                                                               | تصویر + ویدئو         |
| `openrouter`                                                             | تصویر + صدا         |
| `google` (Gemini API)                                                    | تصویر + صدا + ویدئو |
| `qwen`                                                                   | تصویر + ویدئو         |
| `deepinfra`                                                              | تصویر + صدا         |
| `mistral`                                                                | صدا                 |
| `zai`                                                                    | تصویر                 |
| `groq`، `xai`، `deepgram`، `senseaudio`                                  | صدا                 |
| هر کاتالوگ `models.providers.<id>.models[]` دارای مدلی با قابلیت پردازش تصویر | تصویر                 |

برای ورودی‌های CLI، مقدار `capabilities` را صریحاً تنظیم کنید تا از تطبیق‌های غیرمنتظره جلوگیری شود؛ اگر حذف شود، ورودی برای هر فهرست قابلیتی که در آن ظاهر می‌شود واجد شرایط است.

## ماتریس پشتیبانی ارائه‌دهندگان

| قابلیت | ارائه‌دهندگان                                                                                                                                               | توضیحات                                                                                                                                                                                   |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| تصویر      | Anthropic، Codex app-server، Deepinfra، Google، MiniMax، MiniMax Portal، Moonshot، OpenAI، OpenAI Codex OAuth، OpenRouter، Qwen، Z.AI، ارائه‌دهندگان پیکربندی | Pluginهای عرضه‌کنندگان پشتیبانی از تصویر را ثبت می‌کنند؛ `openai/*` می‌تواند از مسیریابی کلید API یا Codex OAuth استفاده کند؛ `codex/*` از یک نوبت محدود Codex app-server استفاده می‌کند؛ ارائه‌دهندگان پیکربندی دارای قابلیت تصویر به‌طور خودکار ثبت می‌شوند. |
| صدا      | Deepgram، Deepinfra، ElevenLabs، Google، Groq، Mistral، OpenAI، OpenRouter، SenseAudio، xAI                                                             | رونویسی ارائه‌دهنده (Whisper/Groq/xAI/Deepgram/OpenRouter STT/Gemini/SenseAudio/Scribe/Voxtral).                                                                                     |
| ویدئو      | Google، Moonshot، Qwen                                                                                                                                  | درک ویدئو توسط ارائه‌دهنده از طریق Pluginهای عرضه‌کنندگان؛ درک ویدئوی Qwen از نقاط پایانی استاندارد DashScope استفاده می‌کند.                                                                        |

<Note>
**نکته MiniMax**: درک تصویر در `minimax`، `minimax-cn`، `minimax-portal` و `minimax-portal-cn` همیشه از ارائه‌دهنده رسانه `MiniMax-VL-01` تحت مالکیت Plugin تأمین می‌شود، حتی اگر فراداده قدیمی گفت‌وگوی MiniMax M2.x ادعای ورودی تصویر داشته باشد.
</Note>

## راهنمای انتخاب مدل

- هنگامی که کیفیت و ایمنی اهمیت دارد، برای هر قابلیت رسانه‌ای قوی‌ترین مدل نسل فعلی را ترجیح دهید.
- برای عامل‌های مجهز به ابزار که ورودی‌های نامطمئن را مدیریت می‌کنند، از مدل‌های رسانه‌ای قدیمی‌تر یا ضعیف‌تر اجتناب کنید.
- برای دسترس‌پذیری، دست‌کم یک مدل جایگزین برای هر قابلیت نگه دارید (مدل باکیفیت + مدل سریع‌تر/ارزان‌تر).
- مدل‌های جایگزین CLI (`whisper-cli`، `whisper`، `gemini`) هنگام در دسترس نبودن APIهای ارائه‌دهنده کمک می‌کنند.
- حالت‌های شناخته‌شده خروجی فایل مرجع قطعی هستند: فایل رونویسی استنباط‌شده خالی یا مفقود، به‌جای بازگشت به خروجی پیشرفت CLI، هیچ رونویسی‌ای تولید نمی‌کند.
- `parakeet-mlx`: از `--output-format txt` (یا `all`) همراه با `--output-dir` و الگوی خروجی پیش‌فرض `{filename}` استفاده کنید. متغیرهای محیطی بالادستی `PARAKEET_OUTPUT_FORMAT` و `PARAKEET_OUTPUT_TEMPLATE` نیز رعایت می‌شوند. OpenClaw مقدار `<output-dir>/<media-basename>.txt` را می‌خواند؛ قالب پیش‌فرض `srt`، قالب‌های دیگر و الگوهای خروجی سفارشی همچنان از stdout استفاده می‌کنند.

## خط‌مشی پیوست‌ها

`attachments` مخصوص هر قابلیت تعیین می‌کند کدام پیوست‌ها پردازش شوند:

<ParamField path="mode" type='"first" | "all"' default="first">
  فقط نخستین پیوست انتخاب‌شده یا همه آن‌ها را پردازش می‌کند.
</ParamField>
<ParamField path="maxAttachments" type="number" default="1">
  تعداد موارد پردازش‌شده را محدود می‌کند.
</ParamField>
<ParamField path="prefer" type='"first" | "last" | "path" | "url"'>
  اولویت انتخاب میان پیوست‌های نامزد.
</ParamField>

هنگامی که `mode: "all"`، خروجی‌ها با `[Image 1/2]`، `[Audio 2/2]` و موارد مشابه برچسب‌گذاری می‌شوند.

### استخراج پیوست فایل

- متن استخراج‌شده فایل، پیش از افزوده‌شدن به پرامپت رسانه، به‌عنوان محتوای خارجی نامطمئن محصور می‌شود و از نشانگرهای مرزی مانند `<<<EXTERNAL_UNTRUSTED_CONTENT id="...">>>` / `<<<END_EXTERNAL_UNTRUSTED_CONTENT id="...">>>` به‌همراه یک خط فراداده `Source: External` استفاده می‌کند.
- این مسیر عمداً بنر طولانی `SECURITY NOTICE:` را حذف می‌کند تا پرامپت رسانه کوتاه بماند؛ نشانگرهای مرزی و فراداده همچنان اعمال می‌شوند.
- فایلی که هیچ متن قابل‌استخراجی ندارد، `[No extractable text]` را دریافت می‌کند.
- اگر یک PDF به تصاویر رندرشده صفحات بازگردد، OpenClaw آن تصاویر را به مدل‌های پاسخ‌گوی دارای قابلیت بینایی ارسال می‌کند و جای‌نگهدار `[PDF content rendered to images]` را در بلوک فایل نگه می‌دارد.

## نمونه‌های پیکربندی

<Tabs>
  <Tab title="مدل‌های مشترک + بازنویسی‌ها">
    ```json5
    {
      tools: {
        media: {
          models: [
            { provider: "openai", model: "gpt-5.6-sol", capabilities: ["image"] },
            {
              provider: "google",
              model: "gemini-3-flash-preview",
              capabilities: ["image", "audio", "video"],
            },
            {
              type: "cli",
              command: "gemini",
              args: [
                "-m",
                "gemini-3-flash",
                "--allowed-tools",
                "read_file",
                "رسانه موجود در {{AttachmentPath}} را بخوانید و آن را در <= {{MaxChars}} نویسه توصیف کنید.",
              ],
              capabilities: ["image", "video"],
            },
          ],
          audio: {
            attachments: { mode: "all", maxAttachments: 2 },
          },
          video: {
            maxChars: 500,
          },
        },
      },
    }
    ```
  </Tab>
  <Tab title="فقط صدا + ویدئو">
    ```json5
    {
      tools: {
        media: {
          audio: {
            enabled: true,
            models: [
              { provider: "openai", model: "gpt-4o-mini-transcribe" },
              {
                type: "cli",
                command: "whisper",
                args: ["--model", "base", "{{AttachmentPath}}"],
              },
            ],
          },
          video: {
            enabled: true,
            maxChars: 500,
            models: [
              { provider: "google", model: "gemini-3-flash-preview" },
              {
                type: "cli",
                command: "gemini",
                args: [
                  "-m",
                  "gemini-3-flash",
                  "--allowed-tools",
                  "read_file",
                  "رسانه موجود در {{AttachmentPath}} را بخوانید و آن را در <= {{MaxChars}} نویسه توصیف کنید.",
                ],
              },
            ],
          },
        },
      },
    }
    ```
  </Tab>
  <Tab title="فقط تصویر">
    ```json5
    {
      tools: {
        media: {
          image: {
            enabled: true,
            maxBytes: 10485760,
            maxChars: 500,
            models: [
              { provider: "openai", model: "gpt-5.6-sol" },
              { provider: "anthropic", model: "claude-opus-5" },
              {
                type: "cli",
                command: "gemini",
                args: [
                  "-m",
                  "gemini-3-flash",
                  "--allowed-tools",
                  "read_file",
                  "رسانه موجود در {{AttachmentPath}} را بخوانید و آن را در <= {{MaxChars}} نویسه توصیف کنید.",
                ],
              },
            ],
          },
        },
      },
    }
    ```
  </Tab>
  <Tab title="ورودی چندوجهی واحد">
    ```json5
    {
      tools: {
        media: {
          image: {
            models: [
              {
                provider: "google",
                model: "gemini-3.1-pro-preview",
                capabilities: ["image", "video", "audio"],
              },
            ],
          },
          audio: {
            models: [
              {
                provider: "google",
                model: "gemini-3.1-pro-preview",
                capabilities: ["image", "video", "audio"],
              },
            ],
          },
          video: {
            models: [
              {
                provider: "google",
                model: "gemini-3.1-pro-preview",
                capabilities: ["image", "video", "audio"],
              },
            ],
          },
        },
      },
    }
    ```
  </Tab>
</Tabs>

## خروجی وضعیت

هنگام اجرای درک رسانه، `/status` شامل یک خط خلاصه برای هر قابلیت است:

```
📎 رسانه: تصویر موفق (openai/gpt-5.6-sol) · صدا موفق (whisper-cli مشاهده‌شده=metal)
```

برای فهرست‌برداری پیش از اجرا، `openclaw capability audio providers` را اجرا کنید. ردیف‌های محلی، گزینه جایگزین برنده محلی را جدا از انتخاب سراسری ارائه‌دهنده، آمادگی و فیلدهای مجزای بک‌اند دارای قابلیت/درخواستی/مشاهده‌شده نشان می‌دهند. همین انتخاب محلی به‌صورت یک یافته اطلاعاتی doctor نیز در دسترس است:

```bash
openclaw doctor --lint --only core/doctor/local-audio-acceleration --severity-min info
```

## نکات

- درک به‌صورت بهترین تلاش انجام می‌شود. خطاها پاسخ‌ها را مسدود نمی‌کنند.
- حتی وقتی درک غیرفعال است، پیوست‌ها همچنان به مدل‌ها ارسال می‌شوند.
- از `scope` برای محدودکردن محل اجرای درک استفاده کنید (برای مثال، فقط پیام‌های مستقیم).

## مطالب مرتبط

- [پیکربندی](/fa/gateway/configuration)
- [پشتیبانی از تصویر و رسانه](/fa/nodes/images)
