# 18. Глоссарий

🔵 Единые термины для всей документации.

| Термин | Определение |
|---|---|
| **Ядро (kernel)** | событийный цикл Agent OS: планирует, лимитирует, изолирует, маршрутизирует IPC и посредничает в tool-вызовах |
| **LLM** | языковая модель; «CPU» платформы — инференс выполняется на внешнем провайдере |
| **Провайдер** | подключаемый LLM-бэкенд (OpenAI-совместимый, DeepSeek, Ollama) |
| **Агент / процесс** | независимая единица со своим PID, инструкциями, контекстом, инструментами и бюджетом |
| **Шаблон (template)** | переиспользуемый рецепт агента в `config/agents/<name>/agent.yaml` |
| **Сессия** | разговор пользователя, привязанный к процессу (`session_id`, `user_id`) |
| **PID** | уникальный идентификатор процесса (UUID) |
| **Lazy spawn** | процесс создаётся по первому запросу к шаблону, а не при старте |
| **Контекстное окно** | ограниченная рабочая память агента (история сообщений) с политикой вытеснения |
| **Вытеснение (eviction)** | политика освобождения контекста: `fifo`, `summary_first`, `sliding_window` |
| **Токен** | единица расхода LLM (и денег — через прайсинг) |
| **Бюджет (token bucket)** | лимиты токенов: `refill_per_sec`, `max_bucket`, `max_total` |
| **Бюджетная группа** | общая квота на дерево процессов (аналог cgroups) с опциональными слоями per-user и per-session |
| **Уровень бюджета** | что исчерпано: `session` / `user` / `group` |
| **Планировщик** | решает, какой готовый процесс выполняется следующим |
| **Лимит конкурентности** | потолок на число одновременно потокующих токены процессов |
| **Инструмент (tool)** | единственный способ агента взаимодействовать с миром; каждый вызов посредничает ядро |
| **Встроенный инструмент** | `http_fetch`, `fs_read`, `job_done` — реализация в ядре, без YAML |
| **Хук** | перехватчик жизненного цикла агента (до/после хода) |
| **IPC** | обмен сообщениями между агентами (`send`/`recv`) |
| **Syscall (системный вызов)** | API, которым агент просит услуги ядра (`spawn`, `fork`, `kill`, `yield`, …) |
| **fork / spawn** | клонировать процесс (COW-контекст, наследование группы) / создать новый |
| **Субагент** | дочерний агент-процесс, которому делегируют задачу и читают ответ |
| **State store** | scoped key-value (session / user / agent), DuckDB-бэкенд |
| **Message store** | транскрипты сессий + FAQ-кэш + полнотекстовый поиск |
| **Event store / Event DB** | событийное хранилище DuckDB (`logs/events.db`) |
| **JSONL-трейс** | построчный журнал событий одного процесса (`process-<pid>.jsonl`) |
| **Чекпоинт** | снимок состояния процесса для восстановления |
| **Cron-задание** | запуск агента по расписанию (`schedule` / `interval_secs` / `oneshot_at`) |
| **Монитор** | pull-триггер: следит за источником (RSS) и запускает агента при новых элементах |
| **Триггер** | что запускает агента без человека: cron / webhook / monitor |
| **Канал** | вход агента: HTTP API, виджет, Telegram, email, webhook |
| **Sink** | куда доставляется результат (log / webhook / telegram / messages_db / email / agent / workflow) |
| **Воркфлоу** | декларативный пайплайн (DAG) из шагов `agent` / `tool` / `condition` / `for_each` |
| **Live reload** | hot-reload `config/agents/**` и `config/web/**` без рестарта |
| **Структурированный вывод** | `output_schema` — агент завершается через `job_done` с валидированным payload |
| **MiniJinja** | шаблонный движок (`{{ var }}`, `{% if %}`) в инструментах и воркфлоу |
| **Скриптовый инструмент/хук** | инструмент/хук на JS (QuickJS) или Rhai |
| **Rhai** | компактный встраиваемый язык (`.rhai`) |
| **QuickJS** | встроенный JavaScript-движок (`.js`) |
| **Виджет** | встраиваемый чат-интерфейс (`/widget`, `/widget.js`) |
| **Прокси** | `/proxy` — защищённый (SSRF-safe) прокси для фронтенда |
| **Admin API** | эндпоинты `🔒`, требующие bearer-токен или session-cookie |
