Что такое Cradle?

Cradle — шлюз между вашим агентом и его инструментами. Агент предлагает действие, правила решают, можно ли его выполнить, и решение остаётся в журнале, который нельзя переписать незаметно.

Определение

Cradle — шлюз между вашим агентом и его инструментами. Агент предлагает действие, правила решают, можно ли его выполнить, и решение остаётся в журнале, который нельзя переписать незаметно.

У механизма во всей документации одно имя: шлюз исполнения (execution gate). Ваш агент не вызывает инструменты напрямую. Он подаёт типизированное предложение; шлюз оценивает его без участия модели; результат дописывается в журнал с хеш-цепочкой.

Отсюда три свойства, именно в этом порядке:

  • Governed. Правило живёт снаружи агента и версионировано — видно, по какому именно разрешили вызов. Подтверждено policy.ts, registry.ts, approvals.ts.
  • Sovereign. Своё железо, свой контур. Модели и данные его не покидают. Подтверждено Docker, локальными GGUF-моделями, node-llama-cpp.
  • Auditable. Append-only журнал с хеш-цепочкой, проверяется запуском команды. Подтверждено audit.ts и verifyAuditChain().

Эта страница разделяет что работает сегодня и принятую архитектуру. Разделение существенно: архитектура — это решение, а не описание всех путей, которые есть в коде прямо сейчас.

Что работает сегодня

В коде существуют два механизма. Они управляют разными вещами и между собой не связаны.

Шлюз исполнения — действия над системами

src/core/runtime/ решает, можно ли выполнить вызов инструмента:

Предложение агента        типизированное, вместо прямого вызова
  → детерминированный     контракт, регистрация инструмента, требуемые права,
    гейт                  класс побочного эффекта (чистый → необратимый),
                          идемпотентность
  → одобрение человека    для необратимого: с границами, со сроком,
                          однократное, никогда не выданное самому себе
  → исполнение            незарегистрированный инструмент вызвать нельзя
  → запись в журнал       предложение, решение, наблюдение — цепочка SHA-256

Сегодня доступен через агентный цикл вызова инструментов и десктопный клиент. По HTTP не выставлен: src/server/ не ссылается на gateway.ts, поэтому внешний агент не может подать предложение в сервер.

Двухуровневая оценка риска — ответы людям

src/core/triage/ решает, можно ли отправить черновик ответа:

Входящее сообщение
  → Риск L1 (детерминированные правила) → флаги PII / инъекций / опасного
  → Риск L2 (LLM-классификатор)         → { category, risk, confidence, skills }
  → Роутер                              → выбирает агента по роли и навыкам
  → RAG                                 → опирает черновик на вашу базу знаний
  → Агент                               → пишет черновик с цитатами
  → Решение:
      green            → автоответ
      yellow / red     → Inbox оператора → approve / edit / reject → отправка

Этот путь не проходит через шлюз исполнения: orchestrator.ts не вызывает gateway.ts.

Верификация

Движок верификации существует — реестр, верификаторы поверх инструментов, компенсация, переходы состояния. С доменными пакетами не поставляется ни одного верификатора (verifiers: [] в обоих). Постусловие без зарегистрированного верификатора завершается как inconclusive, но никогда как pass. Механизм построен, содержимого нет. «Доказать, что произошло на самом деле» — пока не часть продукта.

Принятая архитектура

Cradle — нейросимволическая среда исполнения: модель рассуждает в вероятностях, среда управляет явными правилами, и эти правила выражены над словарём выполнения, а не в прозе промпта. Это решение о том, куда движется продукт; полностью оно описано в документе нейросимволическая среда исполнения, где каждый раздел помечен как текущее состояние или как цель.

Чего этот документ не утверждает: что риск-гейт сегодня обращается к словарю выполнения. Не обращается — два механизма выше независимы. Утверждение станет верным, когда появится путь, и не раньше.

Из чего это состоит

ЧастьЧто этоРоль
Cradle (десктоп)Electron-клиентКонсоль: настроить коннекторы, проверить и одобрить. Инференс сам не выполняет.
Cradle Server / cradle-cliHeadless cradle-server + тонкий CLIХранит данные и коннекторы, выполняет инференс.
SmartNotesОтдельное приложениеИнтеграция, а не часть Cradle: отдельный репозиторий, связь по MCP через smartnotes-local.

Существующие каналы: Telegram, встраиваемый веб-виджет, HTTP API и MCP в обе стороны — Cradle может и потреблять ваши MCP-серверы, и выступать одним из них.

Куда дальше