* feat(meta): add Muse Spark 1.2 models * fix(meta): verify Muse Spark 1.2 catalog metadata * fix(meta): verify Muse Spark 1.2 contracts * docs(meta): quote discounted services terms * fix(meta): preserve replay fields for simple completions * test(meta): align stream host adapter types * fix(meta): apply catalog cap for zero max tokens * fix(meta): preserve omitted output cap * fix(meta): scope responses stream wrapper * fix(ai): preserve source API for stream wrappers * fix(ai): distinguish hook and dispatch APIs * test(ai): adapt plugin streams synchronously * chore(plugin-sdk): refresh API baseline * chore(plugin-sdk): refresh sharded API baseline --------- Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com>
6.2 KiB
summary, title, read_when
| summary | title | read_when | ||
|---|---|---|---|---|
| Meta setup, authentication, and Muse Spark model selection | Meta |
|
The Meta API uses the OpenAI-compatible Responses API (POST /v1/responses)
for the Muse Spark reasoning models. OpenClaw provides Meta as an official external
plugin.
| Property | Value |
|---|---|
| Provider id | meta |
| Plugin | @openclaw/meta-provider |
| Auth env var | MODEL_API_KEY |
| Onboarding flag | --auth-choice meta-api-key |
| Direct CLI flag | --meta-api-key <key> |
| API | Responses API (openai-responses) |
| Base URL | https://api.meta.ai/v1 |
| Default model | meta/muse-spark-1.1 |
| OpenClaw reasoning default | high (reasoning.effort) |
Getting started
```bash openclaw plugins install @openclaw/meta-provider openclaw gateway restart ```openclaw onboard --auth-choice meta-api-key
openclaw onboard --non-interactive --accept-risk --skip-health \
--auth-choice meta-api-key \
--meta-api-key "$MODEL_API_KEY"
export MODEL_API_KEY=<key>
</CodeGroup>
```bash
openclaw models list --provider meta
```
Lists the static Muse Spark catalog entries. If `MODEL_API_KEY` is unresolved,
`openclaw models status --json` reports the missing credential under
`auth.unusableProfiles`.
Non-interactive setup
openclaw onboard --non-interactive --accept-risk --skip-health \
--mode local \
--auth-choice meta-api-key \
--meta-api-key "$MODEL_API_KEY"
Built-in catalog
Prices and data-use terms come from Meta's pricing and rate limits documentation.
| Model ref | Name | OpenClaw input | Reasoning | Context window | Input / cached input / output per 1M tokens |
|---|---|---|---|---|---|
meta/muse-spark-1.1 |
Muse Spark 1.1 | text, image | yes | 1,048,576 | $1.25 / $0.15 / $4.25 |
meta/muse-spark-1.2 |
Muse Spark 1.2 | text, image | yes | 1,048,576 | $1.25 / $0.15 / $4.25 |
meta/muse-spark-1.2-contributor |
Muse Spark 1.2 Contributor | text, image | yes | 1,048,576 | $0.10 / $0.002 / $0.20 |
- Standard Services are the default. Meta says prompts and completions submitted to Standard Services are not used to train Meta models.
- By using Contributor/Discounted Services, you permit Meta to use Content submitted to and generated by those services as described in the Terms. Under the Terms, use of Discounted Services acknowledges that permission. You must not submit sensitive, confidential, or personal information to the Discounted Services.
Meta's Geographic Use Policy governs availability. It limits API access in some jurisdictions and adds end-user deployment restrictions for products built with the Contributor/Discounted model; those additional restrictions do not apply to your own use or products built with Standard Services.
Capabilities:
- Text and image input through OpenClaw
- Tool calling and streaming
- Reasoning effort:
minimal,low,medium,high,xhigh(OpenClaw default:high) - Stateless encrypted reasoning replay (
store: false,include: ["reasoning.encrypted_content"])
Meta's model catalog lists text, image, video, audio, and PDF input for these models. OpenClaw's model catalog directly represents text and image input only; the other upstream modalities are not model-manifest input values.
OpenClaw explicitly selects high when no thinking level is configured. This is an
OpenClaw default, not Meta's omitted-parameter behavior: Meta's
reasoning documentation says that when
reasoning.effort is omitted, the model reasons at a model-determined level.
Manual config
{
env: { vars: { MODEL_API_KEY: "<key>" } },
agents: {
defaults: {
model: { primary: "meta/muse-spark-1.1" },
models: {
"meta/muse-spark-1.1": { alias: "Muse Spark 1.1" },
},
},
},
}
Smoke test
export MODEL_API_KEY=<key>
pnpm test:live -- extensions/meta/meta.live.test.ts
The live suite exercises enabled Meta cases against POST /v1/responses.