Providers
گوگل (Gemini)
Plugin گوگل دسترسی به مدلهای 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.
اجرای فرایند راهاندازی اولیه
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 googleGemini CLI (OAuth)
مناسب برای: استفاده مجدد از ورود موجود Gemini CLI از طریق PKCE OAuth بهجای یک کلید API جداگانه.
نصب Gemini CLI
فرمان محلی gemini باید در PATH در دسترس باشد.
# Homebrewbrew install gemini-cli # or npmnpm install -g @google/gemini-cliOpenClaw هم نصبهای 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/GEMINI_CLI_OAUTH_CLIENT_IDOPENCLAW_GEMINI_OAUTH_CLIENT_SECRET/GEMINI_CLI_OAUTH_CLIENT_SECRET
ارجاعهای مدل google-gemini-cli/* نامهای مستعار سازگاری قدیمی هستند. پیکربندیهای
جدید برای اجرای محلی Gemini CLI باید از ارجاعهای مدل google/* بههمراه زمان اجرای
google-gemini-cli استفاده کنند.
قابلیتها
| قابلیت | پشتیبانی |
|---|---|
| تکمیلهای گفتگو | بله |
| تولید تصویر | بله |
| تولید موسیقی | بله |
| تبدیل متن به گفتار | بله |
| صدای بلادرنگ | بله (Google Live API) |
| درک تصویر | بله |
| رونویسی صدا | بله |
| درک ویدئو | بله |
| جستوجوی وب (Grounding) | بله |
| تفکر/استدلال | بله (Gemini 2.5+ / Gemini 3+) |
| مدلهای Gemma 4 | بله |
جستوجوی وب
ارائهدهنده جستوجوی وب همراه gemini از اتصال به Google Search در 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نیز پشتیبانی میکند - تولید: حداکثر ۴ تصویر در هر درخواست
- حالت ویرایش: فعال، با حداکثر ۵ تصویر ورودی
- کنترلهای هندسی:
size،aspectRatioوresolution
برای استفاده از گوگل بهعنوان ارائهدهنده پیشفرض تصویر:
{ 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 پشتیبانی نمیشود - مدتزمانهای پشتیبانیشده: ۴، ۶ یا ۸ ثانیه (مقادیر دیگر به نزدیکترین مقدار مجاز گرد میشوند)
برای استفاده از گوگل بهعنوان ارائهدهنده پیشفرض ویدئو:
{ 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 - ورودیهای مرجع: حداکثر ۱۰ تصویر
- اجراهای متکی به نشست از طریق جریان مشترک وظیفه/وضعیت، از جمله
action: "status"، جدا میشوند
برای استفاده از گوگل بهعنوان ارائهدهنده پیشفرض موسیقی:
{ agents: { defaults: { musicGenerationModel: { primary: "google/lyria-3-clip-preview", }, }, },}تبدیل متن به گفتار
ارائهدهنده گفتار همراه google از مسیر تبدیل متن به گفتار 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 برای پیوستهای معمول تبدیل متن به گفتار، Opus برای مقصدهای پیام صوتی و PCM برای Talk/تلفن
- خروجی پیام صوتی: PCM گوگل در قالب WAV بستهبندی و با
ffmpegبه Opus با نرخ ۴۸ کیلوهرتز تبدیل میشود
مسیر دستهای تبدیل متن به گفتار Gemini در گوگل، صدای تولیدشده را در پاسخ تکمیلشده
generateContent برمیگرداند. برای مکالمات گفتاری با کمترین تأخیر، بهجای تبدیل متن به گفتار
دستهای از ارائهدهنده صدای بلادرنگ گوگل که مبتنی بر Gemini Live API است
استفاده کنید.
برای استفاده از گوگل بهعنوان ارائهدهنده پیشفرض تبدیل متن به گفتار:
{ 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 برای کنترل سبک از فرمانهای زبان طبیعی استفاده میکند. audioProfile
را تنظیم کنید تا یک فرمان سبک قابلاستفاده مجدد پیش از متن گفتاری افزوده شود. هنگامی که متن فرمانتان
به یک گوینده نامگذاریشده اشاره میکند، speakerName را تنظیم کنید.
تبدیل متن به گفتار Gemini API همچنین برچسبهای صوتی بیانی درون کروشه را در متن میپذیرد،
مانند [whispers] یا [laughs]. برای اینکه برچسبها در پاسخ قابلمشاهده گفتگو نمایش داده نشوند
اما به تبدیل متن به گفتار ارسال شوند، آنها را درون یک بلوک [[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-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 استفاده میکند |
نمونه پیکربندی بلادرنگ تماس صوتی:
{ 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 را که گفتوگوی Control UI استفاده میکند صادر میکند، نقطه پایانی
وبسوکت مرورگر را باز میکند، بار اولیه راهاندازی را میفرستد و منتظر
setupComplete میماند.
پیکربندی پیشرفته
استفاده مجدد مستقیم از حافظه نهان Gemini
برای اجراهای مستقیم Gemini API (api: "google-generative-ai")، OpenClaw
یک شناسه پیکربندیشده cachedContent را به درخواستهای Gemini منتقل میکند.
- پارامترهای سراسری یا ویژه هر مدل را با یکی از
cachedContentیاcached_contentقدیمی پیکربندی کنید - پارامترهای دامنه مشخصتر (سطح مدل نسبت به سراسری) همیشه اولویت دارند.
در یک دامنه یکسان، اگر هر دو کلید تنظیم شده باشند،
cached_contentاولویت دارد. برای جلوگیری از نتایج غیرمنتظره، در هر دامنه فقط از یک کلید استفاده کنید. - مقدار نمونه:
cachedContents/prebuilt-context - میزان استفاده از تطبیق حافظه نهان Gemini، از مقدار بالادستی
cachedContentTokenCountبهcacheReadدر OpenClaw نرمالسازی میشود
{ 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بهcacheReadدر OpenClaw نرمالسازی میشود.- اگر
stats.inputوجود نداشته باشد، OpenClaw توکنهای ورودی را ازstats.input_tokens - stats.cachedمحاسبه میکند.
راهاندازی محیط و سرویس پسزمینه
اگر Gateway بهصورت سرویس پسزمینه (launchd/systemd) اجرا میشود، مطمئن شوید
GEMINI_API_KEY برای آن فرایند در دسترس است (برای مثال در ~/.openclaw/.env یا از طریق
env.shellEnv).