herder: неужели это лучший мультиплексор агентов?

BBetter Stack
Computing/SoftwareInternet Technology

Transcript

00:00:00Herder — это мультиплексор агентов, который работает прямо внутри вашего терминала, позволяя запускать
00:00:05множество агентов для кодинга бок о бок в разных панелях или вкладках, и видеть, кто из них работает, кто
00:00:10заблокирован, а кто закончил задачу. В комплекте системные уведомления, всё в одном бинарном файле на Rust,
00:00:15а значит, никакого Electron или отдельных приложений. Есть даже хитрый способ работы через SSH. Но с таким инструментом,
00:00:20как cmux, набирающим популярность, зачем вам вообще Herder? Подпишитесь, и давайте выясним.
00:00:28Herder был создан разработчиком по имени Огл Кан Селикс, который, полагаю, убрал букву “e” из слова
00:00:34herder, потому что он фанат начала 2000-х. Не знаю, но полагаю, Herder — это инструмент,
00:00:39который можно использовать, чтобы “пасти” множество агентов, как пастух овец. Это проблема для, скажем,
00:00:45большинства разработчиков, использующих ИИ в работе, потому что трудно следить
00:00:49за тем, что делает каждый агент. Herder во многом вдохновлен tmux, который является терминальным
00:00:54мультиплексором с вкладками, разделением панелей и сохранением сессий даже после отключения. Но tmux был
00:01:00создан десятилетия назад, задолго до появления ИИ-агентов. Поэтому, если вы запускаете агента в одной
00:01:06из его панелей, он понятия не имеет, что тот существует и каков его статус. Именно поэтому существуют такие инструменты, как Warp или cmux,
00:01:12которые вырывают вас из вашего терминала в свой собственный, заставляя учить чужой рабочий процесс.
00:01:18Вот почему Огл Кан Селикс создал Herder: чтобы делать и то, и другое одновременно. Персистентность tmux со встроенным
00:01:24пониманием агентов. А так как Herder — это просто бинарник на Rust, созданный с помощью Ratatui, всё это просто
00:01:29отрисовка текста в терминале, поэтому он может работать везде, где работает ваш терминал, включая SSH. Есть
00:01:35также сокет API, а это значит, что агенты могут сами управлять Herder, что выглядит очень впечатляюще.
00:01:40Давайте проведем быстрый демо-показ. После установки Herder через brew, curl или даже
00:01:46nix flake (я так рад, что они добавили эту опцию), вы можете просто запустить команду herder, которая покажет вам
00:01:50этот вид с терминалом, рабочими областями и агентами. Я немного увеличил масштаб, так что
00:01:56кое-что вы не увидите, например, весь текст команд, но я постараюсь сделать всё, чтобы
00:02:00показать Herder во всей красе. Итак, вы видите, что здесь нет рабочих областей, а префикс по умолчанию —
00:02:05Ctrl+B, как в tmux, но я покажу, как это изменить позже. Сейчас префикс
00:02:10уже активирован, это видно по панели навигации внизу, так что всё, что нужно сделать, — это нажать
00:02:14Shift+N, чтобы создать новую рабочую область. Конечно, вы можете управлять всем полностью с клавиатуры,
00:02:19нажав префикс и “?”, чтобы увидеть все сочетания клавиш, но можно также
00:02:23использовать мышь. Я могу создать новую вкладку под названием “two”, нажать правой кнопкой, чтобы закрыть её, переименовать мою
00:02:28рабочую область в “test”, создать новую рабочую область, открыть настройки в меню и так далее. Я даже могу
00:02:34создавать горизонтальные и вертикальные разделения, а также переименовывать конкретные панели и переключаться между ними
00:02:38всё с помощью мыши. Но главное преимущество Herder — это то, как он взаимодействует с агентами.
00:02:43В данный момент здесь используется bash, но я предпочитаю fish, так что я изменю оба терминала,
00:02:46а затем открою claude code в верхней панели, а codex — в нижней. Мы уже видим,
00:02:51что Herder автоматически распознал агентов и присвоил им статусы: Claude заблокирован,
00:02:55а codex в режиме ожидания. Давайте обратимся к обоим, предоставив им доступ к этим директориям, и, конечно,
00:03:00я могу дать им обоим промпты, например: “какую модель я использую?”, и мы увидим, как Herder немедленно обновляется,
00:03:05чтобы сказать нам, что Claude работает. Это также работает с codex cli. Ещё я заметил, что я в
00:03:09неправильной рабочей области, так что удалим её и переименуем эту в “test”. Но с Herder агенты могут также
00:03:15создавать рабочие области, вкладки и разделения. Давайте посмотрим, как это работает. Я выйду из curda
00:03:20нажав префикс, а затем “Q”, и вы увидите все опции, которые предоставляет Herder CLI.
00:03:24Итак, я снова зайду в Herder. Одно из преимуществ в том, что он возвращается
00:03:29к той же рабочей области и тем же агентам, которые у меня были открыты, с теми же сессиями. Но я создам
00:03:34новую рабочую область, перейду в директорию и открою claude code. А теперь
00:03:38я дам промпт использовать Herder CLI, чтобы запустить две панели с claude code в обеих.
00:03:44Запущу одну с промптом: “обобщить самый большой файл в проекте”, а другую с промптом
00:03:49поискать в кодовой базе любые жестко закодированные API-ключи или секреты. И вот, он открыл новую панель с
00:03:54claude code. Я уменьшу масштаб, чтобы было лучше видно, и теперь он выполняет
00:03:58второй промпт в кодовой базе. Мы можем прокрутить вверх и увидеть, что первая задача завершена. Также видно,
00:04:03что он дает им соответствующие названия, например “claude secrets” и “discord”. И здесь он не нашел жестко закодированных API-ключей.
00:04:09Отсюда мы можем обобщить вывод обеих панелей, а затем попросить Claude закрыть их. Итак, сейчас
00:04:14он получил информацию из первой панели и закрыл её, и делает то же самое со второй панелью,
00:04:18которую он также закрыл. И внизу он выдает мне хорошее резюме. Поскольку Herder —
00:04:23просто бинарный файл, который вы можете установить в свой терминал, я могу подключиться по SSH к Linux-серверу и установить Herder
00:04:28так же, как на Mac. Как видите, я сделал это ранее, и он восстановил мою предыдущую
00:04:32сессию. У меня открыт код в одной панели, и я использую Vim для просмотра кода в другой,
00:04:36но проблема в том, что он не переносит мои настройки конфигурации Herder, которые есть
00:04:41на моем локальном Mac. Честно говоря, настроек у меня немного, я лишь изменил клавиши с
00:04:45Ctrl+B на Ctrl+Space и сменил тему на “terminal”. Но если бы у меня был сильно измененный
00:04:50конфигурационный файл со специфическими сочетаниями клавиш, это могло бы раздражать. Один из способов
00:04:55обойти это — использовать Herder с флагом remote и подключаться через SSH напрямую к серверу, что я объясню,
00:05:01прежде чем нажать Enter. Herder работает, запуская сервер и тонкий клиент, который
00:05:06связывается через unix-сокет. Клиент отправляет нажатия клавиш на сервер, а сервер управляет
00:05:11вкладками, панелями, персистентностью и прочим. В случае с SSH, при использовании remote, сервер работает на
00:05:18удаленной машине, а клиент — на вашей локальной. Он отправляет нажатия клавиш через unix-сокет
00:05:24на сервер, и сервер может показывать клиенту файлы, находящиеся на самой машине,
00:05:30но сам клиент может использовать все настройки конфигурации с локальной машины, к которой он
00:05:35привязан. Давайте посмотрим это в действии. Возвращаемся туда, где остановились. Если я нажму Enter,
00:05:40он подключится напрямую к моей SSH-машине, где, как мы видим, открыт код, и файл кода,
00:05:45который мы просматриваем с помощью Vim. Но если я нажму Ctrl+B, ничего не происходит, потому что он использует
00:05:49конфигурацию моего Mac, где для префикса используется Ctrl+Space. А пока мы здесь,
00:05:54давайте посмотрим, что еще можно сделать в меню. Можно просмотреть сочетания клавиш, что я уже показывал,
00:05:59но можно также сменить тему. Herder предлагает множество тем на выбор: от “nord” до “gruvbox” и даже
00:06:04“catppuccin”. Также есть опция включения звуковых уведомлений и всплывающих сообщений, которые можно изменить
00:06:10через терминал или системные настройки. Как обычно, в Herder есть ещё много функций,
00:06:15которые я не успел рассмотреть, например, интеграция с worktree, официальная интеграция с harness, некоторые из
00:06:19которых вы видели в демо, дающие вашему harness доступ к официальным навыкам Herder, и возможность возобновить
00:06:24сессии в точности такими, какими они были до закрытия Herder. Честно говоря, тот факт, что это работает в вашем существующем
00:06:29терминале, для меня — главное преимущество. Потому что, как бы я ни любил cmux, я гораздо больше люблю WezTerm,
00:06:35я настроил его именно так, как мне нравится, и если я хочу управлять своими
00:06:39агентами, мне просто нужно открыть новую вкладку терминала в WezTerm и запустить Herder. Да, вы
00:06:45потеряете веб-браузер из cmux, но, честно говоря, я им не особо пользовался. А для тех из вас,
00:06:50кто сейчас смотрит и пользуется Windows, у меня очень плохие новости из-за этих unix-
00:06:54сокетов и того факта, что Herder использует PTY терминала, на данный момент нет полноценной поддержки Windows,
00:06:59на момент записи видео. Но если вы используете Windows, думаю, пришло время решиться и просто
00:07:04установить Linux в dual boot. Да, WSL существует, но это не совсем то, правда?

Key Takeaway

Herder обеспечивает персистентность сессий в стиле tmux, дополняя её встроенной поддержкой ИИ-агентов, что позволяет управлять их активностью и структурой окон непосредственно в рабочем терминале.

Highlights

  • Herder — это терминальный мультиплексор на языке Rust, разработанный специально для управления множеством ИИ-агентов одновременно.

  • Инструмент позволяет агентам через API-сокет самостоятельно создавать рабочие области, вкладки и разделять панели для выполнения задач.

  • Функция удаленной работы (remote) через SSH позволяет клиенту использовать локальные настройки конфигурации, даже если сервер запущен на удаленном Linux-сервере.

  • Herder не требует использования Electron или отдельных приложений, работая исключительно как бинарный файл внутри существующего терминала.

  • Автоматическое распознавание статусов агентов (например, «заблокирован» или «ожидание») позволяет отслеживать выполнение задач в режиме реального времени.

Timeline

Назначение Herder в экосистеме ИИ-разработки

  • Традиционные мультиплексоры вроде tmux не обладают пониманием статуса запущенных в них ИИ-агентов.
  • Herder построен на библиотеке Ratatui и полностью написан на Rust, что обеспечивает высокую производительность и отсутствие зависимостей от Electron.
  • Интеграция через сокет API позволяет внешним агентам программно управлять интерфейсом терминала.

Большинство существующих инструментов для управления терминалом не оптимизированы под современные нужды ИИ-разработчиков. Herder решает проблему «пастушьего контроля», позволяя следить за тем, что делает каждый агент в различных панелях или вкладках. Инструмент поддерживает сохранение сессий и работает в любой среде, где доступен терминал, включая SSH-соединения.

Управление рабочими областями и агентами

  • Интерфейс поддерживает управление как через горячие клавиши (префикс Ctrl+B), так и с помощью мыши.
  • Агенты способны самостоятельно открывать, переименовывать и закрывать панели или рабочие области в ходе выполнения задач.
  • Пример автоматизации показывает, как агент Claude может параллельно искать секреты в кодовой базе и обобщать файлы, управляя выводом данных в разные панели.

После установки через brew, curl или nix flake, пользователь получает доступ к визуальному управлению агентами. Herder автоматически определяет активные процессы агентов и отображает их статусы в нижней панели навигации. Важным преимуществом является возможность делегировать агентам задачу по организации пространства: они могут самостоятельно создавать новые панели для разных подзадач и закрывать их по завершении работы.

Удаленная работа и кастомизация

  • Флаг remote при SSH-подключении позволяет применять локальный конфигурационный файл к удаленной серверной сессии.
  • Herder поддерживает гибкую настройку тем (nord, gruvbox, catppuccin) и системные уведомления.
  • На текущий момент полноценная поддержка Windows отсутствует из-за использования unix-сокетов и PTY терминала.

Архитектура Herder состоит из серверной части и тонкого клиента, взаимодействующих через unix-сокет. Это решение устраняет проблему рассинхронизации настроек при работе на удаленных серверах. Хотя инструмент ориентирован на Unix-подобные системы, он предлагает глубокую настройку окружения, включая смену префиксов клавиш и визуальных тем, сохраняя при этом интеграцию с существующим рабочим терминалом пользователя.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video