nanobot: 2026-09-16 09:17:27
This commit is contained in:
@@ -5,6 +5,11 @@ chování. Nečtou se každý tah — čti on-demand, když jsou pro dotaz relev
|
|||||||
|
|
||||||
## Soubory
|
## Soubory
|
||||||
|
|
||||||
|
- **`nanobot-internals.md`** — ověřená fakta z nanobot zdrojáků: volání skillů
|
||||||
|
(`$skill-name` injekt vs `/` command router), breaking change 0.3.0 → 0.3.5
|
||||||
|
v odmítání neznámých slash commandů, skill loading pořadí, session storage
|
||||||
|
migrace, env vars, `/health` 503. Sáhni sem při upgradech nanobotu nebo když
|
||||||
|
přestane fungovat něco co dřív fungovalo.
|
||||||
- **`models.md`** — fakta a naměřené hodnoty o modelech dostupných téhle instanci:
|
- **`models.md`** — fakta a naměřené hodnoty o modelech dostupných téhle instanci:
|
||||||
nakonfigurované presety (provider, kontext, multimodalita), přímo změřená rychlost a
|
nakonfigurované presety (provider, kontext, multimodalita), přímo změřená rychlost a
|
||||||
latence na Ollama Cloud, profil verbozity, rozdíly ve schopnostech (kódování, tvrdé
|
latence na Ollama Cloud, profil verbozity, rozdíly ve schopnostech (kódování, tvrdé
|
||||||
|
|||||||
52
knowledge/nanobot-internals.md
Normal file
52
knowledge/nanobot-internals.md
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# nanobot internals — ověřená fakta ze zdrojáků
|
||||||
|
|
||||||
|
Ověřeno proti v0.3.5 (`nanobot/agent/skills.py`, `nanobot/command/router.py`, tag v0.3.5 na GitHubu).
|
||||||
|
|
||||||
|
## Volání skillů
|
||||||
|
|
||||||
|
- **`$skill-name`** v textu zprávy = explicitní injekt SKILL.md do turnu.
|
||||||
|
- Regex: `(?<![\w$])\$([A-Za-z0-9_-]+)` — `get_explicitly_invoked_skills()` v `skills.py`
|
||||||
|
- Zpráva jde normálně k LLM; SKILL.md (bez frontmatteru) se vloží jako
|
||||||
|
`[Active Skills — instructions for this user turn]` RuntimeContextBlock
|
||||||
|
- Nezávislé na command routeru (nezačíná `/`), funguje přes všechny kanály
|
||||||
|
(Telegram ověřeno 2026-09-16)
|
||||||
|
- CLI App aliases se resolvují taky (`installed_skill_aliases()`)
|
||||||
|
- **`/jmeno`** = command router. Jen builtins (`/new`, `/stop`, `/model`, `/skill`,
|
||||||
|
`/trigger`, `/pairing`, … — seznam v `nanobot/command/builtin.py`,
|
||||||
|
`BUILTIN_COMMAND_SPECS`). Custom skilly nelze registrovat jako slash command.
|
||||||
|
- **v0.3.0 vs v0.3.5 breaking change**: v 0.3.0 `is_dispatchable_command()`
|
||||||
|
neznámý `/cokoli` propustil k LLM (fallback interpretace). V 0.3.5 vrací
|
||||||
|
`True` pro jakýkoliv text začínající `/` → router odmítne
|
||||||
|
(`Unknown command "/usage". Use "/help"...`), zpráva nikdy nedosáhne LLM.
|
||||||
|
Proto custom `/usage` přestalo fungovat po upgradu; `$usage` funguje dál.
|
||||||
|
|
||||||
|
## Skill loading pořadí
|
||||||
|
|
||||||
|
1. workspace (`workspace/skills/`) — highest priority
|
||||||
|
2. Agent Plugin skills (`workspace/plugins/`)
|
||||||
|
3. builtin (`nanobot/skills/`) — duplicity skipnuté dle jména
|
||||||
|
|
||||||
|
Disabled skilly se filtrují přes `disabled_skills` + aliases.
|
||||||
|
|
||||||
|
## Progresivní loading
|
||||||
|
|
||||||
|
System prompt obsahuje jen summary (jméno + description + cesta) —
|
||||||
|
`build_skills_summary()`. Plný obsah SKILL.md se načte až:
|
||||||
|
- explicitně: `$skill-name` v turnu
|
||||||
|
- agent sám: `read_file` na cestu ze summary
|
||||||
|
|
||||||
|
## Sessions storage (v0.3.5)
|
||||||
|
|
||||||
|
- JSONL soubory: `<config-dir>/sessions/<workspace-id>/` (mimo workspace)
|
||||||
|
- Migrace z `<workspace>/sessions/` proběhne automaticky při prvním startu po
|
||||||
|
upgradu (atomic copy, symlinks rejected)
|
||||||
|
- Downgrade: `nanobot sessions restore-workspace --config <config.json> --workspace <workspace>`
|
||||||
|
|
||||||
|
## Env vars (v0.3.5)
|
||||||
|
|
||||||
|
- `NANOBOT_LLM_TIMEOUT_S` — zrušen (Unused)
|
||||||
|
- `NANOBOT_STREAM_IDLE_TIMEOUT_S` — default 90 s, idle-based (renewed per stream
|
||||||
|
event), max 3600; platí i pro interní tasky (Dream, heartbeat, title gen)
|
||||||
|
- `NANOBOT_MAX_CONCURRENT_REQUESTS` — default unlimited, kladné int = cap
|
||||||
|
- `/health` může vracet HTTP 503, když enabled WS channel neběží (Zabbix check!
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user