- `mine_resource` 함수에서 채굴 상태를 매 루프마다 반복 설정하던 로직을 제거하여, 우클릭 유지와 유사한 동작으로 최적화
- GLM API 호출 실패 시 예외 처리 로직을 개선하여, 다양한 오류 원인을 로그로 출력하고 상태 요약 기반의 폴백 로직 추가
- 새로운 연결 검사 스크립트 추가 및 README.md에 GLM API 연결 문제 디버깅 섹션 추가
- 관련 문서 및 주의사항 업데이트
- `place_entity` 함수에서 인벤토리 아이템 유무를 확인하기 전에 기존 엔티티를 탐색하여 재사용(`REUSED`) 처리하도록 로직 개선
- 요청 좌표 주변 `±1 타일` 및 반경 `3` 타일 내에서 기존 엔티티를 찾아 재사용할 수 있도록 확장
- `stone-furnace`의 재사용 시 자동 부트스트랩 기능이 정상 작동하도록 보장
- README.md에 변경 사항 및 새로운 동작 설명 추가
- `tests/test_place_entity_reuse.py`에 대한 단위 테스트 추가
- `stone-furnace` 배치 후 자동으로 `coal`과 `iron-ore`/`copper-ore`를 투입하여 제련이 시작되도록 보정하는 기능 추가
- `insert_to_entity` 호출 전에 `can_insert` 여부를 확인하여 아이템 증발 위험을 줄이는 로직 개선
- `README.md`에 새로운 기능 설명 추가
- `tests/test_furnace_bootstrap.py` 및 `tests/test_insert_to_entity.py`에 대한 단위 테스트 추가
- 에이전트가 발견한 광맥 좌표를 `ore_patch_memory.json`에 저장하여 재시작 시 활용 가능
- 마지막 실행한 행동과 결과를 `agent_last_action_memory.json`에 저장하여 다음 상태 요약에서 참고 가능
- `state_reader.py`에서 메모리 로드 및 상태 요약에 포함
- `ai_planner.py`에서 시스템 프롬프트에 기억된 광맥 및 마지막 행동 관련 가이드 추가
- `README.md`에 새로운 메모리 기능 설명 추가
- 인벤토리 캐시 기능을 추가하여, RCON으로 인벤토리를 읽지 못할 경우 이전에 성공적으로 읽은 데이터를 활용
- Lua에서 JSON 인코딩을 위한 간단한 함수 추가, 일부 Factorio 버전에서 `game.table_to_json`이 없을 경우 대체
- `README.md`에 인벤토리 캐시 및 JSON 인코더 사용에 대한 설명 추가
- `scan_resources()`와 `mine_resource`의 반경을 확장하여 자원 탐색 실패를 줄임
근본 원인: 매번 같은 타일(388,2)을 찾아서 무한 반복
수정:
1. Python에서 failed_positions set() 유지
2. Lua에 exclude 테이블 전달 → 실패한 좌표 건너뛰기
3. 접근 불가 타일은 즉시 제외 목록에 추가
4. 고갈된 타일도 제외
5. 최대 15개 다른 타일 순서대로 시도
6. ALL_EXCLUDED 시 명확한 메시지 반환
근본 원인: mining_state는 2.7타일 이내만 채굴 가능
이전: 반경 50에서 찾고 제자리에서 채굴 시도 → 손이 안 닿아 실패
이후:
1. 반경 80에서 가장 가까운 광석 찾기
2. 그 광석 타일 좌표로 move (걸어가기)
3. 도착 후 mining_state로 채굴
4. 타일 고갈/접근불가 시 다음 가까운 타일로 자동 이동
5. 최대 10라운드(이동+채굴) 반복
이전: 같은 위치에서 5개 타일만 시도 → 절벽이면 전부 실패
이후:
1. 현재 위치에서 반경 50, 10개 타일 시도
2. 실패 → 광맥 중심 주변 8방향(±10~15칸)으로 이동
3. 새 위치에서 다시 10개 타일 시도
4. 총 9개 위치 × 10개 타일 = 최대 90번 시도
5. 부분 채굴도 성공으로 반환
- explore(direction, max_steps): 8방향 걷기 + 매 20틱마다 반경 50 자원 스캔
- 자원 발견 → 즉시 멈추고 위치 + 자원 종류/수량 반환
- 장애물 stuck 감지 → "다른 방향 시도" 메시지
- insert_to_entity: area 대신 position+radius (중괄호 충돌 방지)