y83 projects / 01 / агентная система

Y83 Code: контур управления разработкой и приёмкой кода ИИ-агентов

в активной разработке · 2026 — сейчас

Когда код генерируется быстрее, чем человек успевает его прочитать, контроль приходится проектировать как отдельную подсистему. Y83 Code фиксирует цель и бюджет токенов до запуска хода, ведёт иерархию «проект → тред → ход» с ветвлением и откатом, блокирует коммит при провале многостадийных ворот качества и автоматически откатывает бинарь при сбое smoke-теста. Codex, opencode и Claude Code работают рядом, а удалённые команды проходят через approvals с привязкой к треду.

приложение
Kotlin · 197 662 строк
бэкенд
Go · 121 797 строк
тесты
3 287 в 485 файлах
инструменты агента
78 (MCP)
инструменты приложения
42
экраны
74 в 7 разделах
маршруты API
261
коммиты
598 за 63 дней

система

Что такое Y83 Code

Коротко: агент делает работу, человек ставит задачу и принимает результат. И то и другое собрано как часть системы с инструментами и правами, а не как договорённость на словах.

Проблема

Агент выдаёт правки быстрее, чем их успеваешь проверить. Узкое место — не набор кода, а проверка: сколько времени нужно, чтобы увидеть изменение, понять его и решить, принимать или нет.

Что это меняет

Цель и критерии приёмки задаются до запуска, ход виден целиком вместе с ценой, а проверки, сборка и релиз выполняются теми же инструментами, что и работа, — отдельного мира CI нет. Опасные действия на серверах проходят через подтверждение, а режим агента честно выбирает, кто платит за ход: роутер или собственная подписка.

Границы

Архитектура, модель «проект → тред → ход», реестр инструментов, политики, ворота, approvals и решение о приёмке — за человеком. Реализацию внутри этих границ выполняет агент, а вход в native-режим выполняет сам CLI, не приложение.

Раздел «Система»: как это устроено

возможности

Что умеет

Девять групп — девять сторон системы. У каждой группы есть раздел, где она разобрана до механизмов: устройство целиком — в «Системе», экран работы — в «Чате агента», проверки, approvals и релиз — в «Контроле», а полные списки возможностей — в «Справочнике».

Контур контроля ходараздел «Чат агента»

Видимый ход работы

Полоса хода и план показывают, что агент делает сейчас и что собирается делать дальше, — до того, как результат ушёл в приёмку.

  • ход
  • план

Бюджет до запуска

Лимит токенов задаётся заранее, а расход считается в долларах: ступени контекста выше 272k и ставки чтения и записи кэша входят в цену хода. Лейны сабагентов изолированы, сторож кэша ротирует залипшую сессию, попадание в кэш держится на 99.2 %.

  • бюджет
  • кэш

Вмешательство на полуслове

Сообщение можно поставить в очередь, поднять его приоритет или остановить ход — вместо ожидания конца и повторного запуска.

  • очередь
  • ветвление

История вместо памяти

Треды, ходы и планы сохраняются: можно вернуться к шагу, откатить ход, форкнуть тред и посмотреть разницу между состояниями кэша.

  • история
  • откат

Планы как память проекта

Планы из переписки живут рядом с файлами plans/<key>.md в корне проекта: перед крупной задачей агент читает долговременную память, а не восстанавливает замысел по ленте. Экран планов показывает шаги, статусы, прогресс и связанный тред.

  • планы
  • память

Три агента и режимы входараздел «Среда и устройство»

Claude Code — третий агент

Официальный CLI Anthropic установлен как glibc-бинарь и ходит в Anthropic-совместимый роутер: модели берутся из провайдеров приложения, а мост stream-json живёт в ws-backend без Node и bun. В приложении свой чат с шагами, карточками инструментов, очередью, reasoning и режимами разрешений.

  • claude
  • агенты

Роутер или подписка

Экран «Аккаунты агентов» переключает Codex и Claude между режимами y83 и native. В native CLI сам входит в ChatGPT или Claude Pro/Max, а токены подписки не читает и не проксирует наш код. Пока входа нет, ход не отправляется; тихого отката на роутер нет.

  • native
  • подписка

Три чата — один контур

У Codex, opencode и Claude Code разные протоколы и ленты, но общий MCP-реестр, ворота, сборка, approvals и решение о приёмке. Модель выбирается под задачу, а не под движок; стоимость хода считается только там, где есть тариф.

  • codex
  • opencode
  • claude

Профили MCP вместо полного набора

Проект объявляет профиль core, media, infra или dev: агент видит только нужные инструменты, а неизвестный профиль отклоняется, а не открывает dev-поверхность. Экран MCP показывает эффективный профиль из config/read, включая проектный override.

  • mcp
  • профили

Качество и релизраздел «Контроль агента»

Ворота не пускают красное

Гигиена репозитория, форматирование, тесты, компиляция, проверка скиллов и отступов интерфейса идут стадиями. Любая стадия упала — коммит не проходит, а пакетная проверка изменённых файлов занимает десятые доли секунды.

  • ворота
  • тесты

Релиз с авто-откатом

Перед подменой бинарей снимается резервная копия, а на ошибку ставится откат: упал smoke-тест — система вернулась на прошлую версию.

  • деплой
  • откат

Приёмка отдельным шагом

Дифф, отчёт ворот и решение о приёмке — разные действия. Непринятое возвращается на доработку, а не уезжает в релиз.

  • приёмка
  • дифф

Согласования на серверах

Remote-exec выполняет read-only команды сразу, а изменяющие — только через карточку подтверждения. Заявка знает свой тред, показывает точную команду и purpose, а grant «разрешить сервер на 10 минут» снимается вручную; секреты и критические операции подтверждаются отдельно.

  • approvals
  • ssh

Стоимость как часть хода

Цена считается по собственному реестру тарифов: база модели, окна off-peak и ставки кэша. Вид цены различает exact, fallback, free и unknown, поэтому «тарифа нет» больше не выглядит как $0; история ходов лежит в turn_costs и видна в «Затратах».

  • цена
  • тарифы

Пульт запусков

Один экран отвечает, что выполняется, что ждёт человека и что упало: Codex, opencode, планировщик и сервисы. Stop работает из строки и из уведомления, а недоступный источник показывается отдельной строкой degraded, а не пустотой.

  • runs
  • наблюдение

Агент чинит своё окружение

Собрать, прогнать ворота, прочитать логи, откатить релиз — всё это те же инструменты, которыми агент пользуется как исполнитель.

  • самодостаточность

MCP: инструменты агента — 78раздел «MCP-слой»

Репозиторий и код

Структура файла, поиск использований, импорты, diff по индексу, чтение и запись: агент читает проект, а не догадывается о нём.

  • код
  • git

Ворота, сборка, деплой

Инструменты dev_* запускают проверки, собирают приложение и бэкенд, выкатывают и откатывают их — по команде агента и с отчётом человеку.

  • ci
  • релиз

Логи, экран, браузер

Чтение логов, снимок экрана, работа с элементами и встроенный браузер: снимок страницы с нарезкой и сравнением кадров, аудит вёрстки сразу в настольном и мобильном профилях.

  • отладка

Данные и внешний контекст

SQLite на чтение и запись, веб-поиск и чтение страниц, документация библиотек через локальный прокси, проверка утверждений отдельной моделью.

  • данные
  • веб

Удалённые серверы с подтверждением

Четыре инструмента remote_* работают через SSH-реестр приложения: read-only команды идут сразу, изменяющие создают approval с точной командой и TTL десять минут. Пароли не попадают в реестр, host key не принимается молча.

  • remote
  • ssh

Тарифы как данные

pricing_list, pricing_save и pricing_delete дают агенту тот же реестр ставок, что и экран «Тарифы»: список моделей без цены, окна off-peak и четыре ставки на модель. Агент может наполнить тарифы из прайса провайдера, не редактируя код.

  • pricing
  • mcp

Репозитории без выдачи токена

Четыре инструмента GitLab работают через бэкенд: токен живёт на сервере, агент его не видит, а force-push, удаление веток и push в защищённую ветвь запрещены политикой.

  • gitlab
  • доступ

Знания и контекстраздел «MCP-слой»

Research с проверкой

Поиск по нескольким движкам, чтение страниц, синтез со ссылками и фоновая проверка утверждений — с ответом «подтверждено / опровергнуто / не найдено».

  • research

Поиск под единым профилем

Go-клиент синхронизирует UA и куки реального WebView телефона, держит порядок заголовков и TLS-профиль Chrome, а на капче возвращает needs_human и сам поднимает браузер человеку — обход не притворяется решением.

  • поиск
  • капча

Vision-цепочка

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

  • зрение

Единая память релизов

Журнал на 269 версий встроен в среду и доступен и человеку, и агенту: перед правками агент сверяется с историей архитектурных решений.

  • changelog
  • контекст

Скиллы и заготовки

Каталог скиллов и библиотека промптов: процедура живёт в скилле, формулировка задачи — в заготовке, обязательные поля не дают вставить неготовый промпт.

  • скиллы
  • промпты

Изображения — свой GPU рядомразбор инструментов в кейсе Y83 Media

Кадр из текста

Промпт, негативный промпт, размеры до 2048 px, шаги, CFG, seed для повторяемости, батч до четырёх кадров и апскейл ×2 или ×4 после генерации.

  • media
  • gpu

Второй вход — картинка

img2img целиком, инпейнт маской или до восьми прямоугольниками, аутпейнт на любую сторону. Область выделяется тремя инструментами: тап по объекту — офлайн-сегментация MediaPipe Interactive Segmenter (модель magic_touch), из маски берётся компонента связности под точкой тапа (MaskMath), — кисть и рамка. Маска уходит в правку как mask_path. Источник — прошлая генерация, файл или публичный URL.

  • inpaint
  • маска

Стиль, понятия, LoRA

До 12 референсов с рецептом и силой влияния, до 8 слайдеров от −6 до +6 и до двух LoRA. Каталоги рецептов и LoRA отдаёт сам сервис — агент их не выдумывает.

  • style
  • sliders

Замкнутый цикл с агентом

Статус с эхом параметров, список сохранённых задач, отмена и остаток лимита. Готовая картинка скачивается локально и отдаётся агенту путём файла в рабочей папке проекта — ассет остаётся в репозитории, а не только в чате. Дальше агент осматривает результат через ai_vision, правит маску, референсы или слайдеры и перегенерирует — без выхода из треда.

  • jobs
  • assets

Инструменты приложения — 42раздел «Инструменты»

Реестр, а не витрина

У каждой возможности есть запись в каталоге и место на главной: новый пункт добавляется как запись, а не как новый сквозной слой.

  • реестр

Вместо отдельных приложений

Браузер, терминал, файлы, база данных, запись экрана, планировщик, заметки — не список фич, а рабочие подсистемы внутри одного контура.

  • инструменты

Глубина нативной реализации

Это не обёртки над готовыми библиотеками: собственный VpnService с маршрутизацией по приложениям (Hysteria2 и tun2socks, экран выбора приложений), видеоредактор с таймлайном на Media3 и точным рендером переходов через бэкенд и FFmpeg, запись экрана и звука на MediaProjection, хранилище на AES-256-GCM с биометрией, скриншот окна через PixelCopy — без root и без службы доступности.

  • android
  • vpn
  • video

Сервисы и процессы

Старт, остановка, рестарт, автозапуск и watchdog: сервисы живут без systemd и восстанавливаются после вылета.

  • сервисы

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

Хранилище секретов, VPN, диагностика сети и обратные SSH-туннели к серверам — с маской и политиками доступа для агента.

  • секреты
  • сеть

Агенты и средараздел «Среда и устройство»

Три движка

Codex, opencode и Claude Code работают рядом: у каждого свой чат, свои сессии и свой протокол, но общий реестр инструментов и общий контур приёмки. Ответы всех трёх рисует один рендерер, а история ходов лежит в локальной базе и переживает перезапуск.

  • codex
  • opencode
  • claude

Режим: роутер или подписка

Один переключатель на тип агента выбирает, откуда берутся модели. В router работают провайдеры приложения и считается цена; в native CLI идёт напрямую по ChatGPT или Claude Pro/Max, а стоимость не выдумывается. Режим — свойство устройства, потому что конфиг агента один.

  • native
  • router

Локальные и удалённые агенты

Агент на устройстве и агент на своём сервере через обратный туннель: проекты и инструменты приходят с телефона, переключение — в одном списке.

  • туннель
  • сервер

Настоящая среда

Termux даёт реальные git, python, node, ssh и компиляторы: агент собирает проекты, а не только пишет текст.

  • termux

Провайдеры и веб-аккаунты

Любой OpenAI-совместимый API плюс веб-аккаунты с квотами, очередью и разбором отказов: ядро не привязано к одному поставщику.

  • провайдеры

Данные и наблюдениераздел «Среда и устройство»

Базы под рукой

SQLite открывается и правится прямо на устройстве: и человеком, и агентом через инструмент.

  • sqlite

Логи как источник правды

Логи приложения, сервисов и диагностики читаются с фильтром и в реальном времени — по ним же строится разбор падений.

  • логи

Реестр задач

Фоновые задачи видны со статусом и сессией: прерванный прогон можно возобновить, а не начинать заново.

  • задачи

Планировщик

Команды и промпты по расписанию с журналом запусков — рутина не держится в голове.

  • расписание

как работает

Цикл задачи

01

Постановка

Задача ставится в тред с целью и критериями готовности, бюджет токенов фиксируется.

02

Планирование

Агент разбивает работу на части и показывает план — его можно поправить до запуска.

03

Работа

Агент читает код, вносит правки и прогоняет проверки через свои инструменты.

04

Приёмка

Человек смотрит дифф и отчёт ворот; непринятое возвращается на доработку.

05

Релиз

Сборка, выкладка с health-check и откат, если новая версия не прошла проверку.

результаты

197 662

строк Kotlin в приложении

815 файлов: экраны, чат агента, хаб инструментов
121 797

строк Go в бэкенде

479 файлов: API, сервисы, MCP-сервер, служебные контуры
3 287

тестов

2 100 в приложении (JUnit), 1 187 в бэкенде — 485 файлов
78

инструментов агента

восемь групп: базовые, dev_*, браузер, генерация, GitLab, промпты, удалённые серверы, тарифы
42

инструментов приложения

записи реестра: от браузера до VPN
74

экрана навигации

каждый — отдельная подсистема со своим состоянием
261

маршрутов API в бэкенде

HTTP-обработчики: от сборки до баз данных
598

коммитов за 63 дней

25 августа 2026 — 27 октября 2026; в среднем 9 в день — каждый проходил ворота

Цифры сняты скриптом tools/metrics.sh на 2026-10-27; версии на тот же день — приложение 0.8.185, бэкенд 0.8.395. История репозитория: 598 коммитов за 63 дней с 25 августа 2026 по 27 октября 2026, журнал релизов — 269 версий: 59 бэкенда и 210 приложения, плюс 151 записей архива сборок.

Полный журнал: 269 версий и 598 коммитов

экраны

74 экрана навигации в 7 разделах

Состав считает tools/metrics.sh по Screen.kt: 74 маршрутов, из них 9 — формы добавления и правки записей. Скриншоты снимаем на устройстве; ниже — все экраны по разделам.

листайте вбок · 19 экранов

Главный экранГлавный экран

Главный экран

быстрый доступ, агенты и их состояние

ПроектыПроекты

Проекты

проекты агента и их состояние

ТредыТреды

Треды

история, ветвление и возобновление

Чат агентаЧат агента

Чат агента

ход, план и token bar

Аккаунты агентовАккаунты агентов

Аккаунты агентов

роутер y83 или собственная подписка

Согласования

Согласования

approvals по тредам и grants на серверы

Затраты

Затраты

цена ходов по дням и моделям

Пульт запусков

Пульт запусков

что идёт, что ждёт и что упало

Очередь сообщений

Очередь сообщений

вмешательство в текущий ход

Скиллы

Скиллы

каталог процедур и зависимости

MCP-серверы

MCP-серверы

инструменты, лимиты вывода, вход

Промпты

Промпты

библиотека заготовок с полями

Терминал

Терминал

реальные процессы Termux

Сервисы

Сервисы

старт, стоп, рестарт, watchdog

Инструменты

Инструменты

реестр подсистем приложения

Базы данных

Базы данных

просмотр и правка на устройстве

Vision

Vision

цепочка источников и описание снимка

Генерация изображений

Генерация изображений

очередь, прогресс и готовый файл

Задачи

Задачи

фоновые прогоны и возобновление

Агенты и сессии · 7

  • Агенты
  • Проекты
  • Сессии
  • Чат агента
  • Статистика
  • Пульт запусков
  • Согласования

Claude Code · 3

  • Проекты
  • Сессии
  • Чат

Codex · 10

  • Проекты
  • Треды
  • Чат
  • Планы
  • Git
  • Политики
  • Кэш-watch
  • Скиллы
  • MCP-серверы
  • Features

Инструменты и данные · 25

  • Хаб инструментов
  • Браузер
  • Файлы приложения
  • Файлы сервера
  • Файл
  • Терминал
  • Запись экрана
  • Видеоредактор
  • Vision
  • Поиск
  • Промпты
  • GitLab
  • Базы данных
  • Таблица
  • Задачи
  • Туннели
  • Логи
  • Заметки
  • Правка заметки
  • Планировщик
  • Правка задания
  • Логи заданий
  • Хранилище паролей
  • Правка записи
  • Удалённые агенты

Провайдеры и ИИ-аккаунты · 10

  • Провайдеры
  • Правка провайдера
  • Аккаунты WebAI
  • Правка аккаунта
  • Чаты WebAI
  • Чат WebAI
  • Аккаунты агентов
  • Затраты
  • Тарифы
  • Провайдер Zen

Сеть и доступ · 8

  • VPN
  • Серверы VPN
  • Добавить сервер
  • Правка сервера
  • Выбор приложений
  • Добавить SSH
  • Правка SSH
  • Диагностика сети

Настройки и устройство · 11

  • Настройки инструментов
  • Тема
  • Язык
  • Главный экран
  • Уведомления
  • Установка окружения
  • Система
  • Процессы
  • Серверы
  • Обновления
  • Changelog

технологии

Из чего собрано

Приложение

  • Kotlin
  • Jetpack Compose
  • Material 3
  • Room
  • OkHttp

Бэкенд

  • Go
  • HTTP + SSE
  • SQLite
  • supervisord
  • runit

Агенты и протокол

  • Codex app-server
  • opencode v2
  • Claude Code
  • MCP (78)
  • FastMCP

Среда

  • Termux
  • Gradle
  • ворота gate.sh
  • деплой по SSH

Медиа и зрение

  • y83-media
  • ComfyUI
  • Krea 2 Turbo
  • RTX 5060 Ti

этапы

Что сделано и что дальше

Этапы идут в том порядке, в котором появлялись: от среды — к инструментам агента, от них — к контуру качества.

этап 1

Среда, агенты, треды

Termux, запуск движков, иерархия проект → тред → ход

этап 2

MCP-слой

инструменты для кода, логов, сборки и деплоя

этап 3

Ворота и релизный цикл

стадии проверок, блокировка коммита, откат релиза

этап 4

Управление устройством

мост, браузер, базы, VPN и туннели как инструменты агента

этап 5

Знания и медиа

research с проверкой, vision-цепочка, генерация изображений, скиллы и промпты

этап 6

Медиа и архитектурный шов

запись экрана в 720p/1080p на 30 и 60 кадрах доведена до рабочего состояния, а монтаж получил палитру из десяти переходов xfade через FFmpeg; параллельно монолит разобран на 15+ доменных репозиториев с тестами ViewModel'ей

этап 7

Третий агент и управление доступом

Claude Code стал третьим агентом на общем роутере; появились режимы y83/native, экран «Аккаунты агентов», approvals с привязкой к треду и 10-минутными grants, реестр тарифов, экран затрат, пульт запусков и профили MCP core/media/infra/dev

вопросы

Частые вопросы

Почему система собрана вокруг контроля, а не вокруг удобства?

Чем больше кода генерируется, тем важнее скорость проверки и решения, а не скорость набора. Когда код пишет человек, контроль встроен в процесс; когда его пишут агенты, контроль приходится проектировать отдельно: ход, бюджет, история, ветвление, ворота, откат.

Какие классические backend-механизмы лежат внутри контура?

Внутри работают те же архитектурные слои, что и в большом серверном продукте: API-слой на 261 HTTP/SSE-маршрутов и 78 MCP-инструментов, очередь ходов и асинхронные GPU-задачи с прогрессом, машина из 5 состояний хода агента, изолированное хранилище секретов с масками, deny-list политик, супервизор процессов поверх runit без systemd и атомарный деплой с авто-откатом бинаря по health-check.

Зачем свои инструменты, если есть готовые?

Готовые инструменты не знают про этот проект: где его ворота, как собирается приложение и как откатывается бэкенд. Свои 78 инструментов знают. Поэтому агент обслуживает ту среду, в которой работает, а человек проверяет результат теми же средствами.

Что даёт работа с телефона?

Рабочая станция всегда с собой: сборка, проверки, логи и выкладка не требуют ноутбука. Удалённые проекты подключаются оттуда же — обратным туннелем, а не отдельной настройкой на каждой машине.

Зачем три агента и два режима?

Движки решают разные задачи: Codex — глубокие многошаговые ходы, opencode — мультимодельные сессии, Claude Code — третий первопартийный CLI на том же роутере. Режим y83-router использует провайдеров приложения и считает цену, native — собственную подписку ChatGPT или Claude Pro/Max, где цену за токен не выдумать. Переключатель один на тип агента, потому что конфиг тоже один.

Как удалённый агент не получает лишнего доступа?

Remote-exec работает только в профиле codex, read-only команды классифицируются синтаксически, а изменяющие создают approval с точной строкой и TTL. Grant на сервер живёт десять минут и снимается вручную; секреты, SSH-ключи и критические операции всё равно требуют отдельного подтверждения. В /mcp/remote и opencode этих инструментов нет.

Кто отвечает за качество, если код пишет агент?

Человек: он задаёт границы, критерии приёмки и решает, что прошло проверку. Ворота сформулированы как код — их нельзя уговорить, и коммит не проходит, пока стадия красная. Это и есть разделение: агент исполняет, человек принимает.

Y83 Code

Есть вопрос по проекту?

Система управления AI-разработкой на телефоне и сервере: ведёт цикл «задача → агент → ход → ворота качества → деплой с авто-откатом». Codex, opencode и Claude Code работают в одном контуре через общий реестр из 78 MCP-инструментов и 42 подсистем, а бюджет, политики и решение о приёмке отделены от генерации кода.

@xipovski xipovski@gmail.com
следующий проект Мэри