Set Up an Anthropic-Compatible Endpoint

View as Markdown

Use the custom Anthropic-compatible provider to configure a custom base URL and model with COMPATIBLE_ANTHROPIC_API_KEY. The runtime API differs by agent capability.

Run Onboarding

Start the onboard wizard.

$nemoclaw onboard

Select Other Anthropic-compatible endpoint. Enter the endpoint base URL, model ID, and API key when prompted. Use any non-empty placeholder such as dummy when the endpoint does not require authentication.

Understand OpenClaw Validation

OpenClaw uses the native Anthropic Messages frontend for this provider. NemoClaw validates the endpoint with a non-streaming /v1/messages request and then a stream: true request to the same path.

The streaming check requires exactly one message_start, at least one content_block_delta, and one message_stop in a well-formed server-sent event sequence. It also forces the endpoint to call the emit_ok validation tool. The stream must contain a native tool_use content block named emit_ok and finish the request with stop_reason: tool_use. JSON-shaped assistant text does not satisfy either requirement, even when it names emit_ok and contains valid JSON. NemoClaw reports anthropic-streaming-missing-tool-use when the native block is absent and anthropic-streaming-missing-tool-use-stop-reason when the matching stop reason is absent. An endpoint whose non-streaming response works but whose streaming response is malformed fails during onboarding.

Set NEMOCLAW_REASONING=true to skip both the streaming sequence and forced tool-call checks for a reasoning-only model. Agent runs still use streaming and native tool calls, so this setting moves either defect to runtime.

Refer to Onboarding fails with duplicate Anthropic message_start events when the streaming validation fails with duplicate start events. Refer to Onboarding rejects an Anthropic-compatible tool call when the endpoint returns a tool request as assistant text or omits the tool-use stop reason.

Run Non-Interactive Onboarding

Set NEMOCLAW_PROVIDER=anthropicCompatible and provide the endpoint URL, model, and credential.

$NEMOCLAW_PROVIDER=anthropicCompatible \
> NEMOCLAW_ENDPOINT_URL=http://localhost:8080 \
> NEMOCLAW_MODEL=my-model \
> COMPATIBLE_ANTHROPIC_API_KEY=dummy \
> nemoclaw onboard --non-interactive