Модуль kernels: управление удалёнными ядрами Agent OS

🔵 Модуль kernels ведёт реестр удалённых инстансов Agent OS и даёт агентам управлять ими: мониторинг и запросы по HTTP-API ядра и жизненный цикл по SSH (через модуль remote). В отличие от remote (произвольные хосты), kernels знает, что цель — ядро Agent OS.

Модуль включён в стандартную поставку (modules.enabled → kernels) и требует remote (requires: ["remote"]).

52.1 Реестр

Ядро описывается документом: slug, base_url, token_secret, machine, deploy. Реестр — в DuckDB (logs/kernels.db), сидируется из config/remote/kernels.yaml (как и у remote, seed не перетирает правки в БД).

kernels:
  - slug: prod
    base_url: https://platform.example.com
    token_secret: PROD_ADMIN_TOKEN     # имя секрета, не сам токен
    machine: prod-host                 # slug машины из инвентаря `remote`
    tags: [prod]
    deploy:
      remote_dir: /home/realityfaker/agent_os
      archive: distrib/agent-os-distrib-linux.zip
      install_command: |
        set -e
        cd /home/realityfaker/agent_os
        unzip -o distrib/agent-os-distrib-linux.zip -d /tmp/ao-distrib
        install -m 0755 /tmp/ao-distrib/agent-os-distrib/bin/agent-os target/release/agent-os
      log_path: /home/realityfaker/agent_os/agent_os.log

Пути переопределяются AGENT_OS_KERNELS_DB / AGENT_OS_KERNELS_CONFIG.

52.2 Транспорты {#transports}

52.3 Инструменты

См. Справочник инструментов.

Группа kind
Реестр kernel_list, kernel_get, kernel_upsert, kernel_delete
HTTP kernel_health, kernel_models, kernel_agents, kernel_templates, kernel_request
SSH kernel_service, kernel_logs, kernel_deploy

Пример:

kind: kernel_service
name: prod_service
description: Управление сервисом agent-os на прод-хосте

52.4 HTTP API

Endpoint Описание
GET /v1/kernels список ядер 🔒
POST /v1/kernels создать/обновить ядро 🔒
GET /v1/kernels/:slug одно ядро 🔒
PUT /v1/kernels/:slug обновить 🔒
DELETE /v1/kernels/:slug удалить 🔒
GET /v1/kernels/:slug/health health-проба удалённого ядра (HTTP) 🔒

52.5 Безопасность

52.6 Ограничения