mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-09-01 00:31:51 +03:00
refactor(models): unify preset names
This commit is contained in:
@@ -47,7 +47,7 @@ Use `/model` to inspect the current runtime model:
|
||||
/model
|
||||
```
|
||||
|
||||
The response shows the current session's model and preset, plus the available preset names. Named presets come from the top-level `modelPresets` config and are the recommended way to configure model choices. `default` is always available and represents the model settings from direct `agents.defaults.*` fields.
|
||||
The response shows the current session's model and preset, plus the available preset names. Each key under the top-level `modelPresets` config is the preset's canonical name everywhere nanobot displays or references it. `default` is always available and represents the model settings from direct `agents.defaults.*` fields.
|
||||
|
||||
To switch presets for future turns:
|
||||
|
||||
|
||||
+9
-19
@@ -1404,21 +1404,6 @@ Existing configs do not need to change. Direct `agents.defaults.model`, `provide
|
||||
{
|
||||
"modelPresets": {
|
||||
"fast": {
|
||||
"provider": "openrouter",
|
||||
"model": "anthropic/claude-sonnet-4.5",
|
||||
"maxTokens": 4096,
|
||||
"contextWindowTokens": 65536
|
||||
}
|
||||
},
|
||||
"agents": {
|
||||
"defaults": {
|
||||
"modelPreset": "fast",
|
||||
"fallbackModels": ["deep", "localSmall"]
|
||||
}
|
||||
},
|
||||
"modelPresets": {
|
||||
"fast": {
|
||||
"label": "Fast",
|
||||
"model": "gpt-4.1-mini",
|
||||
"provider": "openai",
|
||||
"maxTokens": 4096,
|
||||
@@ -1427,7 +1412,6 @@ Existing configs do not need to change. Direct `agents.defaults.model`, `provide
|
||||
"reasoningEffort": "low"
|
||||
},
|
||||
"deep": {
|
||||
"label": "Deep",
|
||||
"model": "claude-opus-4-5",
|
||||
"provider": "anthropic",
|
||||
"maxTokens": 8192,
|
||||
@@ -1435,22 +1419,28 @@ Existing configs do not need to change. Direct `agents.defaults.model`, `provide
|
||||
"reasoningEffort": "high"
|
||||
},
|
||||
"localSmall": {
|
||||
"label": "Local Small",
|
||||
"model": "llama3.2",
|
||||
"provider": "ollama",
|
||||
"maxTokens": 4096,
|
||||
"contextWindowTokens": 32768,
|
||||
"temperature": 0.2
|
||||
}
|
||||
},
|
||||
"agents": {
|
||||
"defaults": {
|
||||
"modelPreset": "fast",
|
||||
"fallbackModels": ["deep", "localSmall"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
`modelPresets` is a top-level object. The keys under it (`fast`, `deep`, `coding`, etc.) are user-defined preset names. Each preset supports:
|
||||
`modelPresets` is a top-level object. Each key (`fast`, `deep`, `coding`, etc.) is the preset's one canonical name: it is shown in the interface, passed to `/model <name>`, and referenced by defaults, fallbacks, sessions, and Dream. Names must be unique ignoring case. Each preset supports:
|
||||
|
||||
Older configs may still contain a `label` inside a preset. It is accepted when loading for compatibility but ignored; the object key remains the canonical name.
|
||||
|
||||
| Field | Description |
|
||||
|-------|-------------|
|
||||
| `label` | Optional display name shown in model lists. |
|
||||
| `model` | Model name to use for this preset. |
|
||||
| `provider` | Provider name, or `"auto"` to use provider auto-detection. |
|
||||
| `maxTokens` | Maximum completion/output tokens. |
|
||||
|
||||
@@ -71,7 +71,6 @@ This recipe applies when one API key routes many hosted model families.
|
||||
},
|
||||
"modelPresets": {
|
||||
"primary": {
|
||||
"label": "Primary",
|
||||
"provider": "openrouter",
|
||||
"model": "anthropic/claude-sonnet-4.5",
|
||||
"maxTokens": 4096,
|
||||
@@ -113,7 +112,6 @@ OpenCode Zen:
|
||||
},
|
||||
"modelPresets": {
|
||||
"primary": {
|
||||
"label": "OpenCode Zen",
|
||||
"provider": "opencode_zen",
|
||||
"model": "opencode/deepseek-v4-pro",
|
||||
"maxTokens": 4096,
|
||||
@@ -140,7 +138,6 @@ OpenCode Go:
|
||||
},
|
||||
"modelPresets": {
|
||||
"primary": {
|
||||
"label": "OpenCode Go",
|
||||
"provider": "opencode_go",
|
||||
"model": "opencode-go/deepseek-v4-flash",
|
||||
"maxTokens": 4096,
|
||||
@@ -182,7 +179,6 @@ This recipe applies when you have an OpenAI API key and want to call OpenAI dire
|
||||
},
|
||||
"modelPresets": {
|
||||
"primary": {
|
||||
"label": "OpenAI",
|
||||
"provider": "openai",
|
||||
"model": "gpt-5",
|
||||
"maxTokens": 4096,
|
||||
@@ -219,7 +215,6 @@ This recipe applies when your key comes from Anthropic and your model name is an
|
||||
},
|
||||
"modelPresets": {
|
||||
"primary": {
|
||||
"label": "Anthropic",
|
||||
"provider": "anthropic",
|
||||
"model": "claude-sonnet-4-5",
|
||||
"maxTokens": 4096,
|
||||
@@ -255,7 +250,6 @@ If you use an Anthropic-compatible proxy, keep the preset provider as `anthropic
|
||||
},
|
||||
"modelPresets": {
|
||||
"primary": {
|
||||
"label": "Anthropic proxy",
|
||||
"provider": "anthropic",
|
||||
"model": "claude-sonnet-4-5",
|
||||
"maxTokens": 4096,
|
||||
@@ -286,7 +280,6 @@ This recipe applies when your key comes from Kimi's Coding Plan endpoint. Nanobo
|
||||
},
|
||||
"modelPresets": {
|
||||
"kimiCoding": {
|
||||
"label": "Kimi Coding",
|
||||
"provider": "kimi_coding",
|
||||
"model": "kimi-for-coding",
|
||||
"maxTokens": 4096,
|
||||
@@ -324,7 +317,6 @@ This recipe applies to an OpenAI-compatible service that is not a named nanobot
|
||||
},
|
||||
"modelPresets": {
|
||||
"primary": {
|
||||
"label": "Custom",
|
||||
"provider": "custom",
|
||||
"model": "provider-model-name",
|
||||
"maxTokens": 4096,
|
||||
@@ -364,7 +356,6 @@ For multiple custom endpoints, do not overload the single `custom` block. Name e
|
||||
},
|
||||
"modelPresets": {
|
||||
"work": {
|
||||
"label": "Work proxy",
|
||||
"provider": "workProxy",
|
||||
"model": "gpt-4o-mini",
|
||||
"maxTokens": 4096,
|
||||
@@ -372,7 +363,6 @@ For multiple custom endpoints, do not overload the single `custom` block. Name e
|
||||
"temperature": 0.1
|
||||
},
|
||||
"lab": {
|
||||
"label": "Lab local",
|
||||
"provider": "lab-local",
|
||||
"model": "served-model-name",
|
||||
"maxTokens": 4096,
|
||||
@@ -408,7 +398,6 @@ ollama pull llama3.2
|
||||
},
|
||||
"modelPresets": {
|
||||
"local": {
|
||||
"label": "Local",
|
||||
"provider": "ollama",
|
||||
"model": "llama3.2",
|
||||
"maxTokens": 2048,
|
||||
@@ -453,7 +442,6 @@ This recipe applies when a local server exposes an OpenAI-compatible `/v1` API.
|
||||
},
|
||||
"modelPresets": {
|
||||
"local": {
|
||||
"label": "Local",
|
||||
"provider": "vllm",
|
||||
"model": "served-model-name",
|
||||
"maxTokens": 4096,
|
||||
@@ -480,7 +468,6 @@ For LM Studio, use its local base URL and provider name:
|
||||
},
|
||||
"modelPresets": {
|
||||
"local": {
|
||||
"label": "LM Studio",
|
||||
"provider": "lm_studio",
|
||||
"model": "local-model",
|
||||
"maxTokens": 2048,
|
||||
@@ -505,7 +492,6 @@ This recipe applies when one provider sometimes rate-limits, one model is expens
|
||||
{
|
||||
"modelPresets": {
|
||||
"fast": {
|
||||
"label": "Fast",
|
||||
"provider": "openrouter",
|
||||
"model": "anthropic/claude-sonnet-4.5",
|
||||
"maxTokens": 4096,
|
||||
@@ -513,7 +499,6 @@ This recipe applies when one provider sometimes rate-limits, one model is expens
|
||||
"temperature": 0.1
|
||||
},
|
||||
"deep": {
|
||||
"label": "Deep",
|
||||
"provider": "anthropic",
|
||||
"model": "claude-sonnet-4-5",
|
||||
"maxTokens": 4096,
|
||||
@@ -521,7 +506,6 @@ This recipe applies when one provider sometimes rate-limits, one model is expens
|
||||
"temperature": 0.1
|
||||
},
|
||||
"local": {
|
||||
"label": "Local",
|
||||
"provider": "ollama",
|
||||
"model": "llama3.2",
|
||||
"maxTokens": 2048,
|
||||
@@ -580,14 +564,12 @@ Use this after you have more than one preset and are chatting through a supporte
|
||||
{
|
||||
"modelPresets": {
|
||||
"fast": {
|
||||
"label": "Fast",
|
||||
"provider": "openrouter",
|
||||
"model": "anthropic/claude-sonnet-4.5",
|
||||
"maxTokens": 4096,
|
||||
"contextWindowTokens": 65536
|
||||
},
|
||||
"local": {
|
||||
"label": "Local",
|
||||
"provider": "ollama",
|
||||
"model": "llama3.2",
|
||||
"maxTokens": 2048,
|
||||
|
||||
@@ -633,7 +633,6 @@ Model presets are the recommended model configuration surface. Use them when you
|
||||
{
|
||||
"modelPresets": {
|
||||
"fast": {
|
||||
"label": "Fast",
|
||||
"provider": "openrouter",
|
||||
"model": "anthropic/claude-sonnet-4.5",
|
||||
"maxTokens": 4096,
|
||||
@@ -641,7 +640,6 @@ Model presets are the recommended model configuration surface. Use them when you
|
||||
"temperature": 0.1
|
||||
},
|
||||
"deep": {
|
||||
"label": "Deep",
|
||||
"provider": "anthropic",
|
||||
"model": "claude-opus-4-5",
|
||||
"maxTokens": 8192,
|
||||
@@ -667,7 +665,6 @@ Fallbacks are useful for transient provider failures, rate limits, or model avai
|
||||
{
|
||||
"modelPresets": {
|
||||
"fast": {
|
||||
"label": "Fast",
|
||||
"provider": "openrouter",
|
||||
"model": "anthropic/claude-sonnet-4.5",
|
||||
"maxTokens": 4096,
|
||||
@@ -675,7 +672,6 @@ Fallbacks are useful for transient provider failures, rate limits, or model avai
|
||||
"temperature": 0.1
|
||||
},
|
||||
"deep": {
|
||||
"label": "Deep",
|
||||
"provider": "anthropic",
|
||||
"model": "claude-opus-4-5",
|
||||
"maxTokens": 8192,
|
||||
@@ -683,7 +679,6 @@ Fallbacks are useful for transient provider failures, rate limits, or model avai
|
||||
"temperature": 0.1
|
||||
},
|
||||
"localSmall": {
|
||||
"label": "Local Small",
|
||||
"provider": "ollama",
|
||||
"model": "llama3.2",
|
||||
"maxTokens": 4096,
|
||||
|
||||
Reference in New Issue
Block a user