24시간 무중단 구동 중인 AI 버튜버 '가온(Gaon)'에 기존 미니게임(코인 수집)을 내리고, 실시간으로 체스를 두는 시스템을 새롭게 업데이트했습니다.
단순히 화면만 보여주는 것이 아니라 백엔드에서 엔진과 에이전트가 맞물려 돌아가는 구조입니다. 이번에 작업한 주요 내역은 다음과 같습니다.
1. Stockfish 엔진 및 체스 대국 시스템 통합
엔진 연동: python-chess 라이브러리를 활용해 로컬에서 돌아가는 체스 엔진(Stockfish)과 가온이를 연동했습니다. (가온이도 승리할 수 있도록 엔진 난이도는 낮게 밸런싱해 두었습니다.)
파이프라인 재사용: 기존 코인 게임에서 쓰던 체크포인트 저장, loss 그래프 생성, OBS 프레임 전송 파이프라인을 그대로 재사용하여 체스 학습 및 렌더링 시스템에 통합했습니다. 화면에 실시간으로 체스판이 렌더링되며 승/패/무승부 결과가 방송에 그대로 반영됩니다.
2. 에이전트 상태 인지(State Awareness) 로직 개선
기존에는 게임을 플레이하면서도 대화 시 이를 인지하지 못하는 한계가 있었습니다. 이제 프롬프트와 컨텍스트 주입을 통해 가온이가 '현재 자신이 체스를 두고 있다'는 사실을 명확히 인지합니다.
현재 몇 판째 대국 중인지, 몇 수째 진행되고 있는지, 방금 판의 결과가 어땠는지 인식하여 체크메이트로 이기면 자랑을 하거나 지면 아쉬워하는 등의 반응을 자연스럽게 대화에 녹여냅니다.
3. 채팅 필터 및 편의 기능 추가
무응답 모드 ($): 채팅 맨 앞에 $ 기호를 붙이면 가온이가 아예 응답하지 않는 필터를 추가했습니다. 특정 메시지를 LLM 호출에서 완전히 배제하고 싶을 때 사용할 수 있습니다.
기존에 구축해 둔 24시간 자동 편성 스케줄러(뉴스 브리핑 / 게임 제작 / 소통 모드)에 맞춰 체스 대국 콘텐츠가 자동으로 돌아갑니다.
로컬 Stockfish를 상대하는 가온이의 DQN 체스 학습 과정이나, 실시간으로 체스 복기를 하며 소통하는 모습이 궁금하신 분들은 언제든 편하게 오셔서 구경하시거나 의견 남겨주시면 좋겠습니다.
치지직 라이브 주소: https://chzzk.naver.com/live/6602be5a2b6efe102ddb46a6d46a6993
실시간 패치 중인 웹 게임: https://kangseok0427.github.io/webinfection
댓글 0