Nodes and media

การทำความเข้าใจสื่อ

OpenClaw สามารถสรุปสื่อขาเข้า (รูปภาพ/เสียง/วิดีโอ) ก่อนที่ไปป์ไลน์การตอบกลับจะทำงาน เพื่อให้การแยกวิเคราะห์คำสั่งและการกำหนดเส้นทางทำงานกับข้อความสั้นแทนไบต์ดิบ ระบบทำความเข้าใจจะตรวจหาเครื่องมือภายในเครื่องหรือคีย์ของผู้ให้บริการโดยอัตโนมัติ หรือคุณสามารถกำหนดค่าโมเดลอย่างชัดเจนได้ สื่อต้นฉบับจะถูกส่งให้โมเดลตามปกติเสมอ เมื่อการทำความเข้าใจล้มเหลวหรือถูกปิดใช้งาน โฟลว์การตอบกลับจะดำเนินต่อโดยไม่มีการเปลี่ยนแปลง

Plugin ของผู้จำหน่ายจะลงทะเบียนข้อมูลเมตาความสามารถ (ผู้ให้บริการรายใดรองรับสื่อประเภทใด โมเดลเริ่มต้น และลำดับความสำคัญ) ส่วนแกนหลักของ OpenClaw เป็นเจ้าของการกำหนดค่า tools.media ที่ใช้ร่วมกัน ลำดับการสำรอง และการผสานรวมกับไปป์ไลน์การตอบกลับ

วิธีการทำงาน

  • รวบรวมไฟล์แนบ

    รวบรวมไฟล์แนบขาเข้า (MediaPaths, MediaUrls, MediaTypes)

  • เลือกตามแต่ละความสามารถ

    สำหรับแต่ละความสามารถที่เปิดใช้งาน (รูปภาพ/เสียง/วิดีโอ) ให้เลือกไฟล์แนบตามนโยบาย attachments (ค่าเริ่มต้น: เฉพาะไฟล์แนบแรก)

  • เลือกโมเดล

    เลือกรายการโมเดลแรกที่มีสิทธิ์ใช้งาน (ขนาด + ความสามารถ + มีการยืนยันตัวตนพร้อมใช้งาน)

  • ใช้ตัวสำรองเมื่อล้มเหลว

    หากโมเดลเกิดข้อผิดพลาด หมดเวลา หรือสื่อมีขนาดเกิน maxBytes ให้ลองรายการถัดไป

  • นำผลลัพธ์ไปใช้เมื่อสำเร็จ

    Body จะกลายเป็นบล็อก [Image], [Audio] หรือ [Video] เสียงจะตั้งค่า {{Transcript}} ด้วย การแยกวิเคราะห์คำสั่งจะใช้ข้อความคำบรรยายเมื่อมี มิฉะนั้นจะใช้ข้อความถอดเสียง คำบรรยายจะยังคงอยู่ในบล็อกในรูปแบบ User text:

  • การกำหนดค่า

    tools.media เก็บรายการโมเดลที่ใช้ร่วมกัน รวมถึงค่าที่เขียนทับแยกตามความสามารถ:

    json5
    {  tools: {    media: {      concurrency: 2, // max concurrent capability runs (default)      models: [/* shared list, gate with capabilities */],      image: {/* optional overrides */},      audio: {        /* optional overrides */        echoTranscript: true,        echoFormat: '📝 "{transcript}"',      },      video: {/* optional overrides */},    },  },}

    คีย์แยกตามความสามารถ (image/audio/video):

    คีย์ ชนิด ค่าเริ่มต้น หมายเหตุ
    enabled boolean อัตโนมัติ (false จะปิดใช้งาน) ตั้งเป็น false เพื่อปิดการตรวจหาอัตโนมัติสำหรับความสามารถนี้
    models อาร์เรย์ ไม่มี มีลำดับความสำคัญก่อนรายการ tools.media.models ที่ใช้ร่วมกัน
    prompt string "Describe the {media}." (+ คำแนะนำ maxChars) โดยค่าเริ่มต้นใช้กับรูปภาพ/วิดีโอเท่านั้น
    maxChars number 500 (รูปภาพ/วิดีโอ), ไม่ได้ตั้งค่า (เสียง) ผลลัพธ์จะถูกตัดหากโมเดลส่งคืนข้อความมากกว่านี้
    maxBytes number รูปภาพ 10485760, เสียง 20971520, วิดีโอ 52428800 สื่อที่มีขนาดเกินจะข้ามไปยังโมเดลถัดไป
    timeoutSeconds number 60 (รูปภาพ/เสียง), 120 (วิดีโอ)
    language string ไม่ได้ตั้งค่า คำใบ้ภาษาสำหรับการถอดเสียง
    baseUrl/headers/providerOptions/request - - ค่าที่เขียนทับคำขอของผู้ให้บริการ โปรดดู เครื่องมือและผู้ให้บริการแบบกำหนดเอง
    attachments ออบเจ็กต์ { mode: "first", maxAttachments: 1 } โปรดดู นโยบายไฟล์แนบ
    scope ออบเจ็กต์ ไม่ได้ตั้งค่า จำกัดตามช่องทาง/chatType/keyPrefix
    echoTranscript boolean false เฉพาะเสียง: ส่งข้อความถอดเสียงกลับไปยังแชตก่อนการประมวลผลของเอเจนต์
    echoFormat string '📝 "{transcript}"' เฉพาะเสียง: ตัวแทนค่า {transcript}

    ตัวเลือกเฉพาะ Deepgram ให้อยู่ภายใต้ providerOptions.deepgram (ฟิลด์ระดับบนสุด deepgram: { detectLanguage, punctuate, smartFormat } เลิกแนะนำให้ใช้แล้ว แต่ระบบยังคงอ่านอยู่)

    รายการโมเดล

    แต่ละรายการใน models[] เป็นรายการ ผู้ให้บริการ (ค่าเริ่มต้น) หรือรายการ CLI:

    รายการผู้ให้บริการ

    json5
    {  type: "provider", // default if omitted  provider: "openai",  model: "gpt-5.6-sol",  prompt: "Describe the image in <= 500 chars.",  maxChars: 500,  maxBytes: 10485760,  timeoutSeconds: 60,  capabilities: ["image"], // optional, for multi-modal shared entries  profile: "vision-profile",  preferredProfile: "vision-fallback",}

    รายการ CLI

    json5
    {  type: "cli",  command: "gemini",  args: [    "-m",    "gemini-3-flash",    "--allowed-tools",    "read_file",    "Read the media at {{MediaPath}} and describe it in <= {{MaxChars}} characters.",  ],  maxChars: 500,  maxBytes: 52428800,  timeoutSeconds: 120,  capabilities: ["video", "image"],}

    เทมเพลต CLI ยังสามารถใช้ {{MediaDir}} (ไดเรกทอรีที่มีไฟล์สื่อ), {{OutputDir}} (ไดเรกทอรีชั่วคราวที่สร้างขึ้นสำหรับการทำงานครั้งนี้) และ {{OutputBase}} (พาธฐานของไฟล์ชั่วคราวโดยไม่มีนามสกุล)

    ข้อมูลรับรองของผู้ให้บริการ

    การทำความเข้าใจสื่อผ่านผู้ให้บริการใช้การแก้ไขการยืนยันตัวตนแบบเดียวกับการเรียกโมเดลตามปกติ ได้แก่ โปรไฟล์การยืนยันตัวตน ตัวแปรสภาพแวดล้อม และจากนั้น models.providers.<providerId>.apiKey รายการ tools.media.*.models[] ไม่รองรับฟิลด์ apiKey แบบอินไลน์

    json5
    {  models: {    providers: {      openai: { apiKey: "&lt;OPENAI_API_KEY&gt;" },      moonshot: { apiKey: "&lt;MOONSHOT_API_KEY&gt;" },    },  },}

    โปรดดู เครื่องมือและผู้ให้บริการแบบกำหนดเอง สำหรับโปรไฟล์ ตัวแปรสภาพแวดล้อม และ URL ฐานแบบกำหนดเอง

    กฎและลักษณะการทำงาน

    • สื่อที่มีขนาดเกิน 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 จะลองตัวเลือกต่อไปนี้ตามลำดับและหยุดที่ตัวเลือกแรกที่ใช้งานได้:

  • โมเดลรูปภาพที่กำหนดค่าไว้ (เฉพาะรูปภาพ)

    การอ้างอิงหลัก/สำรองของ agents.defaults.imageModel เว้นแต่โมเดลตอบกลับที่ใช้งานอยู่จะรองรับการมองเห็นโดยกำเนิดอยู่แล้ว ควรใช้การอ้างอิงแบบ provider/model การอ้างอิงแบบไม่มีชื่อผู้ให้บริการจะถูกเติมคุณสมบัติจากรายการโมเดลผู้ให้บริการที่รองรับรูปภาพและกำหนดค่าไว้ เฉพาะเมื่อพบรายการที่ตรงกันเพียงรายการเดียว

  • โมเดลตอบกลับที่ใช้งานอยู่

    โมเดลตอบกลับที่ใช้งานอยู่ เมื่อผู้ให้บริการของโมเดลรองรับความสามารถดังกล่าว

  • การยืนยันตัวตนของผู้ให้บริการ (เฉพาะเสียง ก่อน CLI ภายในเครื่อง)

    รายการ models.providers.* ที่กำหนดค่าไว้และรองรับเสียงจะถูกลองก่อน CLI ภายในเครื่อง ลำดับความสำคัญของผู้ให้บริการที่รวมมาให้ (กรณีลำดับเท่ากันจะเรียงตามตัวอักษรของรหัสผู้ให้บริการ): Groq/OpenAI → xAI → Deepgram → OpenRouter → Google/SenseAudio → Deepinfra/ElevenLabs → Mistral

  • 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 ของ Python ใช้โมเดล turbo เป็นค่าเริ่มต้นและดาวน์โหลดโดยอัตโนมัติ)

    การตรวจสอบความสามารถของแบ็กเอนด์จะถูกแคชและไม่โหลดโมเดล ความสามารถจากการสร้าง แฟล็กแบ็กเอนด์ที่ร้องขอ และแบ็กเอนด์ที่ตรวจพบจากการเรียกใช้จริง จะยังคงแยกจากกัน whisper.cpp ที่ตรวจพบโดยอัตโนมัติจะเปิดใช้บันทึกการทำงานของโมเดลไว้ เพื่อให้สามารถบันทึกบรรทัดแบ็กเอนด์ที่ต้นทางเลือกไว้ได้ รายการ CLI ที่กำหนดไว้อย่างชัดเจนจะคงลำดับ แฟล็กแบ็กเอนด์ และแฟล็กเอาต์พุตตามที่กำหนดค่าไว้

  • การยืนยันตัวตนของผู้ให้บริการ (รูปภาพ/วิดีโอ)

    รายการ models.providers.* ที่กำหนดค่าไว้และรองรับความสามารถดังกล่าวจะถูกลองก่อนลำดับตัวสำรองที่รวมมาให้ ผู้ให้บริการในการกำหนดค่าที่รองรับเฉพาะรูปภาพและมีโมเดลที่รองรับรูปภาพ จะลงทะเบียนโดยอัตโนมัติสำหรับการทำความเข้าใจสื่อ แม้จะไม่ใช่ Plugin ของผู้จำหน่ายที่รวมมาให้ก็ตาม

    ลำดับความสำคัญของผู้ให้บริการที่รวมมาให้ (กรณีลำดับเท่ากันจะเรียงตามตัวอักษรของรหัสผู้ให้บริการ):

    • รูปภาพ: Anthropic/OpenAI → Google → MiniMax → Deepinfra → MiniMax Portal → Z.AI
    • วิดีโอ: Google → Qwen → Moonshot
  • Antigravity CLI (เฉพาะรูปภาพ/วิดีโอ)

    ไบนารี agy หรือ antigravity ตัวแรกที่ติดตั้งอยู่ (เขียนทับได้ด้วย OPENCLAW_ANTIGRAVITY_CLI) โดยทำงานในแซนด์บ็อกซ์ที่จำกัดอยู่ภายในไดเรกทอรีของสื่อ

  • หากต้องการปิดการตรวจหาอัตโนมัติสำหรับความสามารถหนึ่ง:

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

    การรองรับพร็อกซี (การเรียกผู้ให้บริการสำหรับเสียง/วิดีโอ)

    การทำความเข้าใจ เสียง และ วิดีโอ ผ่านผู้ให้บริการรองรับตัวแปรสภาพแวดล้อมพร็อกซีขาออกมาตรฐาน รวมถึงกฎข้ามพร็อกซี NO_PROXY/no_proxy: HTTPS_PROXY, HTTP_PROXY, ALL_PROXY, https_proxy, http_proxy, all_proxy ตัวแปรตัวพิมพ์เล็กมีลำดับความสำคัญเหนือตัวพิมพ์ใหญ่ หากไม่ได้ตั้งค่าตัวแปรใด การทำความเข้าใจสื่อจะเชื่อมต่อออกโดยตรง หากค่าพร็อกซีมีรูปแบบไม่ถูกต้อง OpenClaw จะบันทึกคำเตือนและกลับไปดึงข้อมูลโดยตรง การทำความเข้าใจรูปภาพจะไม่ผ่านเส้นทางพร็อกซีนี้

    ความสามารถ

    ตั้งค่า capabilities ในรายการ models[] เพื่อจำกัดให้ใช้กับสื่อบางประเภท สำหรับรายการที่ใช้ร่วมกัน 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

    แนวทางการเลือกโมเดล

    • เลือกใช้โมเดลรุ่นปัจจุบันที่มีประสิทธิภาพสูงสุดสำหรับความสามารถด้านสื่อแต่ละประเภท เมื่อคุณภาพและความปลอดภัยมีความสำคัญ
    • สำหรับเอเจนต์ที่เปิดใช้เครื่องมือและจัดการอินพุตที่ไม่น่าเชื่อถือ ให้หลีกเลี่ยงโมเดลสื่อรุ่นเก่าหรือที่มีประสิทธิภาพต่ำกว่า
    • เก็บโมเดลสำรองไว้อย่างน้อยหนึ่งรายการต่อความสามารถเพื่อให้พร้อมใช้งาน (โมเดลคุณภาพสูง + โมเดลที่เร็วกว่า/ราคาถูกกว่า)
    • ตัวสำรอง 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 แยกตามความสามารถจะควบคุมว่าจะประมวลผลไฟล์แนบใดบ้าง:

    mode"first" | "all"default: first

    ประมวลผลเฉพาะไฟล์แนบแรกที่เลือก หรือประมวลผลทั้งหมด

    maxAttachmentsnumberdefault: 1

    จำกัดจำนวนไฟล์ที่ประมวลผล

    prefer"first" | "last" | "path" | "url"

    ค่ากำหนดในการเลือกจากไฟล์แนบที่เป็นตัวเลือก

    เมื่อใช้ mode: "all" เอาต์พุตจะมีป้ายกำกับ [รูปภาพ 1/2], [เสียง 2/2] เป็นต้น

    การแยกเนื้อหาจากไฟล์แนบ

    • ข้อความที่แยกออกจากไฟล์จะถูกครอบเป็นเนื้อหาภายนอกที่ไม่น่าเชื่อถือก่อนเพิ่มต่อท้ายพรอมต์สื่อ โดยใช้เครื่องหมายขอบเขต เช่น <<&lt;EXTERNAL_UNTRUSTED_CONTENT id=&quot;...&quot;&gt;>> / <<&lt;END_EXTERNAL_UNTRUSTED_CONTENT id=&quot;...&quot;&gt;>> พร้อมบรรทัดข้อมูลเมตา Source: External
    • เส้นทางนี้จงใจละเว้นแบนเนอร์ SECURITY NOTICE: แบบยาวเพื่อให้พรอมต์สื่อสั้นลง แต่ยังคงใช้เครื่องหมายขอบเขตและข้อมูลเมตา
    • ไฟล์ที่ไม่มีข้อความซึ่งแยกออกมาได้จะได้รับข้อความ [ไม่มีข้อความที่แยกออกมาได้]
    • หาก PDF เปลี่ยนไปใช้รูปภาพหน้าที่เรนเดอร์เป็นทางเลือกสำรอง OpenClaw จะส่งต่อรูปภาพเหล่านั้นไปยังโมเดลตอบกลับที่รองรับการมองเห็น และคงข้อความตัวแทน [เนื้อหา PDF ถูกเรนเดอร์เป็นรูปภาพ] ไว้ในบล็อกไฟล์

    ตัวอย่างการกำหนดค่า

    โมเดลที่ใช้ร่วมกัน + การเขียนทับ

    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",            "Read the media at {{MediaPath}} and describe it in <= {{MaxChars}} characters.",          ],          capabilities: ["image", "video"],        },      ],      audio: {        attachments: { mode: "all", maxAttachments: 2 },      },      video: {        maxChars: 500,      },    },  },}

    เฉพาะเสียง + วิดีโอ

    json5
    {  tools: {    media: {      audio: {        enabled: true,        models: [          { provider: "openai", model: "gpt-4o-mini-transcribe" },          {            type: "cli",            command: "whisper",            args: ["--model", "base", "{{MediaPath}}"],          },        ],      },      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",              "Read the media at {{MediaPath}} and describe it in <= {{MaxChars}} characters.",            ],          },        ],      },    },  },}

    เฉพาะรูปภาพ

    json5
    {  tools: {    media: {      image: {        enabled: true,        maxBytes: 10485760,        maxChars: 500,        models: [          { provider: "openai", model: "gpt-5.6-sol" },          { provider: "anthropic", model: "claude-opus-4-8" },          {            type: "cli",            command: "gemini",            args: [              "-m",              "gemini-3-flash",              "--allowed-tools",              "read_file",              "Read the media at {{MediaPath}} and describe it in <= {{MaxChars}} characters.",            ],          },        ],      },    },  },}

    รายการเดียวแบบหลายสื่อ

    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"],          },        ],      },    },  },}

    เอาต์พุตสถานะ

    เมื่อการทำความเข้าใจสื่อทำงาน /status จะมีบรรทัดสรุปแยกตามความสามารถ:

    Code
    📎 Media: image ok (openai/gpt-5.6-sol) · audio ok (whisper-cli observed=metal)

    สำหรับการตรวจสอบรายการก่อนเริ่มทำงาน ให้เรียกใช้ openclaw capability audio providers แถวภายในเครื่องจะแสดงตัวสำรองภายในเครื่องที่ได้รับเลือกแยกจากการเลือกผู้ให้บริการส่วนกลาง ความพร้อมใช้งาน และฟิลด์แบ็กเอนด์ที่รองรับ/ร้องขอ/ตรวจพบซึ่งแยกจากกัน การเลือกภายในเครื่องแบบเดียวกันนี้ยังแสดงเป็นผลการตรวจสอบเชิงข้อมูลของ doctor ได้ด้วย:

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

    หมายเหตุ

    • การทำความเข้าใจดำเนินการอย่างเต็มความสามารถโดยไม่รับประกันผลลัพธ์ ข้อผิดพลาดจะไม่ขัดขวางการตอบกลับ
    • ไฟล์แนบยังคงถูกส่งไปยังโมเดลแม้ปิดใช้งานการทำความเข้าใจ
    • ใช้ scope เพื่อจำกัดตำแหน่งที่การทำความเข้าใจทำงาน (ตัวอย่างเช่น เฉพาะข้อความส่วนตัว)

    เนื้อหาที่เกี่ยวข้อง

    Was this useful?
    On this page

    On this page