본문으로 건너뛰기

Pi와 LLM으로 조작하는 게임 에이전트

pigame은 게임을 정지한 채 LLM이 관찰과 한 칸 이동을 반복하도록 만든 Pi 기반 게임 에이전트입니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

pigame은 Raspberry Pi에서 실행되는 Pi CLI와 LLM을 Neon Snake 게임에 연결해 모델이 화면을 관찰하고 한 칸씩 이동하도록 만드는 게임 에이전트 MVP입니다. 일반 Snake의 자동 루프가 LLM의 긴 추론 중에도 진행되는 문제를 해결하기 위해 연결 후 게임을 멈추고, game_observe는 정지된 AgentState를 읽으며 game_move는 정확히 한 격자 칸만 처리합니다. 실제 경로는 /game connect 이후 LLM이 observe와 move를 반복하는 방식이고, npm run smoke:* 명령은 LLM 없이 고정 정책으로 Adapter와 Perception, I/O를 검사하는 별도 테스트 경로입니다. 기본 게임은 저장소에 포함된 pigame/games/snake.html이며 SNAKE_HTML로 원본 게임을 지정할 수 있고, 프로젝트는 Pi 설치용 npm 패키지로 패키징할 수 있습니다.

섹션별 상세

01
pigame은 Raspberry Pi와 LLM을 게임 에이전트의 두뇌로 결합하고, 게임 조작에 필요한 연결 계층만 제공하는 공개 프로젝트입니다. Pi와 LLM은 다음 행동을 결정하고 목표 달성 시점을 판단하며, game_observe와 game_move 같은 도구가 화면 관찰과 입력을 중계합니다. 첫 데모는 Neon Snake이며, 이 구조는 특정 게임 전략을 도구 안에 하드코딩하지 않고 모델의 관찰과 판단 루프에 맡기는 데 의미가 있습니다.
02
일반적인 Snake는 자체 gameLoop가 계속 실행되므로 LLM이 observe와 think를 수행하는 동안 뱀이 먼저 움직여 오래된 상태를 기준으로 행동하게 됩니다. pigame은 pigame/games/snake.html에 수정된 Agent Mode를 넣어 연결 후 자동 루프를 멈추고, game_observe에서는 시간이 흐르지 않게 하며 game_move마다 정확히 한 격자 칸만 이동시킵니다. MOVE_STEPS의 기본값은 1이므로 긴 추론 지연에도 모델이 읽은 상태와 실제 게임 상태를 맞추기 쉽습니다.
bash
HEADED=1 pi -e ./.pi/extensions/pigame.ts

Pi 확장을 실행하고 visible Chromium을 열어 LLM 주도 게임 세션을 시작합니다.

03
설치 과정은 저장소를 복제한 뒤 npm install --prefix pigame으로 의존성을 설치하고 npx --prefix pigame playwright install chromium으로 Chromium을 준비하는 방식입니다. Pi 확장을 실행하고 /game connect를 호출하면 Playwright가 기본 vendored Neon Snake를 열며, LLM은 game_observe로 player, food, score를 읽고 game_move로 방향을 선택하는 루프를 반복합니다. 목표 점수가 증가하면 모델이 이전 점수와 이후 점수를 보고하고 멈추도록 프롬프트나 /skill:eat-food를 사용할 수 있습니다.
text
Use only game_observe, game_move, and optionally game_wait.
Prefer groundTruth grid coords. Eat one food: observe → move → repeat.
When score increases, stop and report before/after score.
Do not reverse 180°.
Watch the Playwright Chromium window (snake freezes between moves).

LLM이 허용된 도구만 사용해 게임 상태를 읽고 한 칸씩 이동하도록 지정하는 프롬프트입니다.

04
프로젝트는 실제 LLM 경로와 테스트용 스캐폴딩을 분리합니다. npm run smoke:eat와 npm run smoke:survive 같은 명령은 Pi나 LLM을 사용하지 않고 eatFoodLoop와 surviveUntilEnd라는 고정 정책으로 Adapter, Perception, I/O를 검증하며, MAX_SCORE와 MAX_STEPS로 종료 조건을 조정합니다. 따라서 이 명령들은 에이전트의 지능을 평가하는 수단이 아니라 연결과 게임 입출력이 깨지지 않았는지 확인하는 CI 및 디버깅 경로입니다.
bash
npm run smoke:eat
npm run smoke:eat:headed
npm run smoke:survive:headed

Pi와 LLM 없이 고정 정책으로 음식 먹기와 생존 루프를 테스트합니다.

05
pigame은 기본 게임 파일을 패키지 안에 포함해 별도 게임 저장소를 복제하지 않아도 실행되게 구성했습니다. 원본 Mini Game Studio 게임을 비교하려는 경우에는 SNAKE_HTML로 외부 snake.html 경로를 지정할 수 있고, npm run pack:pi는 dist/pi-pigame 디렉터리와 dist/pigame-0.1.0.tgz를 만들어 Pi 설치 대상으로 제공합니다. 현재 상태는 Pi와 LLM이 observe, move를 이용해 Snake를 조작하는 MVP이며, 문서에는 향후 구현 단계가 별도로 기록되어 있습니다.

용어 해설

에이전트 모드(Agent Mode)
게임의 자동 진행을 멈추고 LLM이 관찰과 행동을 번갈아 수행하도록 만든 실행 방식입니다. pigame에서는 연결 직후 게임 월드를 정지하며, game_observe가 현재 상태를 읽고 game_move가 한 칸만 이동시킵니다. LLM의 사고 시간이 길어도 입력 시점과 실제 게임 상태가 어긋나지 않게 하는 데 중요합니다.
에이전트 상태(AgentState)
게임 화면에서 추출한 플레이어 위치, 음식 위치, 점수 같은 현재 월드 정보를 담는 상태 표현입니다. game_observe가 화면을 읽은 뒤 LLM이 다음 방향을 선택할 수 있는 형태로 반환합니다. 시각 입력과 게임 조작 사이의 공통 인터페이스 역할을 합니다.
Playwright
Chromium 브라우저를 코드로 실행하고 화면 입력과 상태 확인을 자동화하는 라이브러리입니다. pigame은 Playwright로 Neon Snake를 열고 키 입력, 스크린샷, 게임 상태 접근을 처리합니다. LLM이 직접 브라우저를 조작하지 않고 game_move 같은 도구를 통해 게임과 상호작용하게 만드는 기반입니다.
Pi CLI
LLM과 확장 기능을 연결해 명령과 도구를 실행하는 CLI 환경입니다. pigame 확장을 Pi에 로드하면 game_observe, game_move, game_wait 도구가 세션에 추가됩니다. 사용자는 /game connect로 게임을 연결한 뒤 Pi 안에서 LLM 주도 플레이를 시작합니다.
스모크 테스트(Smoke Test)
전체 시스템의 핵심 경로가 동작하는지 빠르게 확인하는 테스트 방식입니다. pigame의 npm run smoke:* 명령은 Pi나 LLM 없이 고정된 정책으로 Adapter, Perception, I/O와 게임 루프를 검사합니다. 실제 에이전트 설계가 아니라 CI와 디버깅을 위한 테스트 스캐폴딩입니다.

기술

  • Raspberry Pi
  • LLM
  • DeepSeek
  • Node.js
  • npm
  • Pi CLI
  • Playwright
  • Chromium
  • TypeScript
  • WSLg

활용 사례

  • LLM이 Neon Snake의 다음 이동을 결정하는 게임 에이전트 실험
  • game_observe와 game_move를 이용한 관찰·행동 도구 루프 검증
  • Playwright 기반 게임 Adapter, Perception, I/O의 CI 테스트
  • Pi npm extension으로 게임 에이전트를 다른 환경에 설치
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 21.수집 2026. 08. 21.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.