Providers

Google (Gemini)

Plugin Google ให้การเข้าถึงโมเดล Gemini ผ่าน Google AI Studio รวมถึงการสร้างรูปภาพ การทำความเข้าใจสื่อ (รูปภาพ/เสียง/วิดีโอ) การแปลงข้อความเป็นเสียงพูด และการค้นหาเว็บผ่าน Gemini Grounding

  • ผู้ให้บริการ: google
  • การยืนยันตัวตน: GEMINI_API_KEY หรือ GOOGLE_API_KEY
  • API: Google Gemini API
  • ตัวเลือกรันไทม์: agentRuntime.id: "google-gemini-cli" ใช้ OAuth ของ Gemini CLI ซ้ำ โดยยังคงการอ้างอิงโมเดลในรูปแบบมาตรฐานเป็น google/*

เริ่มต้นใช้งาน

เลือกวิธีการยืนยันตัวตนที่ต้องการและทำตามขั้นตอนการตั้งค่า

คีย์ API

เหมาะที่สุดสำหรับ: การเข้าถึง Gemini API แบบมาตรฐานผ่าน Google AI Studio

  • เรียกใช้การเริ่มต้นใช้งาน

    bash
    openclaw onboard --auth-choice gemini-api-key

    หรือส่งคีย์โดยตรง:

    bash
    openclaw onboard --non-interactive \  --mode local \  --auth-choice gemini-api-key \  --gemini-api-key "$GEMINI_API_KEY"
  • ตั้งค่าโมเดลเริ่มต้น

    json5
    {  agents: {    defaults: {      model: { primary: "google/gemini-3.1-pro-preview" },    },  },}
  • ตรวจสอบว่าโมเดลพร้อมใช้งาน

    bash
    openclaw models list --provider google
  • Gemini CLI (OAuth)

    เหมาะที่สุดสำหรับ: การใช้ข้อมูลเข้าสู่ระบบ Gemini CLI ที่มีอยู่ผ่าน PKCE OAuth ซ้ำ แทนการใช้คีย์ API แยกต่างหาก

  • ติดตั้ง Gemini CLI

    คำสั่ง gemini ในเครื่องต้องพร้อมใช้งานบน PATH

    bash
    # Homebrewbrew install gemini-cli # หรือ npmnpm install -g @google/gemini-cli

    OpenClaw รองรับทั้งการติดตั้งผ่าน Homebrew และการติดตั้ง npm แบบส่วนกลาง รวมถึง รูปแบบตำแหน่งติดตั้งทั่วไปของ Windows/npm

  • เข้าสู่ระบบผ่าน OAuth

    bash
    openclaw models auth login --provider google-gemini-cli --set-default
  • ตรวจสอบว่าโมเดลพร้อมใช้งาน

    bash
    openclaw models list --provider google
    • โมเดลเริ่มต้น: google/gemini-3.1-pro-preview
    • รันไทม์: google-gemini-cli
    • นามแฝง: gemini-cli

    รหัสโมเดล Gemini API ของ Gemini 3.1 Pro คือ gemini-3.1-pro-preview OpenClaw ยอมรับรูปแบบย่อ google/gemini-3.1-pro เป็นนามแฝงเพื่อความสะดวก และปรับให้เป็นรูปแบบมาตรฐานก่อนเรียกผู้ให้บริการ

    ตัวแปรสภาพแวดล้อม:

    • OPENCLAW_GEMINI_OAUTH_CLIENT_ID / GEMINI_CLI_OAUTH_CLIENT_ID
    • OPENCLAW_GEMINI_OAUTH_CLIENT_SECRET / GEMINI_CLI_OAUTH_CLIENT_SECRET

    การอ้างอิงโมเดล google-gemini-cli/* เป็นนามแฝงเพื่อความเข้ากันได้กับระบบเดิม การกำหนดค่าใหม่ ควรใช้การอ้างอิงโมเดล google/* ร่วมกับรันไทม์ google-gemini-cli เมื่อต้องการเรียกใช้ Gemini CLI ในเครื่อง

    ความสามารถ

    ความสามารถ รองรับ
    การเติมข้อความแชตให้สมบูรณ์ ใช่
    การสร้างรูปภาพ ใช่
    การสร้างเพลง ใช่
    การแปลงข้อความเป็นเสียงพูด ใช่
    เสียงแบบเรียลไทม์ ใช่ (Google Live API)
    การทำความเข้าใจรูปภาพ ใช่
    การถอดเสียง ใช่
    การทำความเข้าใจวิดีโอ ใช่
    การค้นหาเว็บ (Grounding) ใช่
    การคิด/การให้เหตุผล ใช่ (Gemini 2.5+ / Gemini 3+)
    โมเดล Gemma 4 ใช่

    การค้นหาเว็บ

    ผู้ให้บริการค้นหาเว็บ gemini ที่รวมมาให้ใช้การยึดโยงผลการค้นหากับ Google Search ของ Gemini กำหนดค่าคีย์สำหรับการค้นหาโดยเฉพาะภายใต้ plugins.entries.google.config.webSearch หรือให้ใช้ models.providers.google.apiKey ซ้ำต่อจาก GEMINI_API_KEY:

    json5
    {  plugins: {    entries: {      google: {        config: {          webSearch: {            apiKey: "AIza...", // ไม่จำเป็นหากตั้งค่า GEMINI_API_KEY หรือ models.providers.google.apiKey ไว้            baseUrl: "https://generativelanguage.googleapis.com/v1beta", // ใช้ models.providers.google.baseUrl เป็นค่าทดแทน            model: "gemini-2.5-flash",          },        },      },    },  },}

    ลำดับความสำคัญของข้อมูลประจำตัวคือ webSearch.apiKey ที่กำหนดไว้โดยเฉพาะ ตามด้วย GEMINI_API_KEY และ models.providers.google.apiKey ส่วน webSearch.baseUrl เป็นตัวเลือกเสริมและ มีไว้สำหรับพร็อกซีของผู้ดูแลระบบหรือปลายทาง Gemini API ที่เข้ากันได้ เมื่อไม่ระบุ การค้นหาเว็บด้วย Gemini จะใช้ models.providers.google.baseUrl ซ้ำ ดู การค้นหาด้วย Gemini สำหรับพฤติกรรมของเครื่องมือที่เฉพาะเจาะจงกับผู้ให้บริการ

    การสร้างรูปภาพ

    ผู้ให้บริการสร้างรูปภาพ google ที่รวมมาให้ใช้ google/gemini-3.1-flash-image-preview เป็นค่าเริ่มต้น

    • รองรับ google/gemini-3-pro-image-preview ด้วย
    • การสร้าง: สูงสุด 4 รูปภาพต่อคำขอ
    • โหมดแก้ไข: เปิดใช้งาน รองรับรูปภาพอินพุตสูงสุด 5 รูป
    • ตัวควบคุมเรขาคณิต: size, aspectRatio และ resolution

    หากต้องการใช้ Google เป็นผู้ให้บริการรูปภาพเริ่มต้น:

    json5
    {  agents: {    defaults: {      imageGenerationModel: {        primary: "google/gemini-3.1-flash-image-preview",      },    },  },}

    การสร้างวิดีโอ

    Plugin google ที่รวมมาให้ยังลงทะเบียนการสร้างวิดีโอผ่านเครื่องมือ video_generate ที่ใช้ร่วมกันด้วย

    • โมเดลวิดีโอเริ่มต้น: google/veo-3.1-fast-generate-preview
    • โหมด: ข้อความเป็นวิดีโอ รูปภาพเป็นวิดีโอ และลำดับงานที่ใช้วิดีโอเดียวเป็นข้อมูลอ้างอิง
    • รองรับ aspectRatio (16:9, 9:16) และ resolution (720P, 1080P); ปัจจุบัน Veo ยังไม่รองรับเอาต์พุตเสียง
    • ระยะเวลาที่รองรับ: 4, 6 หรือ 8 วินาที (ค่าอื่นจะถูกปรับเป็นค่าที่อนุญาตซึ่งใกล้ที่สุด)

    หากต้องการใช้ Google เป็นผู้ให้บริการวิดีโอเริ่มต้น:

    json5
    {  agents: {    defaults: {      videoGenerationModel: {        primary: "google/veo-3.1-fast-generate-preview",      },    },  },}

    การสร้างเพลง

    Plugin google ที่รวมมาให้ยังลงทะเบียนการสร้างเพลงผ่านเครื่องมือ music_generate ที่ใช้ร่วมกันด้วย

    • โมเดลเพลงเริ่มต้น: google/lyria-3-clip-preview
    • รองรับ google/lyria-3-pro-preview ด้วย
    • ตัวควบคุมพรอมต์: lyrics และ instrumental
    • รูปแบบเอาต์พุต: ค่าเริ่มต้นคือ mp3 และรองรับ wav บน google/lyria-3-pro-preview
    • อินพุตอ้างอิง: รูปภาพสูงสุด 10 รูป
    • การทำงานที่มีเซสชันรองรับจะแยกไปทำงานผ่านลำดับงาน/สถานะที่ใช้ร่วมกัน รวมถึง action: "status"

    หากต้องการใช้ Google เป็นผู้ให้บริการเพลงเริ่มต้น:

    json5
    {  agents: {    defaults: {      musicGenerationModel: {        primary: "google/lyria-3-clip-preview",      },    },  },}

    การแปลงข้อความเป็นเสียงพูด

    ผู้ให้บริการเสียงพูด google ที่รวมมาให้ใช้เส้นทาง TTS ของ Gemini API กับ gemini-3.1-flash-tts-preview

    • เสียงเริ่มต้น: Kore
    • การยืนยันตัวตน: messages.tts.providers.google.apiKey, models.providers.google.apiKey, GEMINI_API_KEY หรือ GOOGLE_API_KEY
    • เอาต์พุต: WAV สำหรับไฟล์แนบ TTS ทั่วไป, Opus สำหรับเป้าหมายข้อความเสียง และ PCM สำหรับการพูดคุย/โทรศัพท์
    • เอาต์พุตข้อความเสียง: PCM ของ Google จะถูกห่อหุ้มเป็น WAV และแปลงเป็น Opus 48 kHz ด้วย ffmpeg

    เส้นทาง Gemini TTS แบบกลุ่มของ Google ส่งคืนเสียงที่สร้างขึ้นในผลตอบกลับ generateContent ที่เสร็จสมบูรณ์ สำหรับการสนทนาด้วยเสียงที่มีเวลาแฝงต่ำที่สุด ให้ใช้ ผู้ให้บริการเสียงเรียลไทม์ของ Google ที่ทำงานบน Gemini Live API แทน TTS แบบกลุ่ม

    หากต้องการใช้ Google เป็นผู้ให้บริการ TTS เริ่มต้น:

    json5
    {  messages: {    tts: {      auto: "always",      provider: "google",      providers: {        google: {          model: "gemini-3.1-flash-tts-preview",          speakerVoice: "Kore",          audioProfile: "Speak professionally with a calm tone.",        },      },    },  },}

    Gemini API TTS ใช้พรอมต์ภาษาธรรมชาติสำหรับควบคุมรูปแบบ ตั้งค่า audioProfile เพื่อเติมพรอมต์รูปแบบที่ใช้ซ้ำได้ไว้หน้าข้อความที่จะอ่าน ตั้งค่า speakerName เมื่อข้อความพรอมต์ของคุณกล่าวถึงผู้พูดที่มีชื่อ

    Gemini API TTS ยังรองรับแท็กเสียงเชิงอารมณ์ในวงเล็บเหลี่ยมภายในข้อความ เช่น [whispers] หรือ [laughs] หากต้องการไม่ให้แท็กปรากฏในการตอบกลับแชต แต่ยังส่งไปยัง TTS ให้ใส่แท็กไว้ภายในบล็อก [[tts:text]]...[[/tts:text]]:

    text
    นี่คือข้อความตอบกลับที่ไม่มีแท็ก [[tts:text]][whispers] นี่คือเวอร์ชันเสียงพูด[[/tts:text]]

    เสียงแบบเรียลไทม์

    Plugin google ที่รวมมาให้ลงทะเบียนผู้ให้บริการเสียงแบบเรียลไทม์ที่ทำงานบน Gemini Live API สำหรับบริดจ์เสียงฝั่งแบ็กเอนด์ เช่น Voice Call และ Google Meet

    การตั้งค่า พาธการกำหนดค่า ค่าเริ่มต้น
    โมเดล plugins.entries.voice-call.config.realtime.providers.google.model gemini-3.1-flash-live-preview
    เสียง ...google.voice Kore
    อุณหภูมิ ...google.temperature (ไม่ได้ตั้งค่า)
    ความไวเริ่มต้นของ VAD ...google.startSensitivity (ไม่ได้ตั้งค่า)
    ความไวสิ้นสุดของ VAD ...google.endSensitivity (ไม่ได้ตั้งค่า)
    ระยะเวลาความเงียบ ...google.silenceDurationMs (ไม่ได้ตั้งค่า)
    การจัดการกิจกรรม ...google.activityHandling ค่าเริ่มต้นของ Google, start-of-activity-interrupts
    ความครอบคลุมของรอบสนทนา ...google.turnCoverage ค่าเริ่มต้นของ Google, audio-activity-and-all-video
    ปิดใช้งาน VAD อัตโนมัติ ...google.automaticActivityDetectionDisabled false
    การดำเนินเซสชันต่อ ...google.sessionResumption true
    การบีบอัดบริบท ...google.contextWindowCompression true
    คีย์ API ...google.apiKey หากไม่มีค่าจะใช้ models.providers.google.apiKey, GEMINI_API_KEY หรือ GOOGLE_API_KEY

    ตัวอย่างการกำหนดค่า Voice Call แบบเรียลไทม์:

    json5
    {  plugins: {    entries: {      "voice-call": {        enabled: true,        config: {          realtime: {            enabled: true,            provider: "google",            providers: {              google: {                model: "gemini-3.1-flash-live-preview",                speakerVoice: "Kore",                activityHandling: "start-of-activity-interrupts",                turnCoverage: "audio-activity-and-all-video",              },            },          },        },      },    },  },}

    สำหรับการตรวจสอบแบบสดโดยผู้ดูแล ให้เรียกใช้ OPENAI_API_KEY=... GEMINI_API_KEY=... node --import tsx scripts/dev/realtime-talk-live-smoke.ts การทดสอบเบื้องต้นนี้ครอบคลุมพาธแบ็กเอนด์/WebRTC ของ OpenAI ด้วย ส่วนของ Google จะสร้าง โทเค็น Live API แบบมีข้อจำกัดในรูปแบบเดียวกับที่ Talk ใน Control UI ใช้ เปิดปลายทาง WebSocket ของเบราว์เซอร์ ส่งเพย์โหลดการตั้งค่าเริ่มต้น และรอ setupComplete

    การกำหนดค่าขั้นสูง

    การนำแคช Gemini โดยตรงกลับมาใช้

    สำหรับการเรียกใช้ Gemini API โดยตรง (api: "google-generative-ai") OpenClaw จะส่งแฮนเดิล cachedContent ที่กำหนดค่าไว้ไปยังคำขอ Gemini

    • กำหนดค่าพารามิเตอร์รายโมเดลหรือส่วนกลางด้วย cachedContent หรือ cached_content แบบเดิม
    • พารามิเตอร์จากขอบเขตที่เฉพาะเจาะจงกว่า (ระดับโมเดลเหนือกว่าส่วนกลาง) จะมีผลเสมอ ภายในขอบเขตเดียวกัน หากตั้งค่าทั้งสองคีย์ cached_content จะมีผลเหนือกว่า ใช้เพียงคีย์เดียวต่อขอบเขตเพื่อหลีกเลี่ยงผลลัพธ์ที่ไม่คาดคิด
    • ค่าตัวอย่าง: cachedContents/prebuilt-context
    • การใช้งานเมื่อพบแคชของ Gemini จะถูกปรับให้อยู่ในรูป OpenClaw cacheRead จาก cachedContentTokenCount ของต้นทาง
    json5
    {  agents: {    defaults: {      models: {        "google/gemini-2.5-pro": {          params: {            cachedContent: "cachedContents/prebuilt-context",          },        },      },    },  },}
    หมายเหตุการใช้งาน Gemini CLI

    เมื่อใช้ผู้ให้บริการ OAuth google-gemini-cli OpenClaw จะใช้เอาต์พุต stream-json ของ Gemini CLI เป็นค่าเริ่มต้น และปรับข้อมูลการใช้งานจากเพย์โหลด stats สุดท้ายให้อยู่ในรูปแบบมาตรฐาน การกำหนดทับด้วย --output-format json แบบเดิมจะยังคงใช้ ตัวแยกวิเคราะห์ JSON

    • ข้อความตอบกลับแบบสตรีมมาจากเหตุการณ์ message ของผู้ช่วย
    • สำหรับเอาต์พุต JSON แบบเดิม ข้อความตอบกลับมาจากฟิลด์ response ใน JSON ของ CLI
    • หาก CLI ปล่อย usage ว่างไว้ ระบบจะใช้ stats เป็นค่าทดแทน
    • stats.cached จะถูกปรับให้อยู่ในรูป OpenClaw cacheRead
    • หากไม่มี stats.input OpenClaw จะคำนวณโทเค็นอินพุตจาก stats.input_tokens - stats.cached
    การตั้งค่าสภาพแวดล้อมและเดมอน

    หาก Gateway ทำงานเป็นเดมอน (launchd/systemd) โปรดตรวจสอบว่าโปรเซสนั้นเข้าถึง GEMINI_API_KEY ได้ (ตัวอย่างเช่น ใน ~/.openclaw/.env หรือผ่าน env.shellEnv)

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

    Was this useful?
    On this page

    On this page