Skip to content

[Bug] OpenClaw runtime treats the model field as --agent, causing valid model IDs to fail #5751

Description

@shenhuanjie

Deployment environment

  • Deployment type: Self-hosted
  • Multica CLI / daemon: v0.4.7 (commit b1d5fa4ff)
  • OpenClaw: 2026.7.1-2 (0790d9f)
  • OS: fnOS (Linux x64)
  • OpenClaw runtime mode: local

What happened?

After explicitly setting the following value on an OpenClaw-backed Multica agent:

model = minimax-cn/MiniMax-M3

mentioning that agent in an issue comment consistently fails. The UI only reports:

openclaw returned no parseable output

Clearing the Multica agent's model field makes OpenClaw work again.

Evidence from the daemon log

The Multica daemon actually executed:

openclaw agent --local --json \
  --session-id <redacted> \
  --agent minimax-cn/MiniMax-M3 \
  --message <redacted>

OpenClaw wrote the following error to stderr:

Error: Unknown agent id "minimax-cn/MiniMax-M3". Use "openclaw agents list" to see configured agents.

Three attempts produced the same result:

Attempt stdout stderr Result
1 0 bytes Unknown agent id "minimax-cn/MiniMax-M3" failed after approximately 3.3s
2 0 bytes same as above failed after approximately 3.4s
Retry 0 bytes same as above failed after approximately 3.4s

A successful chat task on the same runtime did not include --agent:

openclaw agent --local --json \
  --session-id <redacted> \
  --message <redacted>

That task completed successfully and returned 614 bytes of output.

Root cause

For most providers, Multica uses the model field as an LLM model ID. The OpenClaw adapter, however, interprets the same field as an OpenClaw agent ID:

Multica model -> openclaw agent --agent <value>

minimax-cn/MiniMax-M3 is a provider/model identifier, not an agent ID registered in openclaw agents list. OpenClaw therefore exits immediately.

This exposes three separate problems:

  1. Inconsistent field contract: the same model field represents an LLM model for most providers but an agent ID for OpenClaw.
  2. Missing validation: the UI/API accepts arbitrary model strings without checking whether they correspond to a registered OpenClaw agent ID.
  3. Hidden underlying error: OpenClaw clearly reports Unknown agent id on stderr, but Multica only surfaces openclaw returned no parseable output.

Steps to reproduce

  1. Create a Multica agent backed by an OpenClaw runtime.
  2. Set the agent's model field to a valid LLM model ID, for example minimax-cn/MiniMax-M3.
  3. Mention the agent in any issue comment.
  4. Observe that the task fails and the UI reports openclaw returned no parseable output.
  5. Inspect the daemon log and observe the actual Unknown agent id stderr message.
  6. Clear the model field and retry; the task succeeds.

Expected behavior

The product should establish one explicit contract for this field.

Option A: treat the field as an OpenClaw agent ID

  • Rename the field to OpenClaw Agent or OpenClaw Agent ID when the selected provider is OpenClaw.
  • Only allow values discovered through openclaw agents list.
  • Validate the agent ID when saving through either the UI or API.
  • Keep the underlying LLM model bound to the OpenClaw agent itself.

Option B: preserve consistent model semantics across providers

  • Make model always represent an LLM model ID.
  • Do not pass it directly to OpenClaw as --agent.
  • Add a separate field for selecting an OpenClaw agent ID.

Regardless of the selected contract, Multica should surface OpenClaw's actual stderr startup error in the task failure instead of replacing it with a generic parsing error.

Related issues and pull requests

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions