mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-08-08 05:18:49 +03:00
feat(config): add actionable startup diagnostics and WebUI recovery (#5110)
This commit is contained in:
+13
-1
@@ -11,7 +11,7 @@ Use this page when you know what you want to run and need the command shape. For
|
||||
| Refresh config non-interactively | `nanobot onboard --refresh` | Preserves existing values and adds missing default fields without prompting |
|
||||
| Use guided setup | `nanobot onboard --wizard` | Best when you prefer prompts over hand-editing JSON |
|
||||
| Open the browser workbench | `nanobot webui` | Prepares local WebUI settings, starts the gateway, and opens the browser |
|
||||
| Check config without calling a model | `nanobot status` | Summarizes the selected config, workspace, active model, and providers |
|
||||
| Check readiness without calling a model | `nanobot status` | Summarizes config/workspace and validates the active provider/model configuration |
|
||||
| Send one test message | `nanobot agent -m "Hello!"` | First proof that install, config, provider, model, and workspace all work |
|
||||
| Chat in the terminal | `nanobot agent` | Interactive local chat; exit with `exit`, `/exit`, `:q`, or `Ctrl+D` |
|
||||
| Run the gateway directly | `nanobot gateway` | Service/ops command for WebUI, chat apps, cron, and heartbeat |
|
||||
@@ -70,6 +70,18 @@ Default paths:
|
||||
| Config | `~/.nanobot/config.json` |
|
||||
| Workspace | `~/.nanobot/workspace/` |
|
||||
|
||||
## Status
|
||||
|
||||
| Command | Description |
|
||||
|---|---|
|
||||
| `nanobot status` | Summarize the default config/workspace and check Agent provider/model readiness |
|
||||
| `nanobot status --config <path>` | Check a specific config file |
|
||||
| `nanobot status --workspace <path>` | Show status with a workspace override |
|
||||
|
||||
Status does not send a model request. On success, run the printed
|
||||
`nanobot agent -m "Hello!"` command to verify network access and credentials. On failure,
|
||||
follow the printed WebUI **Settings → Models** or `nanobot onboard --wizard` route.
|
||||
|
||||
## Agent CLI
|
||||
|
||||
| Command | Description |
|
||||
|
||||
@@ -90,7 +90,9 @@ Instead of storing secrets directly in `config.json`, you can use `${VAR_NAME}`
|
||||
|
||||
Any string value in `config.json` can use `${VAR_NAME}`. Resolution runs once at startup, in memory only — resolved values are never written back to disk, so editing config through `nanobot onboard` or the WebUI preserves the placeholder.
|
||||
|
||||
If a referenced variable is unset, nanobot fails fast at startup with `ValueError: Environment variable 'NAME' referenced in config is not set`.
|
||||
If a referenced variable is unset, nanobot fails fast and reports the exact config field
|
||||
and variable name without echoing the field value. Run `nanobot status` with the same
|
||||
`--config` path to inspect the problem.
|
||||
|
||||
### More examples
|
||||
|
||||
|
||||
+15
-2
@@ -23,15 +23,20 @@ This separates failures into layers:
|
||||
| Layer | What it proves |
|
||||
|---|---|
|
||||
| `nanobot --version` | Install and shell command discovery |
|
||||
| `nanobot status` | Config path, workspace path, active model, and provider summary |
|
||||
| `nanobot status` | Config path, workspace, environment references, and active provider/model configuration |
|
||||
| `nanobot agent -m "Hello!"` | Config loading, provider/model access, workspace writes, and agent loop |
|
||||
| `nanobot gateway` | Channel startup, cron system jobs, heartbeat, WebUI/WebSocket, and health endpoint |
|
||||
|
||||
If `nanobot agent -m "Hello!"` fails, fix that before debugging WebUI, Telegram, Discord, Docker, systemd, or any chat app.
|
||||
|
||||
`nanobot status` does not call the model. If provider/model setup is incomplete, it points to
|
||||
WebUI **Settings → Models** or the CLI setup wizard, then prints the command to check again.
|
||||
|
||||
## How to Read `nanobot status`
|
||||
|
||||
`nanobot status` does not call a model. It only checks whether nanobot can find the selected config, selected workspace, active model or preset, and provider setup summary.
|
||||
`nanobot status` does not call a model. It checks the selected config and workspace,
|
||||
resolves environment references, and validates the local settings required by the active
|
||||
provider/model without constructing a provider client.
|
||||
|
||||
The output has this shape:
|
||||
|
||||
@@ -41,6 +46,7 @@ nanobot Status
|
||||
Config: /path/to/config.json ✓
|
||||
Workspace: /path/to/workspace ✓
|
||||
Model: provider/model-name (preset: primary)
|
||||
Agent: ✓ provider/model configuration is ready
|
||||
Provider A: not set
|
||||
Provider B: ✓
|
||||
Local Provider: ✓ http://localhost:11434/v1
|
||||
@@ -54,6 +60,7 @@ Read it like this:
|
||||
| `Config` | It points to the config file you meant to use and shows `✓`. | Run `nanobot onboard`, or pass `--config` to `nanobot agent`, `gateway`, or `serve` when testing a non-default instance. |
|
||||
| `Workspace` | It points to the workspace you meant to use and shows `✓`. | Run `nanobot onboard`, create the folder, fix permissions, or pass `--workspace` on commands that support it. |
|
||||
| `Model` | It shows the active model or the preset name you expect. | Set `agents.defaults.modelPreset` to the intended preset, or check `/model` if you changed models during a chat session. |
|
||||
| `Agent` | It says `provider/model configuration is ready`. | Follow the printed WebUI or CLI setup route, then run `nanobot status` again. |
|
||||
| Provider rows | The provider used by the active preset shows `✓`, an OAuth marker, or a local URL. | Configure only the active provider first. It is normal for unused providers to say `not set`. |
|
||||
|
||||
If `nanobot status` looks right but `nanobot agent -m "Hello!"` fails, the install and config paths are probably fine. Continue with [Provider and Model Problems](#provider-and-model-problems).
|
||||
@@ -108,6 +115,12 @@ Common config mistakes:
|
||||
| Environment variable error | `${VAR_NAME}` references are resolved at startup. Set the variable before running nanobot. |
|
||||
| Edited config but behavior did not change | Restart `nanobot gateway`; long-running processes read config at startup. |
|
||||
|
||||
After editing config, check the shortest path to an Agent reply:
|
||||
|
||||
```bash
|
||||
nanobot status
|
||||
```
|
||||
|
||||
To refresh missing defaults without overwriting existing settings, run:
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user