Начало работы с OpenAI Symphony
@ai_longreadsOpenAI Symphony — оркестратор с открытым исходным кодом для агентов Codex. Подключите его к доске Linear, и он превратит тикеты в пулл-реквесты. Автор рассказывает, как переписал Electron-приложение за ночь — 50 тикетов, 30 смёрженных PR, 7 000 удалённых строк кода.
Это AI-перевод статьи, сделанный каналом Про AI: Лучшие Статьи и Исследования.
Начало работы с OpenAI Symphony
Getting Started with OpenAI Symphony Автор: George (@odysseus0z) Оригинальный текст:
Я отправил 50 тикетов в Linear перед сном — техдолг, рефакторинг (рефакторинг) Electron-приложения. Проснулся — 30 смёрженных PR. 7 000 строк кода удалено (в чистом итоге). Два дня спустя ничего не сломалось.
Это Symphony — оркестратор с открытым исходным кодом от OpenAI для агентов Codex. Направьте его на доску Linear — и он превращает тикеты в пулл-реквесты.
Я даже не знал, как правильно тестировать Electron-приложение. Агенты разобрались сами — подключились к работающему приложению через CDP с помощью agent-browser, валидировали изменения от начала до конца, полностью самостоятельно. Я учусь тестировать собственное приложение, читая их логи.
Настройка
Я поддерживаю форк, с которым проще начать (мои изменения описаны в README). Из директории вашего проекта выполните:
npx skills add odysseus0/symphony -s symphony-setup -y
Затем скажите своему агенту: «настрой Symphony для моего репозитория».
Для ручной настройки следуйте инструкции скилла.
Доска Linear — ваша панель управления
Всё происходит через Linear. Доска — это интерфейс.
Переместите тикет в Todo — свободный агент подхватит его за секунды. Переместите тикет в Rework с комментариями по ревью — агент вернётся к нему и учтёт замечания.
Начинайте с большой идеи, а не с отдельных тикетов
Если у вас уже есть хорошо организованная доска Linear, направьте Symphony на неё и запускайте. Если нет — пусть ваш агент сыграет роль техлида: опишите фичу, и он разобьёт работу на тикеты с выстроенными зависимостями.
Дайте агенту доступ к Linear (официальная настройка MCP) и обрисуйте общую картину:
Отправьте пачку в Todo — и Symphony распараллелит всё, что не заблокировано.
Мой рефакторинг Electron-приложения на 50 тикетов начался с одного разговора: «вот техдолг, вот как я хочу, чтобы кодовая база выглядела после». Агент декомпозировал задачу, я проверил тикеты, подправил несколько и отправил их в Todo.
Чего ожидать
Каждый воркер получает собственный клон рабочего пространства, читает тикет, пишет план в виде комментария в Linear, реализует, валидирует и открывает PR.
Этап планирования стоит наблюдать. Прежде чем писать код, агент публикует свой план в виде комментария в Linear. Ловите плохие планы до того, как они станут плохими PR. Агент будет отмечать выполненные пункты по ходу работы и покажет вам демо-видео в конце!
Один из моих тикетов запрашивал рефакторинг ChatDisplay — без единого упоминания тестирования. Агент подключился к работающему Electron-приложению через CDP с помощью agent-browser, внедрил временный зонд для принудительного вызова ошибки рендеринга, убедился, что сбой был локализован, прокликал восстановление, сделал скриншоты обоих состояний и удалил зонд. Сквозная валидация изменения UI — полностью по собственной инициативе.
Настройка на лету
Отмените тикет — агент остановится при следующем опросе. Переместите что-то обратно в Backlog, чтобы отложить. Отправьте пачку в Todo для запуска.
WORKFLOW.md перезагружается за секунду — перезапуск не нужен. Типичные настройки:
- agent.maxconcurrentagents — начните с 2–3, увеличивайте по мере доверия
- agent.max_turns — лимит ходов на тикет. Больше для сложной работы, меньше для экономии токенов (токены, единицы текста)
Что на самом деле делает работу
Основная эффективность не в оркестраторе — а в промпте в WORKFLOW.md. Symphony — это обвязка: опрос Linear, распределение воркеров, управление слотами. Промпт учит агента планировать, тестировать, обрабатывать обратную связь по ревью и ограничивать скоуп.
Подробнее о самом промпте расскажу в следующей публикации.
Подпишитесь на канал и каждый день читайте лучшие материалы про AI переведенные на русский!
Нашли интересную статью для перевода? Пришлите нашему боту: @ailongreadsbot