Почему один markdown-файл может заменить шину сообщений для AI coding agents

В дискуссиях про координацию coding agents нередко звучит ответ в духе message bus с pub/sub и «переговорами» о задачах — в том числе на фоне фреймворков вроде CrewAI и AutoGen, где в теглайне фигурирует multi-agent. Автор материала на dev.to предлагает другую ось: канбан-доску из markdown-файлов и диспетчеризацию задач без полного обмена статусами между всеми агентами сразу. Статья вышла 5 апреля 2026; в метаданных указано около шести минут чтения, теги — ai, opensource, productivity, devtools.
От широковещания к росту числа сообщений
Автор описывает сценарий, в котором агенты широковещательно обмениваются статусами (в тексте приводится пример с задачами вроде 27/28). Утверждается: по мере роста числа агентов растёт и число потенциальных пар сообщений — в статье это обозначено как O(n²).
Для иллюстрации приведены оценки: при пяти агентах нагрузка «ещё терпима», при десяти — 90 потенциальных пар, при двадцати — 380.
Популярный ответ «message bus» связывается с pub/sub и координацией через обмен сообщениями. В качестве ожидаемого окружения для такой архитектуры названы в том числе CrewAI, AutoGen и другие фреймворки с акцентом на multi-agent в описании.
Канбан в файлах и «одно чтение — одна задача»
Альтернатива в посте — завести отдельный markdown-файл на каждую задачу в каталоге. Агент читает один такой файл; для одной задачи это в материале названо O(1): одно чтение, одна задача, без необходимости разбирать поток широковещательных статусов от всех участников.
В сниппете к публикации заголовок и вводный тезис противопоставляют статический markdown-артефакт и message bus; там же говорится про kanban-driven task dispatch для AI coding agents и обещание показать, что это проще, чем может показаться.
Batty: каталог .batty/board/tasks/ и цикл демона
Автор развивает идею на примере инструмента Batty и ссылается на репозиторий https://github.com/battysh/batty.
Задачи лежат в .batty/board/tasks/. В статье приведены имена вроде 027-add-jwt-auth.md и статусы в контексте файла (in-progress, todo, backlog, done).
Показан пример YAML frontmatter с полями id, title, status, priority, depends_on, claimed_by, tags и телом markdown с описанием и критериями «Done when».
Цикл демона описан так: каждые 10 секунд — скан каталога, поиск простаивающих агентов, для каждого — выбор задачи с наивысшим приоритетом при условиях backlog или todo, отсутствия чужого claim, отсутствия блокировки и выполненных зависимостей по depends_on; затем обновление файла (in-progress, claimed_by) и запуск агента.
Приоритеты: critical выше high, high выше medium; при равенстве — по ID задачи (старшая необработанная необлокированная побеждает). По версии автора, файл обновляется до запуска агента, чтобы доска оставалась согласованной.
grep, JSON и то, что модели уже видели в обучении
В посте приведены примеры команд grep для поиска in-progress, claimed_by и подсчёта задач по status.
Отдельно контрастируется «сырое» JSON-сообщение с полем task_assignment и markdown-задача. Тезис: большие языковые модели уже ориентируются в markdown — README, issues, документация, Stack Overflow.
Сбои и ограничения, которые перечисляет автор
Риски в материале изложены кратко:
- потерянные обновления на диске;
- двойные claim (в посте демон позиционируется как единственный писатель dispatch-операций);
- упавшие агенты и реконсиляция на каждом цикле;
- зависимости и проверка
depends_onдо выдачи задачи.
Ограничения по тексту поста: подход не подходит, если нужен обмен промежуточными результатами в реальном времени при интервале опроса 10 с — тогда нужен push. При более чем пятидесяти агентах скан каталога каждые 10 с «начинает иметь значение». Batty в материале позиционируется ориентирно на 3–10 агентов. Межпроектная или межмашинная координация без общей файловой системы потребует сетевого слоя.
В конце статьи автор предлагает попробовать инструмент так:
cargo install batty-cli
batty init
batty up
Там же указаны ссылки на GitHub, демо на YouTube и документацию — см. блок источников ниже.
Источники
- Battyterm. Why a Markdown File Beats a Message Bus — dev.to. URL: https://dev.to/battyterm/why-a-markdown-file-beats-a-message-bus-4p4o — дата обращения: 2026-04-06 (UTC).
По этой странице воспроизведены тезисы про координацию агентов, O(n²) и O(1), примеры с CrewAI и AutoGen, описание Batty (каталог.batty/board/tasks/, frontmatter, цикл демона раз в 10 с, приоритеты,grep, риски, ограничения и команды CLI), а также ссылки из футера поста: репозиторий https://github.com/battysh/batty, демо https://www.youtube.com/watch?v=2wmBcUnq0vw, документация https://battysh.github.io/batty (все — по тексту первоисточника, дата доступа 2026-04-06 UTC). - Дата публикации на dev.to (2026-04-05, время 14:18:09 UTC), заявленное время чтения около шести минут и попадание в ленты по тегам ai, opensource, productivity, devtools: согласованы с метаданными карточки материала и с полнотекстовой сверкой по тому же URL (дата доступа 2026-04-06 UTC); публичное число просмотров страницы в доступных срезах не указано (null).