Providers

Google (Gemini)

Plugin Google دسترسی به مدل‌های Gemini را از طریق Google AI Studio فراهم می‌کند، به‌همراه تولید تصویر، درک رسانه (تصویر/صدا/ویدئو)، تبدیل متن به گفتار، و جست‌وجوی وب از طریق Gemini Grounding.

  • ارائه‌دهنده: google
  • احراز هویت: GEMINI_API_KEY یا GOOGLE_API_KEY
  • API: Google Gemini API
  • گزینه زمان اجرا: agents.defaults.agentRuntime.id: "google-gemini-cli" از OAuth مربوط به Gemini CLI دوباره استفاده می‌کند، در حالی که ارجاع‌های مدل را به‌صورت استاندارد google/* نگه می‌دارد.

شروع به کار

روش احراز هویت دلخواه خود را انتخاب کنید و مراحل راه‌اندازی را دنبال کنید.

کلید API

بهترین گزینه برای: دسترسی استاندارد به Gemini API از طریق Google AI Studio.

  • اجرای راه‌اندازی اولیه

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

    یا کلید را مستقیما ارسال کنید:

    openclaw onboard --non-interactive \
      --mode local \
      --auth-choice gemini-api-key \
      --gemini-api-key "$GEMINI_API_KEY"
    
  • تنظیم یک مدل پیش‌فرض

    {
      agents: {
        defaults: {
          model: { primary: "google/gemini-3.1-pro-preview" },
        },
      },
    }
    
  • بررسی در دسترس بودن مدل

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

    بهترین گزینه برای: استفاده دوباره از ورود Gemini CLI موجود از طریق PKCE OAuth به‌جای یک کلید API جداگانه.

  • نصب Gemini CLI

    دستور محلی gemini باید روی PATH در دسترس باشد.

    # Homebrew
    brew install gemini-cli
    
    # or npm
    npm install -g @google/gemini-cli
    

    OpenClaw هم نصب‌های Homebrew و هم نصب‌های سراسری npm را پشتیبانی می‌کند، از جمله چیدمان‌های رایج Windows/npm.

  • ورود از طریق OAuth

    openclaw models auth login --provider google-gemini-cli --set-default
    
  • بررسی در دسترس بودن مدل

    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
    • OPENCLAW_GEMINI_OAUTH_CLIENT_SECRET

    (یا گونه‌های GEMINI_CLI_*.)

    ارجاع‌های مدل google-gemini-cli/* نام‌های مستعار سازگاری قدیمی هستند. پیکربندی‌های جدید باید از ارجاع‌های مدل google/* به‌همراه زمان اجرای google-gemini-cli استفاده کنند، وقتی اجرای محلی Gemini CLI را می‌خواهند.

    قابلیت‌ها

    قابلیت پشتیبانی‌شده
    تکمیل‌های گفت‌وگو بله
    تولید تصویر بله
    تولید موسیقی بله
    تبدیل متن به گفتار بله
    صدای بلادرنگ بله (Google Live API)
    درک تصویر بله
    رونویسی صدا بله
    درک ویدئو بله
    جست‌وجوی وب (Grounding) بله
    تفکر/استدلال بله (Gemini 2.5+ / Gemini 3+)
    مدل‌های Gemma 4 بله

    جست‌وجوی وب

    ارائه‌دهنده جست‌وجوی وب همراه gemini از grounding جست‌وجوی Google در Gemini استفاده می‌کند. یک کلید جست‌وجوی اختصاصی را در plugins.entries.google.config.webSearch پیکربندی کنید، یا اجازه دهید پس از GEMINI_API_KEY از models.providers.google.apiKey دوباره استفاده کند:

    {
      plugins: {
        entries: {
          google: {
            config: {
              webSearch: {
                apiKey: "AIza...", // optional if GEMINI_API_KEY or models.providers.google.apiKey is set
                baseUrl: "https://generativelanguage.googleapis.com/v1beta", // falls back to 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 به‌عنوان ارائه‌دهنده تصویر پیش‌فرض:

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

    تولید ویدئو

    Plugin همراه google همچنین تولید ویدئو را از طریق ابزار مشترک video_generate ثبت می‌کند.

    • مدل ویدئوی پیش‌فرض: google/veo-3.1-fast-generate-preview
    • حالت‌ها: متن به ویدئو، تصویر به ویدئو، و جریان‌های مرجع تک‌ویدئویی
    • از aspectRatio، resolution، و audio پشتیبانی می‌کند
    • محدودسازی مدت فعلی: 4 تا 8 ثانیه

    برای استفاده از Google به‌عنوان ارائه‌دهنده ویدئوی پیش‌فرض:

    {
      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 پشتیبانی می‌کند
    • کنترل‌های prompt: lyrics و instrumental
    • قالب خروجی: به‌صورت پیش‌فرض mp3، به‌همراه wav در google/lyria-3-pro-preview
    • ورودی‌های مرجع: تا 10 تصویر
    • اجراهای مبتنی بر نشست از طریق جریان مشترک وظیفه/وضعیت جدا می‌شوند، از جمله action: "status"

    برای استفاده از Google به‌عنوان ارائه‌دهنده موسیقی پیش‌فرض:

    {
      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 برای مقصدهای voice-note، PCM برای Talk/تلفن
    • خروجی voice-note: Google PCM به‌صورت WAV بسته‌بندی می‌شود و با ffmpeg به Opus با 48 kHz تبدیل می‌شود

    مسیر دسته‌ای Gemini TTS در Google، صدای تولیدشده را در پاسخ تکمیل‌شده generateContent برمی‌گرداند. برای مکالمه‌های گفتاری با کمترین تاخیر، به‌جای TTS دسته‌ای، از ارائه‌دهنده صدای بلادرنگ Google که بر Gemini Live API متکی است استفاده کنید.

    برای استفاده از Google به‌عنوان ارائه‌دهنده TTS پیش‌فرض:

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

    Gemini API TTS برای کنترل سبک از prompt زبان طبیعی استفاده می‌کند. audioProfile را تنظیم کنید تا یک prompt سبک قابل استفاده مجدد را پیش از متن گفتاری اضافه کند. وقتی متن prompt شما به یک گوینده نام‌دار اشاره می‌کند، speakerName را تنظیم کنید.

    Gemini API TTS همچنین برچسب‌های صوتی بیانی داخل کروشه را در متن می‌پذیرد، مانند [whispers] یا [laughs]. برای اینکه برچسب‌ها در پاسخ قابل مشاهده گفت‌وگو دیده نشوند اما به TTS ارسال شوند، آن‌ها را داخل یک بلوک [[tts:text]]...[[/tts:text]] قرار دهید:

    Here is the clean reply text.
    
    [[tts:text]][whispers] Here is the spoken version.[[/tts:text]]
    

    صدای بلادرنگ

    Plugin همراه google یک ارائه‌دهنده صدای بلادرنگ را ثبت می‌کند که بر Gemini Live API برای پل‌های صوتی بک‌اند مانند Voice Call و Google Meet متکی است.

    تنظیم مسیر پیکربندی پیش‌فرض
    مدل plugins.entries.voice-call.config.realtime.providers.google.model gemini-2.5-flash-native-audio-preview-12-2025
    صدا ...google.voice Kore
    دما ...google.temperature (تنظیم نشده)
    حساسیت شروع VAD ...google.startSensitivity (تنظیم نشده)
    حساسیت پایان VAD ...google.endSensitivity (تنظیم نشده)
    مدت سکوت ...google.silenceDurationMs (تنظیم نشده)
    مدیریت فعالیت ...google.activityHandling پیش‌فرض Google، start-of-activity-interrupts
    پوشش نوبت ...google.turnCoverage پیش‌فرض Google، only-activity
    غیرفعال کردن 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:

    {
      plugins: {
        entries: {
          "voice-call": {
            enabled: true,
            config: {
              realtime: {
                enabled: true,
                provider: "google",
                providers: {
                  google: {
                    model: "gemini-2.5-flash-native-audio-preview-12-2025",
                    voice: "Kore",
                    activityHandling: "start-of-activity-interrupts",
                    turnCoverage: "only-activity",
                  },
                },
              },
            },
          },
        },
      },
    }
    

    برای راستی‌آزمایی زنده نگه‌دارنده، اجرا کنید: OPENAI_API_KEY=... GEMINI_API_KEY=... node --import tsx scripts/dev/realtime-talk-live-smoke.ts. شاخه Google همان شکل توکن محدود Live API را که Control UI Talk استفاده می‌کند صادر می‌کند، نقطه پایانی WebSocket مرورگر را باز می‌کند، محموله راه‌اندازی اولیه را می‌فرستد، و منتظر setupComplete می‌ماند.

    پیکربندی پیشرفته

    استفاده دوباره مستقیم از کش Gemini

    برای اجراهای مستقیم Gemini API (api: "google-generative-ai")، OpenClaw دسته cachedContent پیکربندی‌شده را به درخواست‌های Gemini عبور می‌دهد.

    • پارامترهای هر مدل یا سراسری را با یکی از cachedContent یا cached_content قدیمی پیکربندی کنید
    • اگر هر دو وجود داشته باشند، cachedContent برنده می‌شود
    • مقدار نمونه: cachedContents/prebuilt-context
    • استفاده از برخورد کش Gemini از cachedContentTokenCount بالادستی به cacheRead در OpenClaw نرمال‌سازی می‌شود
    {
      agents: {
        defaults: {
          models: {
            "google/gemini-2.5-pro": {
              params: {
                cachedContent: "cachedContents/prebuilt-context",
              },
            },
          },
        },
      },
    }
    
    یادداشت‌های استفاده JSON از Gemini CLI

    هنگام استفاده از ارائه‌دهنده OAuth google-gemini-cli، OpenClaw خروجی JSON مربوط به CLI را به شکل زیر نرمال‌سازی می‌کند:

    • متن پاسخ از فیلد response در JSON مربوط به CLI می‌آید.
    • وقتی CLI مقدار usage را خالی می‌گذارد، استفاده به stats برمی‌گردد.
    • stats.cached به cacheRead در OpenClaw نرمال‌سازی می‌شود.
    • اگر stats.input وجود نداشته باشد، OpenClaw توکن‌های ورودی را از stats.input_tokens - stats.cached مشتق می‌کند.
    تنظیم محیط و daemon

    اگر Gateway به‌صورت daemon (launchd/systemd) اجرا می‌شود، مطمئن شوید GEMINI_API_KEY برای آن فرایند در دسترس است (برای مثال، در ~/.openclaw/.env یا از طریق env.shellEnv).

    مرتبط