feat: add action validation and sanitization in AIPlanner to ensure only allowed actions are processed

This commit is contained in:
21in7
2026-03-27 20:14:52 +09:00
parent 8e743d12e7
commit 66f3a327e8
3 changed files with 128 additions and 7 deletions

View File

@@ -51,6 +51,24 @@
---
## 2026-03-27 LM Studio 비JSON/잘못된 action 방어 계획
### 문제 요약
- LM Studio가 reasoning 텍스트를 길게 반환하면, JSON 복구가 불완전해 임의 객체가 계획으로 채택될 수 있음.
- 그 결과 executor에서 `알 수 없는 행동` 실패가 발생해 루프가 생김.
### 구현 계획
1. 응답 텍스트에서 `{...}` 후보를 모두 스캔해 `actions`를 포함한 계획 객체만 채택한다.
2. 액션명을 화이트리스트로 검증해 지원되지 않는 action은 제거한다.
3. 유효 액션이 0개면 LLM 결과를 버리고 즉시 상태 기반 휴리스틱 폴백으로 전환한다.
4. README에 “유효 계획 검증 후 채택” 동작을 반영한다.
### 검증 계획
- `python -m py_compile ai_planner.py`
- 런타임 로그에서 `알 수 없는 행동` 반복이 사라지는지 확인
---
## 채굴 시 mining_state 반복 설정 제거 (우클릭 유지)
### 문제