From 7953047212c816128a30ed1c766d3fe0836b8697 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 25 Mar 2026 20:33:16 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20GLM=20=EB=AA=A8=EB=8D=B8=EB=AA=85=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/action_executor.cpython-313.pyc | Bin 0 -> 21113 bytes __pycache__/ai_planner.cpython-313.pyc | Bin 0 -> 15490 bytes .../context_compressor.cpython-313.pyc | Bin 0 -> 13521 bytes __pycache__/factorio_rcon.cpython-313.pyc | Bin 0 -> 6303 bytes __pycache__/state_reader.cpython-313.pyc | Bin 0 -> 9397 bytes agent_log.jsonl | 66 ++++++++++++++++++ ai_planner.py | 2 +- 7 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 __pycache__/action_executor.cpython-313.pyc create mode 100644 __pycache__/ai_planner.cpython-313.pyc create mode 100644 __pycache__/context_compressor.cpython-313.pyc create mode 100644 __pycache__/factorio_rcon.cpython-313.pyc create mode 100644 __pycache__/state_reader.cpython-313.pyc create mode 100644 agent_log.jsonl diff --git a/__pycache__/action_executor.cpython-313.pyc b/__pycache__/action_executor.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cdaff3e1c109ed83b6b56e3284a50b0d1add8ce9 GIT binary patch literal 21113 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 A6aWAK literal 0 HcmV?d00001 diff --git a/__pycache__/context_compressor.cpython-313.pyc b/__pycache__/context_compressor.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ce6b61925e0e22e93fc45a8b731299feba277382 GIT binary patch literal 13521 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 literal 0 HcmV?d00001 diff --git a/__pycache__/factorio_rcon.cpython-313.pyc b/__pycache__/factorio_rcon.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eb265bc66bf2ddf1ff9c2f6ac805b802eeab6899 GIT binary patch literal 6303 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 N3z!7@F~O1(@jvD5AvFL1 literal 0 HcmV?d00001 diff --git a/agent_log.jsonl b/agent_log.jsonl new file mode 100644 index 0000000..7ea0c07 --- /dev/null +++ b/agent_log.jsonl @@ -0,0 +1,66 @@ +{"step": 1, "action": {"action": "move", "params": {"x": 10, "y": 0}, "reason": "시야를 확보하여 인근 자원 패치를 찾기 위해 이동"}, "success": false, "message": "(10,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774414751.1273699} +{"step": 2, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "위치 정보가 불확실하므로 원점(0,0)으로 이동하여 스폰 지점을 기준으로 잡음"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774414896.2017908} +{"step": 3, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "시작 지점으로 이동하여 주변 상황 파악"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774414953.6023395} +{"step": 4, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "원점 방향으로 이동 재시도로 위치 복구 시도"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774415087.8350036} +{"step": 5, "action": {"action": "move", "params": {"x": 1, "y": 1}, "reason": "현재 위치에서 아주 가까운 거리로 이동 시도. 이동이 성공하면 좌표계를 잡고 주변 자원 탐색 가능"}, "success": false, "message": "(1,1)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774415305.2186906} +{"step": 6, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "스폰 지점 presumed origin으로 이동하여 주변 상태 파악"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774415495.6019366} +{"step": 7, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "좌표 (0,0)으로 이동하여 맵 중심에 접근 시도"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774415568.9355204} +{"step": 8, "action": {"action": "mine_resource", "params": {"ore": "stone", "count": 5}, "reason": "현재 위치에서 돌 채굴 시도 (제련소 제작용)"}, "success": false, "message": "실행 오류: could not convert string to float: ''", "timestamp": 1774415586.6352522} +{"step": 9, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "시작 지점인 (0,0)으로 이동하여 위치를 확정 짓고 주변 자원을 스캔함"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774415648.0026102} +{"step": 10, "action": {"action": "move", "params": {"x": 10, "y": 10}, "reason": "기존 (0,0) 이동 실패로 인해 다른 좌표(10,10)로 이동 시도하여 캐릭터 위치를 갱신하고 자원 탐색 범위를 넓힘"}, "success": false, "message": "(10,10)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774415715.33529} +{"step": 11, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "맵의 중심 지점으로 이동하여 자원을 찾기 위함"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774415784.335003} +{"step": 12, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "가장 기준이 되는 좌표 (0,0)으로 이동 시도. 자원 탐색의 시작점."}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774415975.2185514} +{"step": 13, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "좌표계 초기화 및 위치 확인 시도"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774416115.7352495} +{"step": 14, "action": {"action": "move", "params": {"x": 100, "y": 100}, "reason": "초기 좌표 이동 실패로 더 넓은 범위 탐색을 위해 이동"}, "success": false, "message": "(100,100)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774416251.0025642} +{"step": 15, "action": {"action": "move", "params": {"x": 0, "y": 10}, "reason": "현재 위치에서 짧게 이동하여 유효한 영역 탐색 및 위치 갱신 시도"}, "success": false, "message": "(0,10)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774416491.285967} +{"step": 16, "action": {"action": "move", "params": {"x": 2, "y": 2}, "reason": "초기 좌표 이동 실패 후, 근거리 좌표(2,2)로 이동을 시도하여 맵 로딩 및 주변 지형 확인"}, "success": false, "message": "(2,2)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774416643.3522403} +{"step": 17, "action": {"action": "move", "params": {"x": 1, "y": 0}, "reason": "현재 위치에서 아주 가까운 북쪽(혹은 x축 방향)으로 1칸 이동 시도하여 이동 시스템 확인"}, "success": false, "message": "(1,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774416754.5350137} +{"step": 18, "action": {"action": "move", "params": {"x": 1, "y": 1}, "reason": "좌표 (1,1)로 이동 시도. 위치를 확보하기 위함."}, "success": false, "message": "(1,1)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774416850.6186059} +{"step": 19, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "좌표계 기준점인 (0,0)으로 이동하여 위치를 파악"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774416972.7515874} +{"step": 20, "action": {"action": "move", "params": {"x": 5, "y": 5}, "reason": "이전 이동들이 모두 실패했으므로, 시작 지점에서 가까운 거리(5,5)로 이동 시도하여 유효한 좌표를 찾고 자원을 탐색"}, "success": false, "message": "(5,5)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774417045.2688239} +{"step": 21, "action": {"action": "move", "params": {"x": 0, "y": 200}, "reason": "현재 위치에서 자원을 찾기 위해 북쪽(또는 임의의 방향)으로 길게 이동하여 자원 패치가 있는지 확인."}, "success": false, "message": "(0,200)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774417246.6684408} +{"step": 22, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "스폰 지점으로 이동하여 주변 환경 및 자원 패치 확인"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774417361.6020026} +{"step": 23, "action": {"action": "wait", "params": {"seconds": 2}, "reason": "게임 로딩 및 플레이어 스폰 대기"}, "success": true, "message": "2초 대기 완료", "timestamp": 1774417381.3811822} +{"step": 24, "action": {"action": "wait", "params": {"seconds": 1}, "reason": "시스템 안정화 및 짧은 대기 후 이동 재시도"}, "success": true, "message": "1초 대기 완료", "timestamp": 1774417415.6203752} +{"step": 25, "action": {"action": "move", "params": {"x": 50, "y": 50}, "reason": "이전 좌표 이동이 실패하여 더 먼 거리나 다른 방향 시도"}, "success": false, "message": "(50,50)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774417462.5017407} +{"step": 26, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "원점(0,0)으로 이동 시도하여 기준 위치 확보 및 맵 로딩 유도"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774417539.952161} +{"step": 27, "action": {"action": "move", "params": {"x": 10, "y": 10}, "reason": "현재 위치가 불명확하고 멀리 이동이 불가능하므로, 비교적 가까운 곳으로 이동 시도하여 맵 로딩 및 위치 확인"}, "success": false, "message": "(10,10)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774417669.6687183} +{"step": 28, "action": {"action": "move", "params": {"x": 500, "y": 500}, "reason": "이전에 (0,0), (50,50) 등으로 이동이 실패했으므로, 지도의 다른 지점(500,500)으로 이동을 시도하여 자원 패치를 찾음"}, "success": false, "message": "(500,500)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774417739.6016743} +{"step": 29, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "플레이어 위치를 초기화하거나 기준점(0,0)으로 이동하여 맵 진입 여부 확인"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774417812.2184923} +{"step": 30, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "기준점인 (0,0)으로 이동하여 현재 좌표 확보 및 근처 자원 확인 시도"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774418211.5518975} +{"step": 31, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "맵의 원점(0,0)으로 이동하여 자원 탐색 및 채굴 준비"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774418376.3684852} +{"step": 32, "action": {"action": "wait", "params": {"seconds": 1}, "reason": "게임 로딩 안정화 및 상태 갱신 대기"}, "success": true, "message": "1초 대기 완료", "timestamp": 1774418395.778815} +{"step": 33, "action": {"action": "mine_resource", "params": {"ore": "stone", "count": 5}, "reason": "현재 위치에 돌이 있을 경우 채굴하여 제련소 제작 시도. 없으면 실패하겠지만 위치 확인용"}, "success": false, "message": "실행 오류: could not convert string to float: ''", "timestamp": 1774418395.985176} +{"step": 34, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "초기 스폰 지점(0,0)으로 이동하여 자원 탐색 준비"}, "success": false, "message": "(0,0)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774418485.3684797} +{"step": 35, "action": {"action": "wait", "params": {"seconds": 1}, "reason": "상태 갱신 대기"}, "success": true, "message": "1초 대기 완료", "timestamp": 1774418586.4002311} +{"step": 36, "action": {"action": "move", "params": {"x": 50, "y": 50}, "reason": "임의의 위치로 이동하여 자원 패치 탐색"}, "success": false, "message": "(50,50)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774418633.2684767} +{"step": 37, "action": {"action": "move", "params": {"x": 10, "y": 10}, "reason": "현재 위치에서 근처로 이동하여 자원 탐색 시도"}, "success": false, "message": "(10,10)에 도달 못함 (시간 초과, 남은 거리: 99999)", "timestamp": 1774418744.651644} +{"step": 1, "action": {"action": "move", "params": {"x": 20, "y": 20}, "reason": "주변 지형을 탐색하여 자원 광맥을 찾기 위해 이동"}, "success": true, "message": "(20, 20)로 도착", "timestamp": 1774436597.435362} +{"step": 2, "action": {"action": "move", "params": {"x": 25, "y": 25}, "reason": "자원 패치를 찾기 위해 이동하여 시야 확보"}, "success": true, "message": "(25, 25)로 도착", "timestamp": 1774436659.384502} +{"step": 3, "action": {"action": "mine_resource", "params": {"ore": "stone", "count": 5}, "reason": "stone-furnace 제작에 필요한 기반 재료 확보"}, "success": false, "message": "근처에 stone 없음 — 자원 패치로 move 먼저", "timestamp": 1774436659.6530797} +{"step": 4, "action": {"action": "move", "params": {"x": 35, "y": 35}, "reason": "자원 탐색을 위해 현재 위치에서 떨어진 지점으로 이동"}, "success": true, "message": "(35, 35)로 도착", "timestamp": 1774436700.2356887} +{"step": 5, "action": {"action": "move", "params": {"x": 45, "y": 45}, "reason": "이전 구역에 자원이 없어 새로운 구역 탐색을 위해 이동"}, "success": false, "message": "(45,45) 이동 중 장애물에 막힘 (남은 거리: 4)", "timestamp": 1774436738.584099} +{"step": 6, "action": {"action": "move", "params": {"x": 46, "y": 46}, "reason": "장애물 피해가며 탐색 시도"}, "success": false, "message": "(46,46) 이동 중 장애물에 막힘 (남은 거리: 5)", "timestamp": 1774436764.9175665} +{"step": 7, "action": {"action": "move", "params": {"x": 50, "y": 40}, "reason": "장애물이 있는 (46,46) 방향을 피해 우측 상단 방향으로 이동하여 자원 탐색"}, "success": false, "message": "(50,40) 이동 중 장애물에 막힘 (남은 거리: 7)", "timestamp": 1774436788.6009731} +{"step": 8, "action": {"action": "move", "params": {"x": 15, "y": 35}, "reason": "동쪽이 막혔으므로 서쪽으로 이동하여 새로운 지역 탐색"}, "success": true, "message": "(15, 35)로 도착", "timestamp": 1774436826.3850791} +{"step": 9, "action": {"action": "mine_resource", "params": {"ore": "stone", "count": 5}, "reason": "이동한 위치에서 stone 자원이 있는지 확인 후 채굴 시도 (없을 시 탐색 피드백 활용)"}, "success": false, "message": "근처에 stone 없음 — 자원 패치로 move 먼저", "timestamp": 1774436826.651067} +{"step": 10, "action": {"action": "move", "params": {"x": 5, "y": 25}, "reason": "새로운 지역 탐색을 위해 이동"}, "success": true, "message": "(5, 25)로 도착", "timestamp": 1774436854.2343464} +{"step": 11, "action": {"action": "mine_resource", "params": {"ore": "stone", "count": 10}, "reason": "제련소 제작을 위해 stone 채굴 시도"}, "success": false, "message": "근처에 stone 없음 — 자원 패치로 move 먼저", "timestamp": 1774436854.5009618} +{"step": 12, "action": {"action": "move", "params": {"x": 10, "y": 20}, "reason": "현재 (5,25) 근처에 자원이 없어 인근 좌표(10,20)로 이동하여 자원 탐색 시도"}, "success": true, "message": "(10, 20)로 도착", "timestamp": 1774436876.1179383} +{"step": 13, "action": {"action": "move", "params": {"x": 20, "y": 20}, "reason": "이전 위치 (10, 20) 근처에 자원이 없어 새로운 구간인 (20, 20)으로 탐색 이동"}, "success": true, "message": "(20, 20)로 도착", "timestamp": 1774436914.1352172} +{"step": 14, "action": {"action": "mine_resource", "params": {"ore": "stone", "count": 5}, "reason": "제련소 제작을 위해 석재 5개 채굴 시도 (해당 위치에 없으면 다음 단계에서 이동)"}, "success": false, "message": "근처에 stone 없음 — 자원 패치로 move 먼저", "timestamp": 1774436914.4015982} +{"step": 15, "action": {"action": "move", "params": {"x": 30, "y": 30}, "reason": "자원이 없는 기존 구역을 벗어나 새로운 지역을 탐색하기 위해 이동"}, "success": true, "message": "(30, 30)로 도착", "timestamp": 1774436961.2677045} +{"step": 16, "action": {"action": "mine_resource", "params": {"ore": "stone", "count": 5}, "reason": "도착한 지점에서 Stone 자원이 있는지 확인하고 채굴하여 초기 제련소 건설 재료 확보"}, "success": false, "message": "근처에 stone 없음 — 자원 패치로 move 먼저", "timestamp": 1774436961.534328} +{"step": 17, "action": {"action": "move", "params": {"x": 35, "y": 35}, "reason": "자원이 없는 지역을 벗어나 새로운 구역 탐색"}, "success": true, "message": "(35, 35)로 도착", "timestamp": 1774436982.734539} +{"step": 18, "action": {"action": "move", "params": {"x": 20, "y": 20}, "reason": "이미 지나왔던 지점을 제외하고 다른 방향 탐색을 위해 서쪽으로 이동"}, "success": true, "message": "(20, 20)로 도착", "timestamp": 1774437002.8348992} +{"step": 19, "action": {"action": "mine_resource", "params": {"ore": "iron-ore", "count": 50}, "reason": "철광석 패치를 발견하면 제련 및 초기 기계 제작을 위해 넉넉하게 채굴"}, "success": false, "message": "근처에 iron-ore 없음 — 자원 패치로 move 먼저", "timestamp": 1774437003.1019325} +{"step": 1, "action": {"action": "move", "params": {"x": 50, "y": 50}, "reason": "자원을 찾기 위해 우측 하단 방향으로 탐색 이동"}, "success": false, "message": "(50,50) 이동 중 장애물에 막힘 (남은 거리: 11)", "timestamp": 1774437057.7680883} +{"step": 2, "action": {"action": "move", "params": {"x": 100, "y": 0}, "reason": "이전 이동 실패 좌표에서 벗어나 동쪽 방향으로 장거리 이동하여 자원 탐색"}, "success": false, "message": "(100,0) 이동 중 장애물에 막힘 (남은 거리: 70)", "timestamp": 1774437089.135179} +{"step": 3, "action": {"action": "move", "params": {"x": -200, "y": 0}, "reason": "동쪽 탐색 실패 후, 서쪽으로 장거리 이동하여 육지나 자원을 찾기 위함"}, "success": false, "message": "(-200,0) 이동 중 장애물에 막힘 (남은 거리: 4)", "timestamp": 1774437160.6009545} +{"step": 4, "action": {"action": "move", "params": {"x": 0, "y": 600}, "reason": "반경 500타일 내에 자원이 없어 더 멀리 떨어진 곳으로 이동해야 함. 북쪽 방향이 비교적 개방적일 것으로 판단됨."}, "success": false, "message": "(0,600) 이동 중 장애물에 막힘 (남은 거리: 593)", "timestamp": 1774437213.5008812} +{"step": 5, "action": {"action": "move", "params": {"x": -100, "y": -100}, "reason": "서쪽으로는 비교적 멀리 이동했으므로, 남서쪽 방향으로 우회하여 자원을 탐색"}, "success": true, "message": "(-100, -100)로 도착", "timestamp": 1774437284.0680652} +{"step": 1, "action": {"action": "move", "params": {"x": 550, "y": 0}, "reason": "반경 500타일 내에 자원이 없으므로, 동쪽으로 이동하여 자원을 찾기 위해 빈 구역을 벗어남"}, "success": false, "message": "(550,0) 이동 중 장애물에 막힘 (남은 거리: 466)", "timestamp": 1774437461.3510807} +{"step": 2, "action": {"action": "move", "params": {"x": 0, "y": 0}, "reason": "시작 지점(0,0)으로 복귀하여 위치를 초기화하고 주변을 재탐색"}, "success": true, "message": "(0, 0)로 도착", "timestamp": 1774437533.7178357} +{"step": 3, "action": {"action": "move", "params": {"x": 1000, "y": 1000}, "reason": "남동쪽 방향으로 장거리 이동하여 자원 탐색"}, "success": false, "message": "(1000,1000) 이동 중 장애물에 막힘 (남은 거리: 1354)", "timestamp": 1774437561.450848} +{"step": 1, "action": {"action": "move", "params": {"x": 800, "y": 0}, "reason": "주변 500타일 내에 자원이 없으므로, 동쪽으로 이동하여 자원 탐색 범위를 넓힙니다."}, "success": false, "message": "플레이어 캐릭터가 없습니다 (사망했거나 생성 전).", "timestamp": 1774437849.8178098} +{"step": 2, "action": {"action": "move", "params": {"x": 1000, "y": 0}, "reason": "반경 500타일 내 자원이 없으므로 탐색 범위를 벗어나기 위해 장거리 이동"}, "success": false, "message": "(1000,0) 이동 중 장애물에 막힘 (남은 거리: 612)", "timestamp": 1774438061.2343192} diff --git a/ai_planner.py b/ai_planner.py index c1cf4e9..51bd841 100644 --- a/ai_planner.py +++ b/ai_planner.py @@ -20,7 +20,7 @@ import urllib.error GLM_API_URL = "https://api.z.ai/api/coding/paas/v4/chat/completions" -GLM_MODEL = "GLM-4-7" +GLM_MODEL = "GLM-4.7" SYSTEM_PROMPT = """당신은 팩토리오 게임을 순수하게 플레이하는 AI 에이전트입니다.