Мультиагентные системы ломаются, и дело не в промптах — а в памяти

Запускаете несколько AI-агентов параллельно — и всё летит к чёрту. Знакомо? Я разобрался, почему так происходит, и ответ оказался не в мире AI.

Симптомы, которые вы точно видели

Агент A закончил задачу. Агент B, не зная об этом, делает ту же работу с другими параметрами. Агент C получает два противоречивых результата и «галлюцинирует» компромисс. Система что-то выдаёт — но это мусор, который стоил втрое дороже нормального результата.

Исследование MAST taxonomy (Cemri et al., 2025) на 1600+ трейсах в AutoGen, CrewAI и LangGraph показало: 37% отказов мультиагентных систем — рассинхронизация между агентами. Не плохие промпты. Не слабая модель. Агенты просто не знают, что делают другие.

Это не AI-проблема. Это проблема распределённых систем

Несколько процессов конкурируют за общее состояние. Параллельные записи конфликтуют. Нет гарантии, что все видят одну версию данных.

Бэкенд-разработчики узнают эту задачу мгновенно. Distributed systems решают её десятилетиями. А мультиагентные фреймворки почему-то делают вид, что изобретают проблему заново.

Три паттерна, которые работают

Event Sourcing

Не храните текущее состояние — храните лог событий. Каждое действие агента записывается в иммутабельный append-only лог. Текущее состояние вычисляется из цепочки событий.

Если два агента одновременно обновили одни данные — это видно в логе. Можно применить стратегию разрешения конфликта вместо молчаливой перезаписи.

Eventual Consistency через CRDT

Строгая консистентность дорога. Для большинства задач достаточно «в итоге все увидят одно и то же». CRDT (Conflict-free Replicated Data Types) дают автоматическое слияние без блокировок.

Каждый агент работает с локальной копией. Периодическое слияние гарантирует сходимость.

Оптимистичные блокировки

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

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

Почему это важно прямо сейчас

Операционные данные показывают: 50 tool calls на задачу, входные токены превышают выходные в 100 раз. Когда агенты дублируют работу из-за рассинхронизации — вы платите трижды за один результат.

Event sourcing обнаруживает дублирование. Оптимистичные блокировки предотвращают перезапись. CRDT минимизируют overhead синхронизации. Вместе — решают 80% проблем координации.

Что делать

1. Начните с event store — даже Redis Streams или SQLite append-only лог радикально улучшит наблюдаемость 2. Не гонитесь за строгой консистентностью — eventual consistency покрывает большинство сценариев 3. Добавьте оптимистичные блокировки только для точек невозврата 4. Проектируйте мультиагентную систему как распределённую — а не как чат-бот с делегированием

Кто уже запускал мультиагентные системы в продакшн — сталкивались с рассинхронизацией состояния? Как решали?