Agent Studio . документация . aioperatingsystem.ru

Как работать в Agent Studio

Описание каждой вкладки и правил работы. Открывай раздел — читай, действуй уверенно.

01 Каталог скиллов

Где: левый sidebar — раздел КАТАЛОГ

Все 50+ скиллов системы, сгруппированные по контурам (Продажи, BOS, AS, AI, LOS и т.д.). Скилл = роль с инструкциями + memory + preferred runtime.

Как работать:

  • Клик по скиллу — открывается новый чат с этой ролью
  • ПКМ на скилл — закрепить (попадёт в раздел ЗАКРЕПЛЁННЫЕ)
  • Поиск сверху ищет по имени и описанию
  • orchestrator — главные штабы (los-hq, bos-hq, as-hq, navigator)
  • agent — рабочие агенты (sys-arch, ops-director)
  • tool — утилиты (skill-workshop, ux-ui)
  • client — клиентские агенты агентства
Правило: запускай скилл строго из своего контура. Если задача не его — он сам пришлёт REDIRECT PACKET.

02 Чаты

Где: левый sidebar — раздел ЧАТЫ

История запусков скиллов. Каждый чат — отдельная сессия с полным контекстом.

  • «Открыт» — активная сессия, можно продолжить
  • Время — когда последняя активность
  • Клик — перейти в чат и продолжить разговор
  • Крестик справа — закрыть чат (история сохранится)
Совет: не плоди чатов на одну тему. Лучше вернись в существующий — runtime сохраняет контекст.

03 Среда скилла (runtime)

Где: верхняя панель чата при открытии скилла

Показывает где скилл работает: какой runtime (Claude / Codex / Gemini / DeepSeek / Ollama), какая модель, какие источники контекста подключены.

  • FULL — всё подгружено корректно
  • PARTIAL — что-то частично доступно (warning)
  • BROKEN — критическая ошибка, скилл не запустится
  • Test now — кнопка живой проверки runtime (пинг)
  • C:N T:N M:N A:N — счётчики: Чаты / Tasks / Memory / Agents
Правило: при PARTIAL/BROKEN сначала проверь runtime через Test now, потом запускай.

04 COMPANY · Организация

Где: левый sidebar — COMPANY — Организация

Вертикальное дерево скиллов: OCC в корне → Инструменты OCC + 3 контура (TECH / LOS / BOS). Структура читается из поля CONTOUR в frontmatter каждого скилла.

  • Цветные теги контуров: TECH фиолетовый / LOS бирюзовый / BOS жёлтый / OCC оранжевый
  • Клик на ▸ — раскрыть дочерние скиллы
  • Клик на имя — правая панель с деталями (NEXT_STEP, last sync, подчинённые)
  • Клиенты — отдельный блок внизу, вне основного дерева
  • Поиск + Свернуть всё / Развернуть всё — кнопки сверху
Если скилл не в той ветке: проверь поле CONTOUR в frontmatter .md файла — оно определяет позицию в дереве.

05 COMPANY · Навыки

Где: левый sidebar — COMPANY — Навыки

Реестр всех скиллов с метаданными из frontmatter (description, contour, type, runtime).

  • Tab «Список» — таблица с поиском и фильтром по контуру/типу
  • Tab «Офис» — анимированная визуализация (Skills Office) — допиливается «для души»
  • Клик на скилл — expand с frontmatter
Если поля пустые — иди в /skill-workshop и заполни frontmatter скилла.

06 COMPANY · Активность

Где: левый sidebar — COMPANY — Активность

Глобальный live-стрим всех событий системы за последние сутки: запуски скиллов, коммиты, сообщения в шине, recovery suggestions.

  • Автообновление каждые 10 сек
  • Источник — таблица events в SQLite (Learning Loop)
  • 50 последних событий в ленте
Используй для: увидеть что вообще происходит в системе прямо сейчас.

07 COMPANY · Расходы

Где: левый sidebar — COMPANY — Расходы

Учёт API-расходов в долларах: каждый run скилла пишет токены input/output × тариф рантайма — cost_usd.

  • Этот месяц: $X.XX / Бюджет $Y
  • Tabs: По runtime / По skill / По модели
  • Последние 50 runs с детализацией
  • Цены: Claude Sonnet 4.7 = $3/15 за 1M, Opus = $15/75, Haiku = $0.80/4, GPT-5.4 = $2.50/10, Gemini 2.5 Pro = $1.25/5, DeepSeek = $0.27/1.10
Правило: устанавливай budget cap. При 80% — yellow warning, при 100% — alert в Inbox.

08 Задачи

Где: нижний footer — Задачи

Список задач из TASK_REGISTRY (LOS Personal или Agency Tasks в зависимости от типа).

  • Фильтры по статусу, приоритету, контуру
  • ID формат: LOS-XXX · BOS-XXX · AS-XXX
  • OPEN / IN_PROGRESS / WAIT / DONE / CANCELLED
Правило: перед добавлением задачи прогоняй через task_normalizer.py чтобы поля были валидны.

09 Memory

Где: нижний footer — Memory

Долгосрочная память системы: правила, факты, решения, протоколы, статусы.

  • MEM-XXX ID
  • TYPE: rule / decision / knowledge / fact / protocol / status
  • STATUS: active / archived
  • Привязка к LINKED_TASK
Правило: сюда — устойчивые знания. Рабочий шум — в day_monitor, не в memory.

10 Запуски

Где: нижний footer — Запуски

История всех run-ов скиллов. Каждый запуск = строка с runtime, моделью, токенами, длительностью, статусом.

Используй для: отлаживать почему какой-то скилл медленный или дорогой.

11 Сценарии (Flows)

Где: footer — СЦЕНАРИИ

Cron-автоматизации. Сейчас работают 3 потока Learning Loop:

  • Event Collector 03:00 — собирает события за 24h в таблицу events
  • Pattern Extractor 04:00 — Opus 4.7 извлекает паттерны — patterns
  • Skill Proposer 09:00 — Opus 4.7 предлагает новые скиллы — proposals
Совет: можно создать свой flow с любой cron-схемой. Шаги — skill / events-fetch / patterns-insert и т.д.

12 Дашборд

Где: footer — ДАШБОРД

Сводка состояния системы в реальном времени.

  • 4 KPI карточки: Agents Enabled / Tasks In Progress / Month Spend / Pending Approvals
  • 4 графика 14 дней: Run Activity / Issues by Priority / by Status / Success Rate
  • Recent Activity — последние 20 событий
  • Recent Tasks — задачи в IN_PROGRESS

13 Входящие

Где: footer — ВХОДЯЩИЕ (с unread badge)

Единая точка для всех системных уведомлений.

  • Tabs: Мой / Недавний / Непрочитано / Все
  • Источники: новые proposals, recovery suggestions, завершённые flows, ошибки runtime, отчёты из .reports/
  • Кнопки: Открыть / Прочитано / Архив
Правило: проверяй раз в день. Красный counter = есть необработанное.

14 Шина (Skill Bus)

Где: footer — ШИНА

Живая лента переписок между скиллами. Скиллы тикают каждые 5 мин, общаются через bus.db.

  • 3 панели: список скиллов / треды / выбранное сообщение
  • Reply от своего имени или от навигатора
  • Kill thread — закрыть тред если вышел из-под контроля
  • Topic filter — фильтр по теме
Архитектура: SQLite bus.db + decide_v2 промпт + cron heartbeat. Скиллы живут сами 24/7.
Аварийный stop: bus_control.py --pause — GLOBAL_PAUSE=PAUSE — все ticks замораживаются.

15 Pavel Inbox

Где: footer — Pavel Inbox (внутри Шины)

Когда скилл не знает что делать — вместо галлюцинации он эскалирует к pavel-inbox. Ты отвечаешь от руки, скилл получает ответ и продолжает.

  • Скилл эскалирует если: неуверенность, чувствительные действия, ambiguity, вне зоны
  • Ответ через UI — новое сообщение from=pavel intent=response к исходному скиллу
  • Исходное сообщение помечается status=resolved
Совет: отвечай коротко и конкретно. Скилл встроит ответ в свой контекст и продолжит.

16 Создать

Где: footer — оранжевая кнопка СОЗДАТЬ

Quick-create меню: новый чат / новый скилл / новая задача / новый flow.

Правило: новый скилл лучше создавать через /skill-workshop — там есть шаблоны и валидация frontmatter.

18 Skill Bus — архитектура и decide_v2

технический слой Шины
Где: footer — ШИНА (под капотом)

Как Шина работает и как скиллы принимают решения.

  • SQLite bus.db: 3 таблицы — skill_messages, skill_heartbeat_registry, skill_tick_log
  • Tick цикл: skill_tick_runner.py каждые 5 мин → inbox с явными ID → модель → парсит SEND_TO → пишет в bus.db
  • decide_v2: для каждого intent=request скилл ОБЯЗАН ответить SEND_TO с reply_to_id=ID. Без явного ID — спам proactive вместо реальных ответов
  • Heartbeat: skill_heartbeat.py пишет last_seen каждые 5 мин. Скилл без heartbeat 15+ мин — мёртвый
  • BUS_CONTROL Sheet: bus_control.py --pause/--resume/--status — глобальный kill switch
Отладка: если скилл не отвечает на request — смотри last_tick_*.txt: модель пишет реальный id входящего или "PARENT_ID" (баг)?

19 Когда скилл эскалирует в Pavel Inbox

логика эскалации
Где: footer — Pavel Inbox (когда и почему)

Правила по которым скилл решает: эскалировать или продолжать самостоятельно.

  • Эскалирует если: нет данных для решения, действие необратимо, вне зоны ответственности, чувствительные данные (финансы / credentials)
  • НЕ эскалирует если: типовая задача, есть прецедент, ответ очевиден из контекста
  • Формат: SEND_TO: pavel-inbox + intent=escalation + конкретный вопрос (не "что делать?", а "продолжить X или отменить?")
  • После ответа: скилл получает intent=response с reply_to_id → встраивает → продолжает
  • Без ответа 24ч: повторная эскалация с пометкой followup
Правило Павла: отвечай коротко и директивно — "да", "нет", "отложи". Скилл не нуждается в обосновании.

20 Context cache и OrgView v3

спринт 03–07.05
Где: Шина (cache) + COMPANY · Организация (OrgView)

Context cache (AS-194): skill_context.py кэшируется 300 сек (TTL) вместо вызова каждый тик:

  • В логе тика: skill_context HIT (кэш) или MISS (реальный запрос к Sheets)
  • При MISS обновляются данные из CHAT_SYNC_REGISTRY + открытые задачи скилла
  • ~12× меньше Sheets-запросов за 24ч

OrgView v3 (AS-203): нативный details/summary вместо react-organizational-chart:

  • Цветные теги контуров по CONTOUR в frontmatter каждого скилла
  • Вертикальный indent — padding-left + dashed border-left
  • Стрелка ▸ вращается при раскрытии — чистый CSS, без JS
  • dev-hq теперь корректно под BOS (исправлен frontmatter)
Для разработчиков: если скилл в неправильной ветке — проверь CONTOUR: в frontmatter .md файла.