openclaw - 💡(How to fix) Fix feat: add agents.defaults.baseline (or agents.defaults.meta) for deployment-specific string tags

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

Error: Config validation failed: agents.defaults: Unrecognized key: "baseline"

Code Example

Error: Config validation failed: agents.defaults: Unrecognized key: "baseline"
RAW_BUFFERClick to expand / collapse

Problem

The agents.defaults config section currently accepts a fixed schema of known fields (model, models, compaction, subagents, etc.). Attempting to set an unrecognized field — e.g. agents.defaults.baseline — fails with:

Error: Config validation failed: agents.defaults: Unrecognized key: "baseline"

Use case

We run a multi-tenant CatClaw deployment (built on OpenClaw) where users are assigned to model tiers (e.g. Open / Frontier / Flagship). The tier name is a deployment-managed fact that the agent needs to know to give accurate responses — e.g. "you're on the Flagship tier, which includes Opus and GPT-5.5."

We set all other per-user agents.defaults.* values via openclaw config set --batch-file from Ansible at deploy time. We'd like to set the tier/baseline name the same way.

The catclaw-channel plugin reads agents.defaults from config and formats it into a per-user system prompt block. Without a field like agents.defaults.baseline, we can't include the tier name without guessing from the model list (which is fragile).

Proposed solution

One of:

  1. Add agents.defaults.baseline — a free-form string field that deployment operators can use for tier/plan/baseline labeling. OpenClaw doesn't need to interpret it; it just needs to allow it through validation.

  2. Add agents.defaults.meta — a free-form Record<string, string> (or Record<string, unknown>) under agents.defaults for deployment-specific tags. More general; allows multiple keys without schema changes per key.

  3. Accept unknown string keys under agents.defaults — least opinionated. Deployment operators can use whatever naming makes sense.

Option 2 (agents.defaults.meta) feels most principled: it's a clear extension point with an explicit contract (string → string | primitive map), doesn't pollute the top-level defaults namespace, and works for any deployment-specific tagging need.

Related

  • The catclaw-channel plugin already reads agents.defaults in its before_prompt_build hook to inject per-user config context (PR in progress at sesptech/catclaw)
  • OpenClaw version: 2026.5.12

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING