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" يعيد استخدام Gemini CLI OAuth مع إبقاء مراجع النماذج معيارية بصيغة 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 3.1 Pro في Gemini API هو 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 المضمّن إرساء Gemini Google Search. اضبط مفتاح بحث مخصصًا تحت plugins.entries.google.config.webSearch، أو دعه يعيد استخدام models.providers.google.apiKey بعد GEMINI_API_KEY:

    {
      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
    • عناصر تحكم الموجه: lyrics وinstrumental
    • تنسيق الإخراج: mp3 افتراضيًا، بالإضافة إلى wav على google/lyria-3-pro-preview
    • إدخالات المرجع: حتى 10 صور
    • تنفصل عمليات التشغيل المدعومة بجلسة عبر تدفق المهام/الحالة المشترك، بما في ذلك action: "status"

    لاستخدام Google كمزوّد الموسيقى الافتراضي:

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

    تحويل النص إلى كلام

    يستخدم مزوّد الكلام google المضمّن مسار Gemini API TTS مع 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 للمحادثة/الهاتف
    • إخراج الملاحظات الصوتية: يُغلّف Google PCM كـ WAV ويُحوّل ترميزه إلى Opus بتردد 48 kHz باستخدام ffmpeg

    يعيد مسار Gemini TTS الدفعي من Google الصوت المولّد في استجابة generateContent المكتملة. لأقل زمن استجابة في المحادثات المنطوقة، استخدم مزوّد الصوت الفوري من Google المدعوم بـ Gemini Live API بدلًا من TTS الدفعي.

    لاستخدام 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 التوجيه باللغة الطبيعية للتحكم في الأسلوب. عيّن audioProfile لإضافة موجه أسلوب قابل لإعادة الاستخدام قبل النص المنطوق. عيّن 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

    مثال على تكوين المكالمات الصوتية الآنية:

    {
      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 المؤقتة في OpenClaw cacheRead من cachedContentTokenCount الصادر من المنبع
    {
      agents: {
        defaults: {
          models: {
            "google/gemini-2.5-pro": {
              params: {
                cachedContent: "cachedContents/prebuilt-context",
              },
            },
          },
        },
      },
    }
    
    ملاحظات استخدام JSON في Gemini CLI

    عند استخدام مزوّد OAuth google-gemini-cli، يطبّع OpenClaw مخرجات JSON الخاصة بـ CLI كما يلي:

    • يأتي نص الرد من حقل JSON في CLI المسمى response.
    • يرجع الاستخدام احتياطيًا إلى stats عندما يترك CLI حقل usage فارغًا.
    • يتم توحيد stats.cached في OpenClaw cacheRead.
    • إذا كان stats.input مفقودًا، يشتق OpenClaw رموز الإدخال من stats.input_tokens - stats.cached.
    إعداد البيئة والخدمة الخفية

    إذا كان Gateway يعمل كخدمة خفية (launchd/systemd)، فتأكد من أن GEMINI_API_KEY متاح لذلك المسار (على سبيل المثال، في ~/.openclaw/.env أو عبر env.shellEnv).

    ذو صلة