Providers

OpenRouter

OpenRouter cung cấp một API hợp nhất định tuyến yêu cầu đến nhiều mô hình phía sau một endpoint và khóa API duy nhất. API này tương thích với OpenAI, nên hầu hết SDK OpenAI hoạt động bằng cách chuyển base URL.

Bắt đầu

  • Nhận khóa API của bạn

    Tạo khóa API tại openrouter.ai/keys.

  • Chạy onboarding

    openclaw onboard --auth-choice openrouter-api-key
    
  • (Tùy chọn) Chuyển sang một mô hình cụ thể

    Onboarding mặc định là openrouter/auto. Chọn một mô hình cụ thể sau:

    openclaw models set openrouter/<provider>/<model>
    
  • Ví dụ cấu hình

    {
      env: { OPENROUTER_API_KEY: "sk-or-..." },
      agents: {
        defaults: {
          model: { primary: "openrouter/auto" },
        },
      },
    }
    

    Tham chiếu mô hình

    Ví dụ dự phòng đi kèm:

    Tham chiếu mô hình Ghi chú
    openrouter/auto Định tuyến tự động của OpenRouter
    openrouter/moonshotai/kimi-k2.6 Kimi K2.6 qua MoonshotAI

    Tạo hình ảnh

    OpenRouter cũng có thể hỗ trợ công cụ image_generate. Dùng một mô hình hình ảnh OpenRouter trong agents.defaults.imageGenerationModel:

    {
      env: { OPENROUTER_API_KEY: "sk-or-..." },
      agents: {
        defaults: {
          imageGenerationModel: {
            primary: "openrouter/google/gemini-3.1-flash-image-preview",
            timeoutMs: 180_000,
          },
        },
      },
    }
    

    OpenClaw gửi yêu cầu hình ảnh đến API hình ảnh chat completions của OpenRouter với modalities: ["image", "text"]. Các mô hình hình ảnh Gemini nhận gợi ý aspectRatioresolution được hỗ trợ thông qua image_config của OpenRouter. Dùng agents.defaults.imageGenerationModel.timeoutMs cho các mô hình hình ảnh OpenRouter chậm hơn; tham số timeoutMs theo từng lệnh gọi của công cụ image_generate vẫn được ưu tiên.

    Tạo video

    OpenRouter cũng có thể hỗ trợ công cụ video_generate thông qua API /videos bất đồng bộ của nó. Dùng một mô hình video OpenRouter trong agents.defaults.videoGenerationModel:

    {
      env: { OPENROUTER_API_KEY: "sk-or-..." },
      agents: {
        defaults: {
          videoGenerationModel: {
            primary: "openrouter/google/veo-3.1-fast",
          },
        },
      },
    }
    

    OpenClaw gửi tác vụ text-to-video và image-to-video đến OpenRouter, thăm dò polling_url được trả về, rồi tải xuống video hoàn tất từ unsigned_urls của OpenRouter hoặc endpoint nội dung tác vụ được tài liệu hóa. Theo mặc định, hình ảnh tham chiếu được gửi dưới dạng hình ảnh khung đầu/cuối; hình ảnh được gắn thẻ reference_image được gửi dưới dạng tham chiếu đầu vào của OpenRouter. Mặc định google/veo-3.1-fast đi kèm công bố các thời lượng 4/6/8 giây hiện được hỗ trợ, độ phân giải 720P/1080P, và tỷ lệ khung hình 16:9/9:16. Video-to-video không được đăng ký cho OpenRouter vì API tạo video upstream hiện chấp nhận tham chiếu văn bản và hình ảnh.

    Text-to-speech

    OpenRouter cũng có thể được dùng làm nhà cung cấp TTS thông qua endpoint /audio/speech tương thích với OpenAI.

    {
      messages: {
        tts: {
          auto: "always",
          provider: "openrouter",
          providers: {
            openrouter: {
              model: "hexgrad/kokoro-82m",
              voice: "af_alloy",
              responseFormat: "mp3",
            },
          },
        },
      },
    }
    

    Nếu bỏ qua messages.tts.providers.openrouter.apiKey, TTS sẽ tái sử dụng models.providers.openrouter.apiKey, rồi đến OPENROUTER_API_KEY.

    Xác thực và header

    OpenRouter sử dụng Bearer token với khóa API của bạn ở bên dưới.

    Trên các yêu cầu OpenRouter thực (https://openrouter.ai/api/v1), OpenClaw cũng thêm các header ghi nhận ứng dụng được OpenRouter tài liệu hóa:

    Header Giá trị
    HTTP-Referer https://openclaw.ai
    X-OpenRouter-Title OpenClaw
    X-OpenRouter-Categories cli-agent,cloud-agent,programming-app,creative-writing,writing-assistant,general-chat,personal-agent

    Cấu hình nâng cao

    Bộ nhớ đệm phản hồi

    Bộ nhớ đệm phản hồi của OpenRouter là tùy chọn bật rõ ràng. Bật theo từng mô hình OpenRouter bằng tham số mô hình:

    {
      agents: {
        defaults: {
          models: {
            "openrouter/auto": {
              params: {
                responseCache: true,
                responseCacheTtlSeconds: 300,
              },
            },
          },
        },
      },
    }
    

    OpenClaw gửi X-OpenRouter-Cache: true và, khi được cấu hình, X-OpenRouter-Cache-TTL. responseCacheClear: true buộc làm mới cho yêu cầu hiện tại và lưu phản hồi thay thế. Các bí danh snake_case (response_cache, response_cache_ttl_seconds, và response_cache_clear) cũng được chấp nhận.

    Điều này tách biệt với bộ nhớ đệm prompt của nhà cung cấp và các marker cache_control Anthropic của OpenRouter. Nó chỉ được áp dụng trên các route openrouter.ai đã xác minh, không áp dụng cho base URL proxy tùy chỉnh.

    Marker bộ nhớ đệm Anthropic

    Trên các route OpenRouter đã xác minh, tham chiếu mô hình Anthropic giữ các marker cache_control Anthropic dành riêng cho OpenRouter mà OpenClaw dùng để tái sử dụng bộ nhớ đệm prompt tốt hơn trên các khối prompt hệ thống/nhà phát triển.

    Nạp trước suy luận Anthropic

    Trên các route OpenRouter đã xác minh, tham chiếu mô hình Anthropic có bật suy luận sẽ loại bỏ các lượt nạp trước trợ lý ở cuối trước khi yêu cầu đến OpenRouter, khớp với yêu cầu của Anthropic rằng hội thoại suy luận phải kết thúc bằng một lượt người dùng.

    Chèn thinking / reasoning

    Trên các route không phải auto được hỗ trợ, OpenClaw ánh xạ mức thinking đã chọn sang payload suy luận proxy OpenRouter. Gợi ý mô hình không được hỗ trợ và openrouter/auto bỏ qua việc chèn suy luận đó. Hunter Alpha cũng bỏ qua suy luận proxy cho các tham chiếu mô hình được cấu hình đã cũ vì OpenRouter có thể trả về văn bản câu trả lời cuối cùng trong các trường suy luận cho route đã ngừng dùng đó.

    Phát lại suy luận DeepSeek V4

    Trên các route OpenRouter đã xác minh, openrouter/deepseek/deepseek-v4-flashopenrouter/deepseek/deepseek-v4-pro điền reasoning_content bị thiếu trên các lượt trợ lý được phát lại để hội thoại thinking/công cụ giữ đúng dạng theo dõi bắt buộc của DeepSeek V4. OpenClaw gửi các giá trị reasoning_effort được OpenRouter hỗ trợ cho các route này; xhigh là mức được công bố cao nhất, và các ghi đè max đã cũ được ánh xạ sang xhigh.

    Định dạng yêu cầu chỉ dành cho OpenAI

    OpenRouter vẫn chạy qua đường dẫn tương thích OpenAI theo kiểu proxy, nên định dạng yêu cầu chỉ dành riêng cho OpenAI gốc như serviceTier, Responses store, payload tương thích suy luận OpenAI, và gợi ý bộ nhớ đệm prompt không được chuyển tiếp.

    Route dùng Gemini phía sau

    Tham chiếu OpenRouter dùng Gemini phía sau vẫn nằm trên đường dẫn proxy-Gemini: OpenClaw giữ quá trình làm sạch chữ ký suy nghĩ Gemini tại đó, nhưng không bật xác thực phát lại Gemini gốc hoặc viết lại bootstrap.

    Siêu dữ liệu định tuyến nhà cung cấp

    Nếu bạn truyền định tuyến nhà cung cấp OpenRouter trong tham số mô hình, OpenClaw chuyển tiếp nó dưới dạng siêu dữ liệu định tuyến OpenRouter trước khi các wrapper stream dùng chung chạy.

    Liên quan