
Часть 2 серии Factory Agent: визуальный обзор интеллектуального управления
Прежде чем погрузиться в архитектурные принципы и структуру данных, лежащие в основе Factory Agents, мы хотим показать вам что-то по-настоящему интересное.
Что произойдет, если внедрить большие языковые модели в живой, дышащий (виртуальный) индустриальный мир?
Представляем:
Factorio + LLM-агенты
Симуляция интеллектуальных систем управления с открытым финалом, где LLM-агенты воспринимают информацию, рассуждают и действуют внутри виртуальной фабрики.
1. Добро пожаловать в мир Factorio
Прежде чем перейти к архитектуре и агентам, давайте кратко познакомимся с миром, в котором проходят наши эксперименты — популярной игрой-симулятором Factorio.
- «Factorio — это игра, в которой вы строите и обслуживаете фабрики».
Вам предстоит добывать ресурсы, исследовать технологии, создавать инфраструктуру и автоматизировать производство. Используйте воображение для проектирования фабрики, объединяйте простые элементы в сложные структуры и применяйте навыки управления, чтобы поддерживать её работоспособность.
Игра отличается высокой стабильностью и оптимизирована для создания масштабных производств. Вы можете создавать собственные карты, писать моды на Lua или играть с друзьями в многопользовательском режиме.
Почему Factorio — идеальный полигон для индустриальных LLM-агентов
Ценность Factorio для исследований в области ИИ заключается в том, что это готовая, физически согласованная индустриальная среда. Вместо того чтобы создавать сложные физические движки и правила мира с нуля, исследователи и разработчики могут использовать эту платформу для того, чтобы:
- Тестировать индустриальные LLM-системы в контролируемой, но сложной среде
- Визуализировать решения агентов и их последствия в режиме реального времени
- Экспериментировать с различными стратегиями автоматизации без ограничений физического оборудования
- Проверять возможности ИИ в планировании и оптимизации на основе встроенных игровых механик
Такой подход «естественной лаборатории» позволяет нам сосредоточиться на интеллекте агентов, а не на разработке симуляции, что значительно ускоряет цикл исследований в области промышленного ИИ.
Наша среда: контролируемый мир для интеллектуальных агентов
В нашем эксперименте мы создали специальный сценарий «песочницы»:
- Бесконечные ресурсы: отсутствие истощения месторождений и экономической нехватки
- Никаких врагов: все боевые механики отключены
- Чистое проектирование систем: фокус исключительно на планировке, пропускной способности, координации и управлении
Такие условия позволяют нам изолировать интеллектуальное поведение LLM-агентов, исключив влияние случайных факторов или элементов выживания.
Наша цель — пронаблюдать, как LLM-агенты справляются с задачами в детерминированной среде, где каждое их решение — будь то размещение объектов, производство или оптимизация — имеет измеримый и воспроизводимый результат.
Именно в этом мире наши «Фабричные агенты» живут, думают, действуют и учатся.
Посмотрим, что они предпримут дальше.
2. Архитектура LLM-агента и потоки данных
Factorio предоставляет API-интерфейс, который позволяет считывать состояние фабрики и выполнять команды, что дает нам возможность выстроить полный цикл управления LLM-агентом: наблюдение — планирование — действие — наблюдение.
Мы используем MQTT с единым пространством имен (UNS) для обмена данными в реальном времени между агентами и средой Factorio.
Цикл работы «Фабричного агента»: от восприятия к действию
1. Уровень восприятия
- Подключается к данным о состоянии, предоставляемым Factorio: статус оборудования, уровни ресурсов, информация о планировке
- Получает структурированные данные наблюдений из MQTT-топиков (например, Factorio/Sandbox/Power/Line4487/generator4209/electricity)
- Каждый LLM-агент подписывается только на те топики, которые соответствуют его роли и области принятия решений
2. Уровень рассуждения и принятия решений (уровень агента)
- Агенты могут работать на базе одного или нескольких экземпляров LLM, взаимодействующих друг с другом
- Обрабатывают данные о состоянии в формате JSON и принимают решения посредством вызовов LLM
- В настоящее время для принятия решений используется простое логическое обоснование на основе промптов
- Дальнейшая разработка может включать отслеживание целей, модули памяти и возможности обучения
3. Уровень отправки команд
- Результаты работы LLM представляют собой структурированные JSON-команды
например,
"command": "place_entity",
"params": {
"name": "steam-engine",
"x": 12,
"y": 20,
"direction": "4"
}- Они публикуются в MQTT-топики управления, распределяясь по функциям и целям
- Этот уровень служит мостом между когнитивным намерением и физическим действием
4. Уровень исполнения (среда)
- Симуляция Factorio получает и выполняет команды через специальный игровой мод / API-шлюз
- Оборудование строится, демонтируется, настраивается или перенаправляется соответствующим образом
- Игра в режиме реального времени публикует обновленное состояние обратно в MQTT-топики
5. Уровень обратной связи и обучения
- Агенты заново воспринимают мир через обновленные топики состояния
- Это обеспечивает основу для следующего этапа планирования
- Со временем этот уровень будет поддерживать рабочую память, оценку планов и многошаговые стратегии
Резюме
Эта архитектура создает непрерывный контур управления, в котором LLM-агенты получают данные о заводе, принимают решения и выполняют действия, повышающие эффективность производства.
Данная архитектура полностью соответствует пятиуровневой системе управления, представленной в первой части нашей серии, но теперь она реализована в конкретной визуальной среде, где результаты решений агентов становятся очевидными незамедлительно.
|
Layout
|
Power per Area
|
Solar:Accumulator Ratio
|
Description
|
|
---------------
|
----------------
|
--------------------------
|
--------------------------------------------------
|
|
Initial Setup
|
85 W/m²
|
1:1
|
Haphazard placement with equal panels and accumulators
|
|
Optimized Grid
|
132 W/m²
|
1:18:1
|
Strategic layout with optimal spacing and ratio
|
[От текущей планировки к намеченной оптимизации — путь развития дизайна]
.webp)
.webp)
🧠 Процесс логического вывода агента
### Initial Analysis
- Space available: 120x80 tiles
- Panel placement inefficient (large gaps)
- Nighttime power dips to 82% of required level
### Hypotheses
- Accumulator shortage causes night outage
- Poor layout reduces panel density and connection efficiency
### Strategy
- Reorganize layout into compact grid for maximum density
- Incrementally test solar:accumulator ratios (starting from 1:1 to 1.3:1)
- Monitor stability across multiple day-night cycles
### Outcome
- 1.18:1 ratio found optimal for 24/7 operation
- Improved power density by 55% without expanding areaКлючевой вывод
Не имея заранее заданных правил игры или готовых формул, агент Factory Agent на базе LLM самостоятельно вычислил теоретически оптимальное соотношение солнечных панелей к аккумуляторам 1,18:1, используя итеративное пространственное мышление и анализ обратной связи. Этот результат практически совпадает с разработками экспертов, однако был достигнут автономно, что доказывает способность LLM оптимизировать промышленные планировки с помощью интеллектуальных языковых моделей.
3.2 🪓 Сценарий 2: Эффективная добыча меди Горнодобывающие работы
Цель: Максимизировать объем добычи медной руды в минуту при ограниченной площади и бюджете электроэнергии.
В этом сценарии перед агентом Factory Agent была поставлена задача оптимизировать добычу меди на ограниченном участке размером 120×80 тайлов. Сложность заключалась не только в пространственном размещении буров, но и в логистике: обеспечении достаточной пропускной способности конвейеров, предотвращении заторов и поддержании стабильного энергоснабжения для непрерывной работы.
Первоначальная конфигурация отличалась неэффективным расположением электрических буров с перекрывающимися зонами, неправильно проложенными конвейерами и неоптимальным размещением подстанций. Эти проблемы приводили к частым остановкам добычи, простою оборудования и возникновению «бутылочных горлышек» на выходной линии.
|
Layout
|
Ore per Minute
|
Drill Density
|
Description
|
|
---------------
|
----------------
|
-----------------
|
------------------------------------------------------
|
|
Initial Setup
|
310/min
|
0.42 drills/tile
|
Overlapping coverage with bottlenecked belts
|
|
Optimized Grid
|
470/min
|
0.55 drills/tile
|
Aligned drills, clean belt routing, consistent power coverage
|Примечание: Плотность буров = Общее количество активных буров / общая используемая площадь в тайлах
[От текущей планировки к идеальной оптимизации — путь эволюции проекта]
.webp)
.webp)
🧠 Процесс рассуждения агента
### Initial Observations
- Drill layout disorganized, several mining areas overlap
- Output belt frequently jammed, causing drill idling
- Substation coverage inconsistent, causing power drops
### Hypotheses
- Better drill spacing can reduce interference and improve ore yield
- Simplifying belt routing will improve material flow and prevent backup
- Strategic substation placement can ensure consistent uptime
### Strategy
- Apply uniform grid layout to maximize drill coverage per tile
- Align all output belts toward central collection spine
- Place substations in a staggered pattern to fully cover all drills
### Result
- Ore output improved from 310/min to 470/min (+52%)
- Belt saturation avoided, drill uptime reached 98%+
- Improved maintainability and layout scalabilityКлючевой вывод
Агент Factory Agent не просто увеличил количество буров — он полностью реорганизовал схему добычи, применив пространственное мышление, управление энергопотреблением и оптимизацию пропускной способности. Такая многомерная перестройка повторяет действия опытного игрока после долгих часов проб и ошибок, однако здесь она была выполнена агентом на базе LLM всего за несколько итерационных циклов.
3.3 🌱 Сценарий 3: Баланс между эффективностью и экологичностью
Цель: Поддерживать высокий уровень производства, удерживая выбросы ниже 500 ppm во избежание экологических штрафов.
В этом сценарии агент Factory Agent столкнулся с классической промышленной дилеммой: наращивание производства для выполнения плановых показателей при одновременном контроле экологического ущерба. В отличие от простой максимизации производительности, эта задача требовала многокритериальной оптимизации по параметрам эффективности и экологической устойчивости.
|
Layout
|
Production (units/min)
|
Pollution (ppm)
|
Modules Used
|
Energy Source
|
Description
|
|
-------------
|
-------------------------
|
-----------------
|
-------------------------------
|
------------------------
|
--------------------------------------------------
|
|
High Output
|
580
|
850
|
Productivity modules only
|
Coal power
|
Maximum output, no pollution mitigation
|
|
Balanced
|
520
|
450
|
Mix of Efficiency + Productivity
|
Solar + Backup Coal
|
Controlled output with pollution under threshold
|Примечание: Предел загрязнения = 500 ppm (порог экологического соответствия)
[От текущей структуры к планируемой оптимизации — путь развития дизайна]
.webp)
.webp)
🧠 Процесс принятия решений агентом
### Initial Observations
- Drill layout disorganized, several mining areas overlap
- Output belt frequently jammed, causing drill idling
- Substation coverage inconsistent, causing power drops
### Hypotheses
- Better drill spacing can reduce interference and improve ore yield
- Simplifying belt routing will improve material flow and prevent backup
- Strategic substation placement can ensure consistent uptime
### Strategy
- Apply uniform grid layout to maximize drill coverage per tile
- Align all output belts toward central collection spine
- Place substations in a staggered pattern to fully cover all drills
### Result
- Ore output improved from 310/min to 470/min (+52%)
- Belt saturation avoided, drill uptime reached 98%+
- Improved maintainability and layout scalabilityКлючевой вывод
Агент завода продемонстрировал адаптивное обоснование компромиссов— не просто оптимизацию одного показателя, а поиск баланса между конкурирующими целями для нахождения жизнеспособного и прозрачного решения.
5. Что дальше
Над чем мы работаем
Текущие направления разработки:
- Координация мультиагентных систем: Совместная работа специализированных агентов над сложными задачами оптимизации
- Память и обучение: Агенты, которые запоминают успешные стратегии и адаптируются со временем
- Работа со сложными ограничениями: Обучение агентов балансировке между несколькими конкурирующими целями
- Масштабирование производительности: Управление временем отклика по мере роста сложности производства
В следующем выпуске: В третьей части мы подробно разберем техническую базу, которая делает этот интеллект возможным: «Почему топики MQTT + JSON идеально подходят для промышленных LLM-агентов» — мы изучим инфраструктуру данных, обеспечивающую такие визуальные результаты.
🔗 Читать часть 1: Создание LLM-агента для принятия решений на примере симуляции завода
📁 Изучить код: https://github.com/supcon-international/Factorio-MQTT-mod