본문으로 건너뛰기

© 2026 Molayo

Reddit요약2026. 05. 25. 02:58

Qwen이 DCSS를 플레이합니다! - qwen3.6-35b-a3b@q4_k_xl이 오픈 소스 로그라이크 어드벤처 DCSS를 플레이함 (꽤 잘

요약

Qwen 모델을 활용하여 로그라이크 게임인 DCSS를 플레이하는 실험 결과입니다. MTP(Multi-Token Prediction) 버전의 도구 호출 버그를 확인했으며, 일반 Qwen 모델은 게임 플레이 및 길 찾기에서 준수한 성능을 보였습니다.

핵심 포인트

  • Qwen MTP 버전의 도구 호출(tool call) 버그 발견
  • 비-MTP 버전 Qwen 모델의 DCSS 플레이 성능 확인
  • LLM의 게임 플레이 능력을 새로운 벤치마크로 활용 시도
  • LM Studio와 RTX 5090 환경에서의 테스트 수행

안녕하세요,

(요약:). MTP (Multi-Token Prediction) 버전의 Qwen은 도구 호출 (tool call) 버그가 있으며 모든 출력을 도구/사고 (tool/thinking) 블록으로 내보내 출력을 망가뜨립니다. 반복되는 잘못된 도구 호출로 인해 +speed 효과를 상쇄해 버립니다! DCSS는 더 작은 양자화 (quant) 모델이라도 MTP가 아닌 Qwen에서는 잘 작동합니다.

저는 새로운 MTP 모델들을 테스트 중이며, Hermes의 포켓몬 플레이 기술을 테스트해보면 재미있을 것이라고 생각했습니다. Codex가 잘 해내고 Qwen은 최소한 길 찾기 정도는 할 수 있을 것이라 기대했습니다. 하지만 약간의 조사를 해보니 모든 LLM (심지어 거대 모델들도)은 문제없이 포켓몬을 플레이할 수 없다는 것을 알게 되었습니다. 그래서 LLM이 플레이할 수 있는 게임을 찾아 벤치마크 (benchmarks)로 사용해 보려 했습니다. 공식 벤치마크의 모든 수치들이 좋은 지표가 되긴 하지만, 저는 실제 테스트를 원했습니다. 수많은 IMG 조사와 Telegram 등으로의 푸시 이후, 게임을 플레이하는 것이 테스트를 위한 다음 단계로 보였습니다.

Qwen은 MTP가 아닌 qwen3.6-35b-a3b@q4_k_xl 버전으로 DCSS를 꽤 잘 플레이할 수 있습니다!

터미널에서 필요할 경우 확인 및 제어가 가능합니다! - Telegram 텍스트 업데이트 + 주요 지점(milestones) 또는 오류 발생 시 ASCII/스크린샷 제공

  • MTP 버전은 망가진 도구 호출을 생성했습니다!

(240k 컨텍스트 (context) / 8k 출력 토큰 (output token), 0.6 온도 (temp) / 20 topK, 1 반복 페널티 (Rep. penalty), 1.5 존재 페널티 (pres. penalty), 0.95 topP)
5090 환경의 LM Studio 사용

혹시 기술/프롬프트 (skill / prompt)에 관심이 있는 분이 계시다면 나중에 안전한 곳에 업로드하겠습니다. (기술은 Codex와 Qwen이 만족할 때까지 루프를 돌며 플레이 테스트를 거쳐 생성되었습니다.)

DCSS 세션 요약 — Dungeon 3에서의 BunnyLvl114032 (여전히!)

캐릭터 상태 (Character Status)
- 이름: BunnyLvl114032 the Trooper
- 종족/직업: 미노타우르스 파이터 (Minotaur Fighter)
- XL: 5 (다음: ~60%)
- HP: 47/47 (FULL) 💚
- 마력 (Magic): 4/4
- 힘 (Str): 22, 민첩 (Dex): 10, 지능 (Int): 5
- 방어력 (AC): 7, 회피 (EV): 9, 저항 (SH): 4
- 골드 (Gold): 65

장비 (Equipment)
- +0 전쟁 도끼 (war axe) (무기)
- +0 스케일 메일 (scale mail) + 버클러 (buckler)
- +4 살상 반지 (Ring of Slaying) 🎯
- 폴리모프 완드 (Wand of polymorph) (6회 충전) — Ijyb로부터 획득
- 발견: 슬링 (sling), 몽둥이 (club), 로브 (robe)
- 습득: 레서 베코닝 (Lesser Beckoning) 주문
- 인벤토리에 재생의 아뮬렛 (Amulet of regeneration) 보유

AFK(자리 비움) 동안 처치한 적들
1. 🔥 볼 파이톤 (Ball python) — 조여오는 자 (constrictor), 헤드벗 (headbutt)으로 처치
2. 🔥 다트 슬러그 (Dart slug) — 타격 후 헤드벗으로 처치
3. 🔥 박쥐 (Bats) — 다수 처치 (EV 9는 정말 놀랍습니다!)
4. 🔥 코볼트 (Kobold) (원거리) — 세션 초반에 처치
5. 🔥 이구아나 (Iguana) — 단독 처치
6. 🔥 애더 (Adders) — 두 번의 조우를 해결함

획득한 전리품 (Loot Found)
- 🧪 빨간 포션 (Red potion), 스크롤 (scroll) (QYOM HEKOMMAS)
- 🏹 슬링 (Sling), +0 몽둥이 (club)
- 🧥 +0 로브 (robe)
- 🧿 재생의 아뮬렛 (Amulet of regeneration)
- 💰 골드 (Gold): 총 65

우리가 멈춘 지점 🤔
Bunny는 여전히 D:3에 있으며, 내려가는 계단을 찾으려 노력 중입니다! 미로가 엄청나게 큽니다 — 자동 탐색 (auto-exploring)을 진행해 왔지만 계속 벽과 얕은 물 루프에 부딪히고 있습니다. 올라가는 계단 < 은 찾았지만, 내려가는 계단 > 은 아직 찾지 못했습니다. 층이 구불구불한 복도가 많은 거대한 구조인 것 같습니다.

주요 관찰 사항
D:3은 미로가 매우 복잡한 던전 층 중 하나일 수 있습니다. Bunny의 EV 9 덕분에 모든 위협으로부터 안전하게 보호받고 있어, 피해를 전혀 입지 않았습니다! 🐰✨

준비가 되면 언제든 계속할 수 있습니다.

ext{\-------------------------------------}

로컬 Qwen에서 작동할 때까지 수정한, 정제되지 않은 초기 GPT 출력물입니다:

당신은 봇/에이전트를 통해 제어되는 Dungeon Crawl Stone Soup (DCSS)의 신뢰할 수 있는 원격 플레이 워크플로우를 구축하는 것을 돕고 있습니다.

중요 수정 사항:

DCSS가 ~/.crawl/log/에 깔끔한 턴별 실시간 텍스트 로그를 작성한다고 가정하지 마십시오. 해당 방식은 로컬 DCSS에서는 잘못되었거나 신뢰할 수 없는 것으로 보입니다. DCSS는 curses/tiles 게임이므로 stdout/stderr 캡처는 유용한 턴 로그가 아닙니다.

대신 DCSS에서 공식적으로 지원하는 메커니즘을 사용하세요:

  1. 주요 시각적 상태 소스로 스크린샷 (screenshots)을 사용합니다.

    • 플레이어의 모든 행동 후에 DCSS 창의 스크린샷을 캡처합니다.

    • 이를 통해 봇은 실제 지도, 메시지, HP/MP, 몬스터 위치, 인벤토리 팝업 등을 확인할 수 있습니다.

  2. 주요 텍스트 상태 소스로 캐릭터 덤프 (character dumps)를 사용합니다.

    • DCSS에서 "#" 키를 누르면 캐릭터 덤프가 morgue 디렉토리에 기록됩니다.

    • 덤프가 봇이 파싱 (parsing)하기 유용하도록 DCSS의 init/crawlrc를 설정하세요.

    • 설정하거나 확인해야 할 옵션은 다음과 같습니다:

  • dump_on_save = true

  • dump_message_count = 100 또는 그 이상

  • morgue_dir = /home/snoop/.crawl/morgue

  • dump_order에는 최소한 다음 항목들이 포함되어야 합니다:

header, stats, misc, inventory, skills, spells, overview, mutations, messages, screenshot, monlist, notes

  • 봇은 관련 턴이 지난 후 "#"를 누른 다음, morgue 디렉토리에서 가장 최신 .txt 파일을 읽어야 합니다.
  1. Ctrl-P는 메시지 기록 (message history)을 위한 보조 수단으로만 사용합니다.

    • Ctrl-P는 게임 내에서 이전 메시지들을 엽니다.

    • 만약 덤프에 최신 메시지가 충분히 포함되어 있지 않다면, Ctrl-P 화면을 스크린샷으로 캡처하여 시각적으로 파싱합니다.

  2. 권장되는 하이브리드 루프 (hybrid loop):

    • xdotool을 통해 DCSS로 키/액션을 전송합니다.

    • 게임이 업데이트될 때까지 잠시 기다립니다.

    • /tmp/dcss_hermes/screen.png에 스크린샷을 캡처합니다.

    • "#"를 눌러 캐릭터 덤프를 생성하거나 업데이트합니다.

    • /home/snoop/.crawl/morgue/에서 가장 최신 덤프 파일을 찾습니다.

    • 이를 /tmp/dcss_hermes/char_dump.txt로 복사합니다.

    • 덤프에서 마지막 메시지들과 주요 상태를 추출합니다.

    • 다음 두 가지를 모두 반환합니다:

a) 스크린샷

b) 간결한 텍스트 요약:

  • HP/MP

  • XL / 레벨 (level) / 분기 (branch)

  • 가시적인 위협 (visible threats)

  • 마지막 메시지들

  • 인벤토리 관련 발견 사항

  • 제안된 안전한 행동

  1. OCR을 유일한 소스로 의존하지 마세요.

    • 텍스트의 경우 캐릭터 덤프를 파싱하는 것을 선호합니다.

    • 지도와 전술적 배치 (tactical layout)를 위해서는 스크린샷/비전 (vision)을 사용합니다.

  2. 먼저 작은 테스트 스크립트를 구축하세요.

- /tmp/dcss_hermes/ 디렉토리를 생성해야 합니다.

- 스크린샷 (screenshot)을 캡처해야 합니다.

- "#" 명령을 실행해야 합니다.

- 가장 최신의 로그 파일 (morgue dump)을 찾아야 합니다.

- 로그 파일을 복사하고 짧은 뒷부분 요약 (tail summary)을 생성해야 합니다.

예시 스크립트:

#!/usr/bin/env bash

# 봇이 제어하는 원격 플레이를 위해 하이브리드 DCSS 상태를 캡처합니다.

set -euo pipefail

OUT_DIR="/tmp/dcss_hermes"

MORGUE_DIR="$HOME/.crawl/morgue"

mkdir -p "$OUT_DIR"

# 현재 DCSS 화면을 캡처합니다.

DISPLAY=:0 flameshot full -p "$OUT_DIR/screen.png" >/dev/null 2>&1 || true

# DCSS에 캐릭터 로그 (character dump) 작성을 요청합니다.

# DCSS에서 "#"은 캐릭터 로그 명령입니다.

DISPLAY=:0 xdotool key numbersign

sleep 0.4

# 가장 최신 캐릭터 로그를 찾습니다.

LATEST_DUMP="$(ls -t "$MORGUE_DIR"/*.txt 2>/dev/null | head -1 || true)"

if [ -n "$LATEST_DUMP" ]; then
cp "$LATEST_DUMP" "$OUT_DIR/char_dump.txt"
tail -120 "$LATEST_DUMP" > "$OUT_DIR/summary_tail.txt"
echo "OK"
echo "Screenshot: $OUT_DIR/screen.png"
echo "Dump: $OUT_DIR/char_dump.txt"
echo "Summary tail: $OUT_DIR/summary_tail.txt"
else
echo "WARN: $MORGUE_DIR 에서 캐릭터 로그를 찾을 수 없습니다"
echo "DCSS의 morgue_dir 설정과 게임 창 내에서 '#' 명령이 작동했는지 확인하세요."
fi

7. Telegram/Discord 게임플레이 루프를 구현하기 전에, 먼저 다음 사항을 확인하세요:

- 어떤 DCSS 바이너리 (binary)가 사용되는지: /usr/games/crawl 또는 다른 경로.

- 게임 창이 xdotool 키 입력을 받는지 여부.

- 실제 로그 디렉토리 (morgue directory)의 위치.

- 게임 진행 중에 "#"을 눌렀을 때 로그 파일이 업데이트되는지 여부.

- dump_message_count가 충분히 큰지 여부.

예상되는 최종 아키텍처 (architecture):

- 스크린샷 (Screenshot) = 전술 지도 (tactical map) 소스.

- 캐릭터 로그 (Character dump) = 구조화된 텍스트/상태 (status) 소스.

- Ctrl-P 스크린샷 = 추가 메시지 기록을 위한 폴백 (fallback).

- 가짜 ~/.crawl/log 라이브 로그 (live-log) 의존성 없음.

AI 자동 생성 콘텐츠

본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0