어제 글: 

LLM 한테 팩토리오 가르치기 4일차이전글:  LLM 한테 팩토리오 가르치기 3일차 - 팩토리오 마이너 갤러리이전글: https://gall.dcinside.com/mgallery/board/view/?id=factorio&no=1092gall.dcinside.com


오늘의 발전



구조를 궁금해하는 친구들이 있어서 대충 설명해줄게!


이 프로젝트는 LLM에 두 가지를 붙였어: (claude랑 무료모델 섞어쓰는중)


1. 도구(tool/function calling) — Claude가 글만 뱉는 게 아니라 build, diagnose, smelter_block 같은 함수를 직접 호출해서 게임 세계에 실제로 손을 댈 수 있음. (챗지피티가 "벨트 깔아"라고 글로 말하는 게 아니라, 실제로 벨트를 까는 명령을 실행하는 것)

2. 자기개선 루프 — 한 판 플레이가 끝나면 어디서 막혔나를 보고, 그 약점을 메우는 코드를 스스로 한 줄 고치고 커밋함. 다음 판이 그 수정을 검증함.


전체 구조

게임 ↔ mod ↔ MCP ↔ Claude, 그리고 이 전체를 도는 개선 루프 4층 구조다.

① 팩토리오(헤드리스 서버)가 실제 공장 세계를 굴린다.

② mod인 **control.lua**가 게임 안에 build·diagnose·repair·smelter_block 같은 "명령"을 만들어 RCON으로 노출한다.

③ MCP 서버가 그 명령들을 Claude가 부를 수 있는 도구로 변환해 다리를 놓는다. ④ 플레이어 Claude가 목표(과학팩 생산 등)를 받아 도구를 호출하며 직접 공장을 짓는다.


그 바깥에 오케스트레이터 루프가 있다: 게임 리셋 → 플레이어 Claude 한 판 실행 → 결과 디브리프 → 막힌 원인 하나만 골라 control.lua/문서를 고치고 테스트 → 커밋. 다음 판이 그 수정을 검증한다. 사람은 "go"만 치면 한 사이클이 돈다. 즉 Claude가 팩토리오를 플레이하면서, 자기 도구를 스스로 진화시키는 자가개선 봇이다.


그리고,

- mod이 노출한 도구는 게임 API 위에 얹은 고수준 건설 매크로라고 보면 됨. smelter_block 한 번 부르면 화로 배열+벨트+인서터가 통째로 깔림 (블루프린트 스탬프와 비슷하지만, AI가 좌표를 직접 계산해서 놓음).

- 가장 중요한 도구가 diagnose → repair → diagnose 루프야. "왜 이 화로가 멈췄지?"(연료 없음/광물 없음/전력 islanded)를 AI에게 알려줘서, 사람이 막힌 공장 디버깅하듯 고치게 함.

- harness/IMPROVEMENT_LOG.md가 일종의 패치노트. 지금 35번째 이터레이션쯤 돌고 있고, 매판 "멈춘 기계 수(stalled)"가 점수임 — 그걸 줄이는 게 목표.



 diagnose→repair 피드백 루프 = LLM의 "눈" 보완

LLM의 근본 약점은 공장을 볼 수 없다는 것 (좌표 숫자 목록만 받음). 그래서 "왜 안 돌지?"를 머릿속으로 추측하다 멀쩡한 배선을 손으로 풀어 헤쳐 버림(34의 사고). 이 코드의 진짜 엔진은:

- diagnose가 멈춘 기계마다 기계가 읽을 수 있는 원인을 돌려줌: no_fuel / no_ingredients / no_power

- 이터레이션이 진행될수록 점점 더 구체적인 힌트로 진화: "이 벨트는 석탄만 나르고 광물이 없음 — 여기에 광물을 흘려라", "이 트렁크는 직접 깔지 말고 steam_bank에 좌표를 넘겨라"

- repair는 고칠 수 있는 것(전력 끊긴 셀)만 자동 수리하고, 나머지는 정직하게 원인+제안으로 돌려줌 (자원을 거짓으로 만들어내지 않음)


즉 "개방형 추론 문제"를 "가이드된 디버그 루프"로 바꾼 것. 그리고 메타 레벨에서, 매 이터레이션이 하는 일이 바로 이 diagnose 힌트를 한 줄 더 똑똑하게 다듬는 것이야 — 플레이어가 자주 misdiagnose하는 지점을 발견하면, 그 혼동을 없애는 힌트를 mod에 박아 넣음. (이게 셋째 비결인 자가개선 루프: 한 번에 한 가지만 고치고, 그 수정은 다음 런이 검증한다 — 내가 만든 변경을 절대 내가 믿지 않는다.)



---



아래 글에 다른 친구가 스크린샷 찍는 코드를 알려줘서, 이제 츄라이마다 스샷을 찍을 수 있게 되었음.



9번째 츄라이, 철판 만드는것도 힘듦.






과학팩 생산 및 연구까지 자동화된 28번쨰 츄라이 




34번째 츄라이





llm이 눈이 안달려있다보니 벨트를 기존 빌드랑 섞이게 설치하는게 거의 모든 에러의 원인임... 빨간팩 자동화만 안정적으로 성공하면 초록팩까지는 금방갈꺼같은데 ㅎㅎ 며칠간 어렵네. 한달은 잡고 해야할듯.