Providers

Google (Gemini)

Google Plugin은 Google AI Studio를 통해 Gemini 모델에 대한 접근을 제공하며, 이미지 생성, 미디어 이해(이미지/오디오/비디오), 텍스트 음성 변환, 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 키

적합한 용도: Google AI Studio를 통한 표준 Gemini API 접근.

  • 온보딩 실행

    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)

    적합한 용도: 별도의 API 키 대신 PKCE OAuth를 통해 기존 Gemini CLI 로그인을 재사용하는 경우.

  • Gemini CLI 설치

    로컬 gemini 명령은 PATH에서 사용할 수 있어야 합니다.

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

    OpenClaw는 일반적인 Windows/npm 레이아웃을 포함하여 Homebrew 설치와 전역 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 모델 ID는 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/* 모델 참조는 레거시 호환성 별칭입니다. 새 구성은 로컬 Gemini CLI 실행을 원할 때 google/* 모델 참조와 google-gemini-cli 런타임을 함께 사용해야 합니다.

    기능

    기능 지원 여부
    채팅 완성
    이미지 생성
    음악 생성
    텍스트 음성 변환
    실시간 음성 예 (Google Live API)
    이미지 이해
    오디오 전사
    비디오 이해
    웹 검색(Grounding)
    사고/추론 예 (Gemini 2.5+ / Gemini 3+)
    Gemma 4 모델

    웹 검색

    번들로 제공되는 gemini 웹 검색 제공자는 Gemini Google Search grounding을 사용합니다. 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",
          },
        },
      },
    }
    

    비디오 생성

    번들로 제공되는 google Plugin은 공유 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",
          },
        },
      },
    }
    

    음악 생성

    번들로 제공되는 google Plugin은 공유 music_generate 도구를 통해 음악 생성도 등록합니다.

    • 기본 음악 모델: google/lyria-3-clip-preview
    • google/lyria-3-pro-preview도 지원
    • 프롬프트 제어: lyricsinstrumental
    • 출력 형식: 기본값은 mp3, google/lyria-3-pro-preview에서는 wav도 지원
    • 참조 입력: 최대 10개 이미지
    • 세션 기반 실행은 action: "status"를 포함하여 공유 작업/상태 흐름을 통해 분리됩니다.

    Google을 기본 음악 제공자로 사용하려면:

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

    텍스트 음성 변환

    번들로 제공되는 google 음성 제공자는 gemini-3.1-flash-tts-preview와 함께 Gemini API TTS 경로를 사용합니다.

    • 기본 음성: Kore
    • 인증: messages.tts.providers.google.apiKey, models.providers.google.apiKey, GEMINI_API_KEY 또는 GOOGLE_API_KEY
    • 출력: 일반 TTS 첨부 파일은 WAV, 음성 메모 대상은 Opus, Talk/전화 통신은 PCM
    • 음성 메모 출력: Google PCM은 WAV로 래핑되고 ffmpeg로 48 kHz Opus로 트랜스코딩됩니다.

    Google의 배치 Gemini TTS 경로는 완료된 generateContent 응답에서 생성된 오디오를 반환합니다. 가장 낮은 지연 시간의 음성 대화에는 배치 TTS 대신 Gemini Live API 기반 Google 실시간 음성 제공자를 사용하세요.

    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]]
    

    실시간 음성

    번들로 제공되는 google Plugin은 Voice Call 및 Google Meet 같은 백엔드 오디오 브리지용 Gemini Live API 기반 실시간 음성 제공자를 등록합니다.

    설정 구성 경로 기본값
    모델 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 구간은 Control UI Talk에서 사용하는 것과 동일한 제한된 Live API 토큰 형태를 발급하고, 브라우저 WebSocket 엔드포인트를 열고, 초기 설정 페이로드를 보낸 뒤 setupComplete를 기다립니다.

    고급 구성

    Direct Gemini cache reuse

    직접 Gemini API 실행(api: "google-generative-ai")의 경우 OpenClaw는 구성된 cachedContent 핸들을 Gemini 요청에 전달합니다.

    • cachedContent 또는 레거시 cached_content를 사용해 모델별 또는 전역 매개변수를 구성하세요
    • 둘 다 있으면 cachedContent가 우선합니다
    • 예시 값: cachedContents/prebuilt-context
    • Gemini 캐시 적중 사용량은 업스트림 cachedContentTokenCount에서 OpenClaw cacheRead로 정규화됩니다
    {
      agents: {
        defaults: {
          models: {
            "google/gemini-2.5-pro": {
              params: {
                cachedContent: "cachedContents/prebuilt-context",
              },
            },
          },
        },
      },
    }
    
    Gemini CLI JSON usage notes

    google-gemini-cli OAuth 제공자를 사용할 때 OpenClaw는 CLI JSON 출력을 다음과 같이 정규화합니다.

    • 응답 텍스트는 CLI JSON response 필드에서 가져옵니다.
    • CLI가 usage를 비워 두면 사용량은 stats로 대체됩니다.
    • stats.cached는 OpenClaw cacheRead로 정규화됩니다.
    • stats.input이 없으면 OpenClaw는 stats.input_tokens - stats.cached에서 입력 토큰을 도출합니다.
    Environment and daemon setup

    Gateway가 데몬(launchd/systemd)으로 실행되는 경우 GEMINI_API_KEY가 해당 프로세스에서 사용 가능해야 합니다. 예를 들어 ~/.openclaw/.env에 두거나 env.shellEnv를 통해 제공하세요.

    관련 항목