A saved configuration is not proof that a capability works.

Models, Plugins, MCP servers, and A2A integrations must each be exercised by a real request in an active Workspace. The platform replaces managed model configuration during publication, so do not make development-provider URLs or credentials a business dependency.

Select model capabilities on the website

The Models dialog in the version workspace declares the model slots the Program truly depends on. An LLM is required. Select image, video, audio, PDF, or image-understanding capabilities only when the Program uses them. Saving the selection does not replace a representative Workspace test.

Models dialog in the version workspace
Models. Capability declarations must match real Program calls. Do not select untested capabilities merely because they may be useful later.

An active CLI Workspace result includes the current managed-model capability summary. Treat that result as authoritative and do not infer roles that are absent. During development, model configuration may follow the OpenClaw 2026.6.11 schema, subject to these rules:

Resources configures CPU and memory only

The current Resources dialog selects CPU and memory, both of which are required before publication. It does not install Plugins or register MCP, A2A, or WebUI ports. Implement authorized integrations in /oasn and the OpenClaw configuration, then test each one separately in an active Workspace. WebUI ports are configured through CLI 0.7.3, not through a website form.

Resources dialog in the version workspace
Resources. The public UI currently contains CPU and memory settings. The screenshot does not hide Plugin, MCP, or WebUI-port controls.

Implement extensions in the Workspace

OpenClaw Plugin

The standard location for a Workspace Plugin is /oasn/.openclaw/extensions/<plugin-id>/. Use the Plugin's own linked-install procedure only when it lives outside the standard location or its instructions explicitly require an installation record. In every case, inspect the actual runtime surface:

openclaw plugins inspect <plugin-id> --runtime --json

Keep both kinds of acceptance evidence:

  1. inspect --runtime --json shows the expected Tool or hook in the real runtime; and
  2. a request sent to main in WebChat actually triggers the Plugin and produces the expected result.

A normal list, an inspect without --runtime, the presence of a directory, or an installation log proves only that configuration or a manifest exists. It does not prove that the Plugin is working.

Reload the managed Gateway

Run the following managed operation only after the developer explicitly requests a reload and you have entered the current active Workspace with the complete SSH command returned by CLI:

sudo -n sh -lc '
set -eu
pid_file=/root/.openclaw/.oasn-developer-workspace/gateway.pid
test -r "$pid_file"
pid="$(cat "$pid_file")"
test "$(ps -p "$pid" -o comm= | xargs)" = "openclaw"
kill -USR1 "$pid"
'

Then inspect /root/.openclaw/.oasn-developer-workspace/gateway.log, confirm there is no ignored/error entry, verify http server listening and gateway ready, and submit one real WebChat request.

The Gateway is managed by the platform.

Do not use kill -9, start a second openclaw gateway, or run the systemd-oriented openclaw gateway restart.

Platform paid API MCP

CLI 0.7.3 may return paid_api_mcp_status, paid_api_mcp_url, and paid_api_mcp_expires_at in the current Workspace summary. An active Workspace receives short-lived credentials from the platform. Use only the URL returned for that Workspace; never derive it from another environment, a previous session, or a hostname pattern.

After the developer authorizes the Sandbox configuration change, replace the placeholder with that exact URL and preserve the single quotes so the shell does not expand the token placeholder:

sudo -n openclaw mcp set oasn-paid-api '{"enabled":true,"transport":"streamable-http","url":"<paid_api_mcp_url>","headers":{"Authorization":"Bearer ${OASN_PAID_API_MCP_TOKEN}","X-OASN-MCP-Auth-Mode":"OASN_DEVELOPER"}}'

Reload the managed Gateway as described above, then use the controlled helper:

sudo -n oasn-paid-mcp probe
sudo -n oasn-paid-mcp list-tools
sudo -n oasn-paid-mcp tools --include '<tool>'
Never fill a capability gap with credentials from elsewhere

If the current Workspace does not return the paid API MCP capability required by the Program, record it as BLOCKED. Do not copy a URL or token from another environment, guess a reserved server name, write plaintext credentials to openclaw.json, or substitute a mocked Tool result for acceptance evidence.

Agent to Agent (A2A)

The Developer Workspace does not guarantee that platform A2A is available. Depend on it only when an authorized, explicit integration exposes openagent_agent_run in the real Tool list. If it is absent, record BLOCKED and do not call an internal Access API directly. A call uses agent_id, idempotency_key, and data; use an agent_session_id only when continuing a trusted result. Reuse the same idempotency_key for retries of the same business intent.

Evaluate an A2A call in this order:

  1. confirm that Tool transport completed;
  2. check top-level isError first;
  3. then inspect business state such as structuredContent.status; and
  4. finally verify that any text, attachment, or WebUI result is genuinely usable.

A target Agent saying “completed” does not prove that its attachment can be downloaded or its page can be opened. Validate those outputs separately.