Модуль II — живая работа и сессии
Модуль II — это представление живой работы estate: что каждая сессия агента делает прямо сейчас, её живые суммарные токены и стоимость, выводимое состояние Claude Code и реконструируемая временная шкала. Тогда как модуль I (инвентаризация) материализует устойчивый estate, модуль II ведёт живое операционное наложение на каждую сессию поверх того же потока наблюдений — и показывает только то, что этот поток честно несёт.
Olivares 0.4 также запускает официальные CLI провайдеров как собственных потомков
под профилем провайдера. Этот управляемый
путь — тот же модуль. Он не заменяет наложение и не сливает два home, которые
объявляют один и тот же id сеанса провайдера (CHANGELOG.md [26.9.0] B1/B2).
Что это такое
Заголовок раздела «Что это такое»Модуль II — управляемый шиной модуль слоя Core, родственный инвентаризации. Он ведёт живую запись с ключом по внешней ссылке каждой сессии, построенную из совместного потока наблюдений — никогда не опрашиваемую, никогда не сфабрикованную. На каждую сессию он отслеживает:
- текущее действие (последний использованный инструмент) и ресурс/режим, которого оно коснулось;
- живые суммарные токены и стоимость, считываемые из выборок стоимости (канонический ledger стоимости и FinOps — это модуль XI, а не здесь; это только живая цифра);
- выводимое состояние Claude Code (
cc_state); и - временную шкалу, к которой каждое наблюдаемое событие добавляется в порядке приёма.
Его контракт и сущности
Заголовок раздела «Его контракт и сущности»Модуль регистрирует две сущности в области арендатора. sessions.live хранит живую
запись на каждую сессию — текущее действие/ресурс/режим, ссылку на модель, живые
входные/выходные токены, живую стоимость, счётчики событий и вызовов инструментов, а
также метки времени первого/последнего события. sessions.timeline хранит одну
воспроизводимую строку на каждое событие, упорядоченную по приёму. Столбца с
хранимым жизненным циклом нет: совместный поток не несёт сигнала о завершении или
сбое, поэтому единственный честный признак активности — выводимое cc_state.
cc_state выводится во время чтения из недавности событий — active / idle /
ended — и переходит в состояние скрытого уклонения, когда коннектор поднимает эту
находку (модуль никогда не записывает его сам). Чтения обслуживаются под маршрутами
модуля (живой список, одна сессия, временная шкала на сессию) плюс живой поток SSE;
каждое чтение требует разрешения на чтение сессии, а открытие потока автоматически
проходит аудит. Канал SSE строго изолирован по арендатору (клиент получает
только снимки для своего авторизованного арендатора) и работает по принципу
наилучших усилий (медленный клиент пропускает промежуточный кадр и получает
следующий — приём никогда не блокируется).
Provider profiles and live_ref
Заголовок раздела «Provider profiles and live_ref»Профиль провайдера — устойчивая идентичность одного настроенного экземпляра
провайдера в одной среде выполнения: драйвер, среда и канонические
config_home / user_home. Это не аутентифицированная учётная запись
провайдера. Регистрация, переименование, отключение/включение и вывод живут
под /v1/m/sessions/provider-profiles. Пути появляются только на admin-чтении
configuration. Запуск называет provider_profile_ref; сервер разрешает homes
и сохраняет несекретный снимок на run до spawn (CHANGELOG.md [26.9.0] B1;
web/src/features/agentops/types.ts).
Наблюдение складывается в живую строку своего канала, который сервер
вычисляет из регистрации источника, проштампованной хостом
(CHANGELOG.md [26.9.0] B2):
| Channel | Meaning |
|---|---|
legacy |
no registration |
observed |
a source dedicated to a profile by a binding approved at host admission for the exact applied revision |
source |
a known registration with no verifiable profile |
managed |
a run the plane launched; the only row carrying canonical_sid and run_ref |
Каждая живая строка предоставляет live_ref и attribution. Два homes,
объявляющие один и тот же id сессии провайдера, — две строки с двумя шкалами.
Читайте одну строку через GET /v1/m/sessions/live/by-id/{live_ref} (и её
запрос timeline / stream / runs). Голые маршруты внешнего id остаются и
legacy: отвечают только для legacy-строки.
Драйверы регистрируются на каждом узле при запуске. При запуске сеанса движок
использует новейшую проверенную управляемую установку, затем CLI из своего PATH.
OLIVARES_SESSION_RUNTIME_CLAUDE_BIN, _CODEX_BIN, _GROK_BIN и _OPENCODE_BIN
явно переопределяют этот выбор (см. Конфигурация).
Если исполняемый файл не найден, запуск отклоняется. Остальные проверки готовности,
включая аутентификацию профиля и политику запуска, остаются в силе. Шаги оператора:
Управлять сеансом провайдера.
Сообщение может нести изображения. olivares session send <session> --attach shot.png "what is wrong here?" и редактор сообщения в консоли (вставка, перетаскивание или скрепка)
сохраняют каждое изображение PNG, JPEG, WebP или GIF вместе с сессией — не более четырёх на
сообщение и по 3.75 MB каждое — и отправляют их вместе с текстом; сообщению нужен его текст,
поэтому одно изображение не отправляется (CLI и редактор запрашивают текст). Claude Code
получает блок содержимого с изображением, а Codex — свой собственный ввод изображений;
инструмент без ввода изображений отклоняет сообщение с указанием названия инструмента, до того как что-либо
будет отправлено. API: POST /v1/m/sessions/runs/{ref}/attachments (изображение, base64),
GET .../attachments/{id} и attachments в .../input. Изображения хранятся в каталоге
данных, отдельно для каждого тенанта и сессии, и удаляются вместе с сессией.
Что он потребляет (и что выводит)
Заголовок раздела «Что он потребляет (и что выводит)»Модуль II потребляет тот же поток наблюдений с минимальными данными, что и
инвентаризация — edge.observed, cost.sampled и
finding.reported. Только рёбра, чьим инициатором является сессия, порождают
живую работу; выборки стоимости, привязанные к сессии, добавляются к живой цифре
токенов/стоимости (никакой CostRecord здесь не записывается); находки с субъектом-
сессией аннотируются, а находка анти-уклонения помечает состояние уклонения. Два поля
выводятся живо из тех же сигналов: agent_ref — из агента, приписанного сессии,
и summary — из находки уплотнения контекста (forensic), чей заголовок по контракту
безопасен в качестве сводки — никогда не сфабрикованная LLM сводка.
Связанное
Заголовок раздела «Связанное»- Справочник по шине событий — события
edge.observed,cost.sampledиfinding.reported, которые потребляет этот модуль. - Каталог модулей — где находится модуль II и честное разделение actuate.
- Карта доступа и ресурсов — родственный модуль Core, который владеет графом доступа R/RW.
- Обзор архитектуры — движок и слои.
- Подключить Claude Code — начать производить живой поток.
- Честность и ограничения — что продукт делает и чего не делает сегодня.