Зачем OpenAI создала Symphony и сделала её бесплатной

BBetter Stack
컴퓨터/소프트웨어경영/리더십AI/미래기술

Transcript

00:00:00Это Symphony от OpenAI, инструмент с открытым исходным кодом для управления долгоживущими агентами через
00:00:05существующие системы отслеживания задач, такие как Linear, чтобы помочь вашему агенту автономно выполнять задачи без
00:00:10контроля человека. Но зачем агенту собирать его с нуля, прежде чем вы сможете его использовать?
00:00:14Поддерживает ли он только Codex CLI? И станет ли это началом появления новых
00:00:18инструментов с открытым кодом от OpenAI? Подписывайтесь, и давайте выясним.
00:00:25Symphony появилась только потому, что OpenAI столкнулась с нехваткой человеческого внимания — инженеры
00:00:30могли контролировать только 3–5 сессий Codex одновременно, после чего переключение контекста начинало
00:00:35негативно сказываться на продуктивности. Это, конечно, не могло масштабироваться. И как же OpenAI решила
00:00:41проблему «быстрых агентов и медленных менеджеров»? Они избавились от менеджеров. Почти.
00:00:47В Symphony люди ставят задачи на доску, создается новый агент для выполнения этой задачи,
00:00:52и агент обращается к человеку только тогда, когда нужно что-то проверить.
00:00:55Но как Symphony соотносится с похожими инструментами, такими как Multica и Conductor?
00:00:58Посмотрите демо, и всё станет предельно ясно. Но прежде чем начать, я должен сказать,
00:01:03что у Symphony самый странный процесс установки, который я видел в жизни. Или это самый
00:01:07гениальный способ установки. К этому мы вернемся позже.
00:01:10Сначала разберем базовый пример. У меня запущена Symphony,
00:01:14которая опрашивает Linear на наличие задач. И в Linear я создам новую задачу:
00:01:18создать приложение Hello World на TypeScript и BUN.
00:01:22Сейчас Symphony не настроена на работу с бэклогом. Изменю статус на To-Do
00:01:27и нажму Create Issue. Запомните ID задачи — SYN7.
00:01:31Через некоторое время Symphony подхватывает этот ID. И спустя несколько секунд
00:01:36возникает ошибка валидации GraphQL, что не страшно и легко исправляется с помощью Codex.
00:01:41После этого мы видим, что Codex завершил работу, изменил статус задачи
00:01:45с To-Do на Done и оставил здесь комментарий от Symphony. Это значит, если мы перейдем
00:01:49в директорию рабочих пространств Symphony (позже об этом подробнее), мы увидим новое
00:01:53пространство с тем же ID, что и у задачи. Внутри этого пространства находится список
00:01:58файлов, созданных для приложения Hello World на TypeScript и BUN. Зайдя в папку source,
00:02:04мы увидим сам код приложения. По сути, это Symphony в двух словах.
00:02:08Теперь о том, как её настроить. Согласно репозиторию, есть два способа
00:02:12установки Symphony. Вариант два — привычный нам: ставим Elixir,
00:02:16клонируем репо, собираем код и запускаем его через файл рабочего процесса.
00:02:20Вариант один — возможно, самый странный или самый прогрессивный способ установки.
00:02:25Вы просто даете своему ИИ-агенту этот промпт, и он считывает файл спецификации,
00:02:30длина которого превышает 2000 строк. Там содержатся подробные
00:02:34инструкции для вашего агента по сборке Symphony. Это дико, ведь если бы все так делали,
00:02:39ни одна версия Symphony не была бы похожа на другую. У каждого были бы свои функции на
00:02:43разных языках, что стало бы хаосом для поддержки со стороны OpenAI.
00:02:47Но в этом есть и гениальность: если вы сами собрали свою версию Symphony,
00:02:51вы чувствуете за неё ответственность. Вы будете чинить баги, добавлять функции
00:02:55и поддерживать её. И если вы не хотите использовать Linear или
00:02:59Codex в Symphony — это ваше право. Кто-то собрал версию на Go с Charm CLI,
00:03:04а кто-то другой — версию на базе Claude SDK. Я не был столь креативен,
00:03:09поэтому скормил стандартный промпт в Codex через GPT 5.5 Low Effort, и он выдал мне Python-версию
00:03:15Symphony. Это логично, ведь нейросети отлично пишут на Python. Когда это готово,
00:03:19вам понадобится персональный API-ключ Linear, который можно получить в настройках безопасности,
00:03:23создав его по клику. Затем этот ключ нужно добавить в рабочий профиль —
00:03:28файл, который говорит Symphony, как работать. Он содержит YAML-заголовок,
00:03:32где указаны API-ключ, активные статусы для агента, чтобы он знал, когда брать задачу,
00:03:37а также путь к рабочему пространству и команду Codex — оболочку, которую Symphony
00:03:42использует для запуска агента. Ниже находится Markdown-промпт, отправляемый агенту
00:03:46по каждой задаче. Вы можете найти пример этого файла в репозитории OpenAI.
00:03:51Но на данный момент этот процесс не совсем подходит для реальных проектов. Допустим, я хочу
00:03:56внести изменения в свое приложение для эмуляции пленки. Мне нужно добавить хук create-after,
00:04:01который сработает после создания пространства для задачи. Этот хук сначала клонирует репозиторий
00:04:06в директорию, а затем создаст новую ветку. Также я добавил хук run-after,
00:04:10который запускается после завершения работы Codex над задачей. Он индексирует файлы,
00:04:15делает коммит, пушит ветку и создает пулл-реквест с заданными параметрами.
00:04:20Теперь, если запустить Symphony через UV (который тоже был куплен OpenAI, но об этом
00:04:25как-нибудь в другой раз), она начнет опрашивать задачи. Создам задачу на обновление readme —
00:04:30в разделе пакетной обработки нужно использовать маску вместо списка файлов.
00:04:35Опять меняю статус с бэклога на To-Do и жму Create Issue. Symphony подхватила
00:04:40эту задачу. В директории workspaces появилась новая папка с ID задачи,
00:04:45в которой лежит клонированный проект. Когда Symphony закончила работу над
00:04:49задачей, она перевела статус в Done и создала PR со ссылкой на тикет в Linear
00:04:54и именно теми изменениями, которые я просил. Конечно, я мог бы дописать код Symphony,
00:04:59чтобы описание PR было лучше, а ссылка на него была в комментариях, но Codex
00:05:04с этим легко справится. Вот такой краткий обзор Symphony. Если вы привыкли к Linear
00:05:08или работаете в компании, использующей его, интерфейс будет вам знаком. А если вы пользователь Codex,
00:05:13то сможете применить свои навыки, инструменты MCP и плагины. Лично я не
00:05:18использую Codex, но отчетливо вижу видение OpenAI. Представьте,
00:05:22команду разработчиков, работающих над одним проектом с ИИ. Вместо того чтобы у каждого
00:05:28был свой инструмент со своим процессом, может быть центральный агент с общими навыками,
00:05:33инструментами, процессами и плагинами. И каждый разработчик может общаться с ним,
00:05:37давая задачи. Видно, над чем работают другие, какие промпты они используют,
00:05:41и можно сразу понять, как чужие правки повлияют на вашу задачу. Хотя
00:05:46сложно придумать фичу, которая не затронет код, над которым трудится кто-то еще.
00:05:49Но при всей крутости Symphony, на мой взгляд, Multica справляется лучше, так как её
00:05:54проще настроить, в ней легче создавать агентов и даже можно планировать задачи. Тем не менее,
00:05:59у Symphony есть своя ниша. Это своего рода «голая» версия Multica, где вы
00:06:04можете добавить именно то, что вам нужно, вместо использования готового продукта.
00:06:08Считайте Symphony чем-то вроде каркаса, а Multica или Conductor — готовым решением.
00:06:13Если вы ничего не знаете о Multica, посмотрите это видео, где подробно рассказано
00:06:18обо всем, что нужно знать.

Key Takeaway

Symphony от OpenAI автоматизирует управление долгоживущими ИИ-агентами через интеграцию с Linear, позволяя инженерам делегировать выполнение задач автономным сущностям и вмешиваться только в критических точках проверки.

Highlights

  • Symphony позволяет инженерам OpenAI масштабировать работу, преодолевая лимит контроля в 3–5 одновременных сессий Codex на одного человека.

  • Установка Symphony возможна через промпт длиной более 2000 строк, который заставляет ИИ-агента собрать инструмент самостоятельно по спецификации.

  • Инструмент интегрируется с системой Linear, автоматически создавая рабочие пространства с ID задачи и обновляя статусы с To-Do на Done.

  • Применение Symphony позволяет выполнять автономные задачи, такие как создание приложений на TypeScript и BUN или генерация пулл-реквестов через хуки run-after.

  • Гибкость системы подтверждается возможностью реализации на разных языках, включая версии на Go с Charm CLI и Python-версии через GPT 5.5.

Timeline

Проблема масштабирования внимания инженеров

  • Переключение контекста снижает продуктивность инженеров при управлении более чем пятью сессиями Codex одновременно.
  • Symphony решает проблему медленного менеджмента путем создания автономного агента для каждой новой задачи на доске задач.
  • Человеческое участие требуется только в моменты прямой необходимости верификации действий агента.

Ограниченность человеческого внимания стала барьером для роста эффективности в OpenAI. Система Symphony меняет парадигму, где человек больше не контролирует каждый шаг, а лишь ставит задачи в существующие трекеры вроде Linear. Это превращает процесс управления в асинхронное взаимодействие с минимизацией простоев.

Практическая работа и жизненный цикл задачи

  • Symphony непрерывно опрашивает Linear на наличие задач со статусом To-Do.
  • Агент автоматически исправляет ошибки валидации GraphQL с помощью Codex в процессе выполнения.
  • Результаты работы сохраняются в локальном рабочем пространстве, именованном согласно ID тикета.

В ходе демонстрации задача SYN7 на создание приложения Hello World успешно проходит путь от создания тикета до завершения. Система самостоятельно создает структуру файлов в директории workspaces и пишет код на TypeScript. По завершении статус задачи в Linear меняется автоматически, а агент оставляет отчетный комментарий.

Генеративная установка и конфигурация

  • Традиционная установка через Elixir заменяется методом сборки инструмента самим ИИ по текстовой спецификации.
  • Конфигурация Symphony осуществляется через YAML-заголовок с указанием API-ключей и путей к рабочим пространствам.
  • Markdown-промпты в рабочем профиле определяют поведение агента для каждой конкретной задачи.

Метод установки через гигантский промпт перекладывает ответственность за поддержку и исправление багов на пользователя, создавшего свою уникальную версию. Это позволяет адаптировать Symphony под любые нужды, например, использовать Claude SDK вместо Codex. Для работы требуется персональный API-ключ безопасности Linear и настройка оболочки для запуска агента.

Автоматизация рабочих процессов через хуки

  • Хуки create-after позволяют автоматически клонировать репозитории и создавать новые ветки при старте задачи.
  • Функция run-after обеспечивает индексацию файлов, коммиты и создание пулл-реквестов после завершения кода.
  • Запуск Symphony через инструмент UV оптимизирует процесс опроса и выполнения задач.

Для интеграции в реальные проекты Symphony использует систему событийных хуков. В примере с обновлением readme агент самостоятельно клонирует проект, вносит правки в пакетную обработку и отправляет PR со ссылкой на исходный тикет. Это исключает рутинные операции по подготовке окружения и публикации изменений из графика разработчика.

Сравнение с альтернативами и видение OpenAI

  • Symphony выступает в роли гибкого каркаса для создания централизованного ИИ-разработчика в команде.
  • Готовые решения вроде Multica или Conductor превосходят Symphony по простоте настройки и планированию.
  • Прозрачность промптов в общей системе позволяет разработчикам видеть влияние правок ИИ на смежные задачи.

OpenAI позиционирует Symphony не как коробочный продукт, а как фундамент для построения командных процессов. В отличие от Multica, которая предлагает удобный интерфейс «из коробки», Symphony ориентирована на тех, кому нужен полный контроль над инструментарием. Основная ценность заключается в создании единой среды, где все разработчики взаимодействуют с общим пулом навыков и плагинов агента.

Community Posts

View all posts