mirror of
https://github.com/sipeed/picoclaw.git
synced 2026-05-25 16:00:35 +00:00
77b0c43392
* refactor: support explicit model list providers * fix(web): preserve explicit model providers * fix(web): preserve legacy provider prefixes on model updates fix(models): normalize explicit provider-prefixed ids fix(api): preserve legacy model updates across providers fix(agent): preserve config identity for explicit provider refs * fix ci
1.8 KiB
1.8 KiB
Troubleshooting
"model ... not found in model_list" or OpenRouter "free is not a valid model ID"
Symptom: You see either:
Error creating provider: model "openrouter/free" not found in model_list- OpenRouter returns 400:
"free is not a valid model ID"
Cause: PicoClaw now resolves provider/model in two steps:
- If
provideris set, themodelfield is sent to that provider unchanged. - If
provideris omitted, PicoClaw infers the provider from the first/segment and sends everything after that first/as the runtime model ID.
For OpenRouter free-tier routing, the preferred config is explicit provider.
- Wrong:
"model": "free"→ no OpenRouter provider is selected, sofreeis not a valid OpenRouter model route. - Right:
"provider": "openrouter", "model": "free"→ OpenRouter receivesfree. - Also supported:
"model": "openrouter/free"→ provider resolves toopenrouter, runtime model ID resolves tofree.
Fix: In ~/.picoclaw/config.json (or your config path):
- agents.defaults.model_name must match a
model_nameinmodel_list(e.g."openrouter-free"). - That entry should preferably set provider to
openrouter, and model should be a valid OpenRouter model ID, for example:"free"– auto free-tier"google/gemini-2.0-flash-exp:free""meta-llama/llama-3.1-8b-instruct:free"
Example snippet:
{
"agents": {
"defaults": {
"model_name": "openrouter-free"
}
},
"model_list": [
{
"model_name": "openrouter-free",
"provider": "openrouter",
"model": "free",
"api_keys": ["sk-or-v1-YOUR_OPENROUTER_KEY"],
"api_base": "https://openrouter.ai/api/v1"
}
]
}
Get your key at OpenRouter Keys.