factorio-learning-environment  by JackHopkins

Framework for evaluating LLM agents in Factorio

created 4 years ago
751 stars

Top 47.2% on sourcepulse

GitHubView on GitHub
Project Summary

This repository provides the Factorio Learning Environment (FLE), a framework for developing and evaluating Large Language Model (LLM) agents within the game Factorio. It offers two modes: "Lab-play" for structured tasks and "Open-play" for unbounded factory building, aiming to assess LLMs' spatial reasoning and complex automation capabilities.

How It Works

FLE enables LLM agents to interact with Factorio through a code synthesis REPL pattern. Agents observe the game state via program output streams, generate Python code for actions using a provided API, and receive feedback. This feedback loop, coupled with a namespace for state management and typed exceptions for debugging, allows agents to build complex representations and self-correct. The environment supports custom tools, implemented in Python and Lua, for agent interaction.

Quick Start & Requirements

  • Install: pip install -e .
  • Prerequisites: Factorio (version 1.1.110), Python 3.10+, Docker.
  • Setup: Requires purchasing Factorio, downgrading to version 1.1.110, configuring Docker, and setting up a database (Postgres or SQLite). Firewall configuration may be needed for remote servers.
  • Links: Leaderboard, Paper, Website

Highlighted Details

  • Supports two main modes: Lab-play (24 structured tasks) and Open-play (unbounded factory building).
  • Includes a visual agent that takes map renderings as input.
  • Offers a comprehensive API with ~27 agent tools for game interaction.
  • Benchmarks show significant performance differences between headless and client-based Factorio server execution, with headless offering higher throughput.
  • The interpreter overhead for executing Python policies is substantial, reducing ops/sec by up to 69%.

Maintenance & Community

  • The project is actively maintained, with recent updates including the visual agent.
  • Community channels are not explicitly mentioned in the README.

Licensing & Compatibility

  • The repository's license is not explicitly stated in the provided README text.

Limitations & Caveats

  • Requires a specific, older version of Factorio (1.1.110), necessitating a downgrade.
  • The setup process involves multiple steps including game installation, Docker configuration, and database setup, which can be time-consuming.
  • Performance benchmarks indicate that the Python interpreter layer significantly impacts execution speed.
Health Check
Last commit

14 hours ago

Responsiveness

1 day

Pull Requests (30d)
26
Issues (30d)
19
Star History
116 stars in the last 90 days

Explore Similar Projects

Starred by Zhiqiang Xie Zhiqiang Xie(Author of SGLang), Chip Huyen Chip Huyen(Author of AI Engineering, Designing Machine Learning Systems), and
6 more.

swarm by openai

0.3%
20k
Multi-agent orchestration framework for lightweight agent coordination
created 1 year ago
updated 4 months ago
Feedback? Help us improve.