Files
openclaw/extensions/meta-model-api
Hamid Shojanazeri 08a957e0ae feat(providers): add Meta Model API - muse-spark-1.1 (#102873)
* feat(providers): add Meta Model API - muse-spark-1.1

Adds meta-model-api provider via bundled extension:
- extensions/meta-model-api/ (provider, catalog, stream, thinking, onboarding)
- docs/providers/meta-model-api.md
- core wiring: env-api-keys, zod-schema, provider-display-names, dotenv, provider-env-vars

Model: meta-model-api/muse-spark-1.1 (Responses API at https://api.ai.meta.com/v1)
Auth: MODEL_API_KEY (Bearer)
Default reasoning: high, maps --thinking off -> minimal (model rejects none)

Fix: bump live test maxTokens 200->4000 (high reasoning uses ~300 tokens for reasoning alone)

Co-authored-by: Meta

* fix(meta-model-api): clean reasoning lint

* test(meta-model-api): align live proof checks

* chore(meta-model-api): bundle provider metadata

* docs: fix Meta Model API setup wording

* docs: format Meta Model API provider page

---------

Co-authored-by: Dave Morin <dave@morin.com>
Co-authored-by: Colin <colin@solvely.net>
Co-authored-by: Josh Lehman <josh@martian.engineering>
2026-07-09 10:27:09 -07:00
..

Meta Model API provider

Bundled OpenClaw provider plugin for the Meta Model API — an OpenAI-compatible Responses API endpoint (POST /v1/responses).

  • Base URL: https://api.ai.meta.com/v1
  • Auth: Authorization: Bearer $MODEL_API_KEY
  • Model: muse-spark-1.1 (reasoning model; use muse-spark for smoke tests until 1.1 ships)
    • Context window: 1,048,576 tokens (input + output share the budget)
    • Reasoning effort: minimal | low | medium | high | xhigh (default: high)
    • Vision: image input in user messages
    • Tool calling + streaming
    • Stateless encrypted reasoning replay (store: false)

Usage

Set the API key and select the model:

export MODEL_API_KEY=<key>
// ~/.openclaw/openclaw.json
{
  agents: {
    defaults: {
      model: { primary: "meta-model-api/muse-spark-1.1" },
    },
  },
}

Or run onboarding and choose Meta Model API.

Thinking / reasoning

--thinking <level> and /think <level> map to Responses API reasoning.effort. Default thinking level is high. off maps to minimal because Muse Spark does not accept none.

Docs

See docs/providers/meta-model-api.md for setup, onboarding, and smoke tests.

Live test

export MODEL_API_KEY=<key>
export OPENCLAW_LIVE_TEST=1
export META_MODEL_API_LIVE_TEST=1
pnpm test extensions/meta-model-api/meta-model-api.live.test.ts

Live tests call muse-spark on /v1/responses.