# chatbots (adapter system)

Persona chatbot toolbank: register/list bot persona adapters (system prompt, model, wakewords, theme, function-call banks) and build a packed context string from attachments for a turn. Feeds the...


Persona-chatbot **toolbank**. Ported from `leumas-middleware/lib/a.chatbots` — the pure core only:
an in-memory persona registry plus a context-packer. The express server, Vite frontend, sqlite
`bot-databases/`, embedded avatar/cover data-URIs, and the ollama runtime were stripped (the LLM
runtime lives in `@leumas/chatbots` / Leviathan).

Feeds the chatbot engine's bank/tool registry alongside [`functioncalls`](../functioncalls).

## Tools (`adapters`)

| tool | args | result |
|------|------|--------|
| `registerBot` | persona object `{ slug, name, model, system, functionCalls, functionCallBanks, theme, ... }` | `{ ok, slug, bot }` |
| `listBots` | — | `{ bots: [...] }` |
| `getBot` | `{ slug }` | the stored bot record |
| `resolveTools` | `{ slug, bankRegistry }` | `{ tools: [name,...] }` — explicit calls + banks expanded |
| `buildContextPack` | `{ attachments, budget, allowFetch }` | `{ context }` — numbered `[ctx:n]` system prefix |

`buildContextPack` is network-free unless `allowFetch:true` and a `url` attachment is present.


---
Source: shared/engines/adapters/domain/chatbots/README.md
Canonical: https://docs.leumas.tech/p/adapters/domain/chatbots
