#Can/how to update openclaw version 4/14 to opus 4.7?
1 messages · Page 1 of 1 (latest)
yep, this is most likely the model ref.
Use:
anthropic/claude-opus-4-7for Anthropic APIclaude-cli/claude-opus-4-7for Claude CLI
Not claude/opus-4-7.
If you’re editing config, it should look like:
{
agents: {
defaults: {
model: { primary: "anthropic/claude-opus-4-7" },
// only needed if you already use a model allowlist
models: {
"anthropic/claude-opus-4-7": { alias: "Opus" },
},
},
},
}
Important: if you already have agents.defaults.models, you need to add 4.7 there too, or /model can reject it as “not allowed”.
Also, check:
openclaw --version
openclaw models status
If you paste those, I can tell you right away whether it’s just the ref or an older build.
Docs: https://docs.openclaw.ai/providers/anthropic and https://docs.openclaw.ai/concepts/models
on openclaw version 4/14. Openclaw model status returned: Config invalid
File: ~/.openclaw/openclaw.json
Problem:
- models: Unrecognized key: "default"
Legacy config keys detected: - channels.telegram: channels.telegram.streamMode, channels.telegram.streaming (scalar), chunkMode, blockStreaming, draftChunk, and blockStreamingCoalesce are legacy; use channels.telegram.streaming.{mode,chunkMode,preview.chunk,block.enabled,block.coalesce} instead. Run "openclaw doctor --fix".
- channels.telegram: channels.telegram.streamMode, channels.telegram.streaming (scalar), chunkMode, blockStreaming, draftChunk, and blockStreamingCoalesce are legacy; use channels.telegram.streaming.{mode,chunkMode,preview.chunk,block.enabled,block.coalesce}.
- channels.telegram: channels.telegram.streamMode, channels.telegram.streaming (scalar), chunkMode, blockStreaming, draftChunk, and blockStreamingCoalesce are legacy; use channels.telegram.streaming.{mode,chunkMode,preview.chunk,block.enabled,block.coalesce}.
Run: openclaw doctor --fix
yep, that error is the old config shape.
models.default is no longer valid.
The new key is:
agents.defaults.model.primary
So if you have something like:
{
models: {
default: "anthropic/claude-opus-4-7"
}
}
change it to:
{
agents: {
defaults: {
model: {
primary: "anthropic/claude-opus-4-7"
}
}
}
}
If you use Claude CLI instead of Anthropic API, use:
claude-cli/claude-opus-4-7
not anthropic/....
Also, if you already have a model allowlist under agents.defaults.models, add 4.7 there too, for example:
{
agents: {
defaults: {
model: { primary: "anthropic/claude-opus-4-7" },
models: {
"anthropic/claude-opus-4-7": { alias: "Opus" }
}
}
}
}
Fastest path is honestly:
openclaw doctor --fix
That should clean up the Telegram legacy keys too.
Then re-check with:
openclaw models status
Docs: https://docs.openclaw.ai/concepts/models and https://docs.openclaw.ai/gateway/doctor
If you want, paste just your models / agents section and I’ll translate it to the current format.
is there a larger issue with the file structure of my agent?
probably not, this looks more like old config schema, not a broken agent folder structure.
From what you pasted, the main issue is:
- old key:
models.default - new key:
agents.defaults.model.primary
And doctor is also flagging old Telegram config keys, which points to a legacy config file carried forward across updates, not a damaged agent.
So my read is:
- Not an agent file-structure problem
- Yes, your config layout is outdated
openclaw doctor --fixis the right first move
If it were a bigger structural problem, I’d expect errors about session paths, agent dirs, missing files, bootstrapping, etc. You’re not showing that, just schema validation.
If you want to sanity check it, paste the top-level parts of ~/.openclaw/openclaw.json for:
agentagentsmodelschannels.telegram
with secrets redacted, and I can tell you if it’s just normal legacy drift or something messier.
If anyhting a description of what a streamlined and effiecent file structure would help me manually fix the issue.
yeah, and I think “streamlined file structure” here really means streamlined config structure.
A clean modern OpenClaw config is roughly:
{
gateway: {
// gateway settings
},
agents: {
defaults: {
model: {
primary: "anthropic/claude-opus-4-7"
},
// optional: allowlist / aliases / per-model params
models: {
"anthropic/claude-opus-4-7": { alias: "Opus" }
}
}
// optional: named agents go here
// list: [...]
},
channels: {
telegram: {
// channel config
streaming: {
mode: "...",
chunkMode: "...",
preview: { chunk: true },
block: { enabled: false, coalesce: true }
}
}
},
tools: {
// tool policy
},
auth: {
// auth profiles if used
},
models: {
// ONLY for custom provider definitions
// not for your default chat model
// providers: { ... }
}
}
The important modern rules
agents.defaults.model.primary= your default modelagents.defaults.models= optional allowlist / aliasesmodelstop-level = custom providers only- old
agent.*keys are legacy - old
models.defaultis legacy
- old Telegram streaming scalars are legacy
So for your manual cleanup
If you see these, they should go:
models.default
agent.model
channels.telegram.streamMode
channels.telegram.chunkMode
channels.telegram.blockStreaming
channels.telegram.draftChunk
channels.telegram.blockStreamingCoalesce
And the modern replacements are:
agents.defaults.model.primary
agents.defaults.models
channels.telegram.streaming.mode
channels.telegram.streaming.chunkMode
channels.telegram.streaming.preview.chunk
channels.telegram.streaming.block.enabled
channels.telegram.streaming.block.coalesce
Minimal version for your case
If your goal is just “make Opus 4.7 the default”, the clean core is:
{