refs #737: move game query planning into ADB MCP tool

This commit is contained in:
devmrko
2026-07-27 16:39:58 +09:00
parent 5a3b03060d
commit 8298ecb511
6 changed files with 263 additions and 288 deletions

View File

@@ -50,10 +50,13 @@ Smilegate view는 전체 게임 마스터와 alias를 기준으로 하고, 현
- ADB Chat이 반환한 `game_mentions`의 각 항목은 서로 독립적으로 판정한다. 벡터 검색 결과를
하나의 목록으로 합쳐 모든 후보를 지원 게임으로 취급하지 않는다.
- 벡터 검색은 후보를 찾는 단계다. 후보의 카탈로그 명칭, 별칭, `GAME_ID`, `GAME_PREFIX`
추출 명칭과 정규화 매칭되는 항목만 `supportedGames`에 넣는다.
- 추출 명칭과 매칭되는 카탈로그 항목이 없으면 해당 원문 명칭을 `unmatchedGames`에 남긴다.
유사도 순위가 높다는 이유만으로 다른 게임에 대입하지 않는다.
- 벡터 검색은 후보를 찾는 단계다. ADB OCI GenAI가 추출 명칭과 후보의 카탈로그 명칭,
별칭, `GAME_ID`, `GAME_PREFIX`를 비교해 후보 중 하나를 선택하거나 전체를 거절한다.
- 애플리케이션은 모델이 반환한 `gameKey`가 실제 후보 목록에 있을 때만
`supportedGames`에 넣는다. 후보 목록에 없는 식별자는 거절한다.
- 모델이 모든 후보를 거절하면 해당 원문 명칭을 `unmatchedGames`에 남긴다. 유사도 순위가
높다는 이유만으로 다른 게임에 대입하지 않는다.
- 게임 판정에 정규식, 부분문자열 매칭, 유사도 임계값을 사용하지 않는다.
- 동일 게임이 여러 명칭으로 검색되더라도 `supportedGames``gameKey` 기준으로 중복을
제거한다. `matchedGames``unmatchedGames`에는 mention별 판정 근거를 유지한다.
- 일부만 지원되는 복수 게임 질문은 `status=PARTIAL`로 반환하고, 지원 게임의 worker 실행과