Show HN: FLE v0.3 – Claude Code 가 Factorio 를 플레이합니다
요약
Factorio Learning Environment (FLE) v0.3.0 릴리스는 장기 계획, 추론 및 세계 모델링 능력을 테스트하기 위한 중요한 진전을 보여줍니다. 이 버전은 Claude Code와 같은 최첨단 에이전트를 Factorio 환경에 연결하여 실제 상호작용 시뮬레이션을 가능하게 합니다. FLE는 이제 Factorio 클라이언트에 의존하지 않는 헤드리스 렌더러를 통해 대규모 확장성을 확보했으며, OpenAI Gym 인터페이스 표준화를 지원하여 기존 연구 코드베이스와의 통합을 용이하게 했습니다.
핵심 포인트
- FLE v0.3.0은 장기 계획 및 세계 모델링 능력을 테스트하는 데 중점을 둡니다.
- Factorio 클라이언트에 의존하지 않는 헤드리스 게임 렌더러를 도입하여 대규모 실험 환경을 구축했습니다.
- OpenAI Gym 인터페이스 표준화를 통해 기존 멀티턴 상호작용 에이전트 연구와의 통합이 간소화되었습니다.
- CLI 명령어와 오픈 소스 평가 코드를 제공하여 사용 편의성과 재현성을 높였습니다.
1. uv 로 FLE 설치
uv add factorio-learning-environment
2. Factorio 서버 클러스터 시작
fle cluster start
3. 평가 실행 (.env 에 API 키 포함)
fle eval --config configs/gym_run_config.json
Factorio Learning Environment (FLE) 의 0.3.0 릴리스는 장기 계획, 추론 및 세계 모델링에서 에이전트를 테스트하려는 우리의 노력에서 중요한 진전을 의미합니다.
원래 FLE 논문 (우리가 최첨단 모델이 변화하는 환경에 적응하기 어렵고, 장기 목표 설정 및 동적 회복에 어려움을 겪는다는 것을 증명함) 과 0.2.0 릴리스 (멀티 에이전시, 백트래킹 에이전트, 비전을 도입함) 이후로 여름 동안 수많은 개선 사항을 포함하여 v0.3.0 을 출시하기 위해 열심히 노력했습니다.
우리는 FLE 를 통해 Claude Code 를 Factorio 로 연결하여 최첨단 에이전트의 장기간 상호작용 환경에서의 능력을 선보이기 위해 Twitch 에서 라이브 스트리밍하고 있습니다.
FLE 는 이제 Factorio 게임 클라이언트에 의존하지 않아 대규모 확장 가능한 실험이 가능해졌습니다. 우리의 새로운 헤드리스 게임 렌더러는 다중 모달 에이전트 연구를 촉진하기 위한 현실적인 픽셀 관측을 제공합니다.
우리는 FLE 평가 환경을 OpenAI gym 인터페이스에 부합하도록 표준화하여, 멀티 턴 상호작용 에이전트 연구의 기존 연구 코드베이스로의 통합을 단순화했습니다. 관측 및 행동 공간의 예시는 아래에 표시됩니다.
FLE CLI 는 실험을 실행하는 것을 1 줄 셸 명령어만큼 간단하게 만듭니다. 우리는 또한 Weights and Biases 로깅, 스윕 재개, 분석 도구와 같은 기능을 갖춘 평가 코드를 오픈 소스로 공개했습니다.
에이전트가 자동 철강 기어 휠 공장을 건설하는 시뮬레이션 예시입니다. 에이전트는 게임 환경과 프로그래밍적 상호작용을 통해 공장 설계를 반복적으로 디버깅하고 개선합니다.
에이전트는 아이템 재고와 철강 기어 휠 공장을 건설할 목표를 가진 lab-play 세계로 스폰됩니다.
# 단계 1: 물 찾기 및 발전소 설치
water_pos = nearest(Resource.Water)
print(f"{water_pos} 에서 물을 찾았습니다")
# 물로 이동하여 오프쇼어 펌프 배치
move_to(water_pos)
offshore_pump = place_entity(Prototype.OffshorePump, position=water_pos)
print(f"오프쇼어 펌프를 {offshore_pump.position} 에 배치했습니다")
# 보일러를 설치할 수 있는 영역 찾기 (물에서 멀리 떨어진 곳)
boiler_box = BuildingBox(width=Prototype.Boiler.WIDTH + 4, height=Prototype.Boiler.HEIGHT + 4)
boiler_coords = nearest_buildable(Prototype.Boiler, boiler_box, offshore_pump.position)
move_to(boiler_coords.center)
boiler = place_entity(Prototype.Boiler, position=boiler_coords.center, direction=Direction.LEFT)
print(f"보일러를 {boiler.position} 에 배치했습니다")
# 보일러에 석탄 추가
boiler = insert_item(Prototype.Coal, boiler, quantity=20)
# 증기 엔진을 설치할 수 있는 영역 찾기
engine_box = BuildingBox(width=Prototype.SteamEngine.WIDTH + 4, height=Prototype.SteamEngine.HEIGHT + 4)
engine_coords = nearest_buildable(Prototype.SteamEngine, engine_box, boiler.position)
move_to(engine_coords.center)
steam_engine = place_entity(Prototype.SteamEngine, position=engine_co
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Claude Code Search의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기