Блог

Оживший завод: LLM-агенты в мире Factorio

Опубликовано
September 8, 2025
Время чтения
2
мин

Часть 2 серии Factory Agent: визуальный обзор интеллектуального управления

Прежде чем погрузиться в архитектурные принципы и структуру данных, лежащие в основе Factory Agents, мы хотим показать вам что-то по-настоящему интересное.

Что произойдет, если внедрить большие языковые модели в живой, дышащий (виртуальный) индустриальный мир?

Представляем:

Factorio + LLM-агенты

Симуляция интеллектуальных систем управления с открытым финалом, где LLM-агенты воспринимают информацию, рассуждают и действуют внутри виртуальной фабрики.

1. Добро пожаловать в мир Factorio

Прежде чем перейти к архитектуре и агентам, давайте кратко познакомимся с миром, в котором проходят наши эксперименты — популярной игрой-симулятором Factorio.

  • «Factorio — это игра, в которой вы строите и обслуживаете фабрики».

Вам предстоит добывать ресурсы, исследовать технологии, создавать инфраструктуру и автоматизировать производство. Используйте воображение для проектирования фабрики, объединяйте простые элементы в сложные структуры и применяйте навыки управления, чтобы поддерживать её работоспособность.

Игра отличается высокой стабильностью и оптимизирована для создания масштабных производств. Вы можете создавать собственные карты, писать моды на Lua или играть с друзьями в многопользовательском режиме.

Почему Factorio — идеальный полигон для индустриальных LLM-агентов

Ценность Factorio для исследований в области ИИ заключается в том, что это готовая, физически согласованная индустриальная среда. Вместо того чтобы создавать сложные физические движки и правила мира с нуля, исследователи и разработчики могут использовать эту платформу для того, чтобы:

  1. Тестировать индустриальные LLM-системы в контролируемой, но сложной среде
  2. Визуализировать решения агентов и их последствия в режиме реального времени
  3. Экспериментировать с различными стратегиями автоматизации без ограничений физического оборудования
  4. Проверять возможности ИИ в планировании и оптимизации на основе встроенных игровых механик

Такой подход «естественной лаборатории» позволяет нам сосредоточиться на интеллекте агентов, а не на разработке симуляции, что значительно ускоряет цикл исследований в области промышленного ИИ.

Наша среда: контролируемый мир для интеллектуальных агентов

В нашем эксперименте мы создали специальный сценарий «песочницы»:

  • Бесконечные ресурсы: отсутствие истощения месторождений и экономической нехватки
  • Никаких врагов: все боевые механики отключены
  • Чистое проектирование систем: фокус исключительно на планировке, пропускной способности, координации и управлении

Такие условия позволяют нам изолировать интеллектуальное поведение 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  
|

[От текущей планировки к намеченной оптимизации — путь развития дизайна]

🧠 Процесс логического вывода агента

### 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 
|
Примечание: Плотность буров = Общее количество активных буров / общая используемая площадь в тайлах

[От текущей планировки к идеальной оптимизации — путь эволюции проекта]

🧠 Процесс рассуждения агента

### 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 (порог экологического соответствия)

[От текущей структуры к планируемой оптимизации — путь развития дизайна]

🧠 Процесс принятия решений агентом

### 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

Начните путь к цифровизации, используя возможности ИИ для оптимизации операций

Связаться с нами