AgenticSTS - A Bounded-Memory Testbed for Long-Horizon LLM Agents
X. Cheng, Y. Jiang, J. Sun, Z. Li, C. Li, X. Cao, Y. Liu, F. Zhang, L. Jin, and K. Zhang, "AgenticSTS: A Bounded-Memory Testbed for Long-Horizon LLM Agents," arXiv:2607.02255, 2026.
저자
1저자 Xiangchen Cheng은 Alaya Lab과 Shanghai Jiao Tong University 소속이며, 교신저자 Kaipeng Zhang은 Shanda AI Research Tokyo(Alaya Lab)의 수석연구원입니다. 공저자 다수가 Alaya Lab, 상하이교통대, Shanghai Innovation Institute, 난카이대, USTC에 분산돼 있습니다.
Alaya Lab은 Shanda AI Research Tokyo 산하 게임 에이전트 연구 조직입니다. Kaipeng Zhang은 상하이 AI 연구소(2022-2025)에서 멀티모달 LLM을 연구했고, Shanda 이적 후에는 게임용 월드 모델(WildWorld, PackForcing) 구축에 주력하고 있습니다. AgenticSTS는 그 연장선에서, 게임 환경을 에이전트 메모리 측정 실험 공간으로 전환하는 시도입니다.
배경
LLM 에이전트 루프에서 메모리 정책은 대부분 "얼마나 많은 히스토리를 프롬프트에 붙이는가"로 구현됩니다. ReAct, Reflexion 이후 가장 흔한 방식은 앞선 결정의 관찰, 도구 호출, 자기비판을 그대로 이어 붙이는 누적 트랜스크립트입니다.
이 방식에는 두 가지 문제가 있습니다. 첫째, 토큰 비용이 결정 수 \(d\)에 비례해 최악의 경우 \(\Omega(d \cdot \bar{s})\)로 자랍니다. 장기 게임 런에서는 후반부 호출 시점에 수십만 토큰이 쌓입니다. 둘째, 어느 기억 층이 결정을 바꾸는지 추적하기 어렵습니다. 누적 트랜스크립트는 단일 덩어리라 레이어별로 켜고 끄거나 게이트를 달기가 어렵습니다.
저자들은 이 두 문제를 "bounded, typed, ablatable memory contract"로 동시에 해결하려 합니다. 메모리를 타입별 슬롯으로 분리하면 컨텍스트 성장을 결정 수와 무관한 상한으로 묶을 수 있고, 레이어를 독립 토글해 어느 층이 효과를 내는지 격리할 수 있습니다.
테스트베드
Slay the Spire 2는 턴 기반 덱빌딩 로그라이크입니다. 저자들이 이 게임을 선택한 이유는 네 가지 성질을 충족하기 때문입니다.
닫히고 열거 가능한 규칙 공간이 첫 번째입니다. 576장 카드, 293개 렐릭, 115종 몬스터가 텍스트 데이터베이스(Spire Codex)로 공개돼 있어 규칙 전체를 메모리 레이어에 로드할 수 있습니다. 픽셀 렌더링 기반인 Crafter나 상속 코드 복잡도가 높은 NetHack과 달리, 규칙을 평가 기반 자체로 포함시킬 수 있습니다.
경험적으로 긴 호라이즌이 두 번째입니다. 한 런의 중앙값 실행 시간은 약 80분, 전략적 LLM 호출은 중앙값 67회(IQR 27-105회)입니다. 여기에 전투 내 기계적 결정까지 합치면 런당 약 500회 이상의 결정이 발생합니다.
다축 확률성이 세 번째입니다. 카드 드로우, 보상 제안, 맵 경로, 렐릭 효과가 무작위라 고정 경로 암기는 통하지 않습니다. 네 번째는 상태 조건부 전투 계산입니다. 피해량은 현재 핸드, 적의 의도, 블록 타이밍을 현재 상태에서 계산해야 합니다.
난이도 기준으로, AGI-Eval이 5개 프런티어 모델 설정에서 테스트한 결과 A0 승리가 0건이었고, 개발사 Mega Crit의 커뮤니티 데이터(2억 4천만 런)에서 사람의 A0 승률은 16%입니다. 포화되지 않은 어려운 테스트베드라는 근거입니다.
메모리 계약
AgenticSTS는 매 결정 \(d\)마다 다섯 슬롯에서 새로 조합한 유저 메시지 \(u_d\)를 LLM에 보냅니다.
\[u_d = \pi\!\bigl(L_1,\, L_2(s_d),\, L_3(s_d),\, L_4(s_d),\, L_5(s_d)\bigr)\]
원시 크로스-결정 트랜스크립트는 이어 붙이지 않습니다. 상한이 있는 top-k 검색과 슬롯 크기 캡이 설정돼 있어 프롬프트 크기는 \(O\!\bigl(|sys| + s_{thread} + \sum_i k_i \cdot s_i\bigr)\)로 결정 수와 무관합니다.
레이어 |
저장소 |
키 |
쓰기 |
절제 |
|---|---|---|---|---|
L1 |
protocol |
상태 유형 |
고정 |
항상 포함 |
L2 |
schema |
결정 유형 |
고정 |
항상 포함 |
L3 |
rules |
엔티티 |
패치 시 갱신 |
필터 |
L4 |
episodes |
char/A/act |
런 종료 후 |
켜기/끄기 |
L5 |
skills |
트리거 조건 |
게이트 통과 시 |
켜기/A/B |
L4는 캐릭터 × 난이도 × 막 × 적 클래스별 사후 요약 저장소입니다. L5는 트리거 조건이 붙은 산문 전술 가이드 라이브러리로, 각 가이드에는 명시적 트리거, 정책 텍스트, 4단계 쓰기 게이트(코사인 유사도, Jaccard, LLM 심판, 선택적 reap)가 달려 있습니다. 후보 대부분은 기각되거나 기존 가이드에 병합됩니다.
L5를 채우는 방식은 두 가지입니다. Mode A는 사람이 직접 작성한 시드 라이브러리이고, Mode B는 5개의 캐릭터-파라메트릭 템플릿(전투, 보스, 덱빌딩, 맵, 중간 결정)을 LLM이 채우는 자동화 방식입니다. 스킬 레이어의 존재가 결과를 바꾸는지, 아니면 산문의 출처가 중요한지를 분리해 테스트합니다.
결정 라우팅도 계층화했습니다. 전략 결정, 전투 계획, 사후 추출, 스킬 증류 각각에 별도 모델 티어를 배정해 런당 전략적 LLM 호출을 중앙값 67회로 유지합니다.
결과
점수 공식은 다음과 같습니다.
\[s = \begin{cases} 100 & \text{if victory,} \\ \text{floor} + \tfrac{52}{3} \cdot \text{bosses} & \text{otherwise} \end{cases}\]
\(\text{bosses}\)는 클리어한 막 보스 수(0/1/2, 승리 시 3)이며, 세 보스 클리어를 52점으로 보정합니다. 승률 주장은 이 스케일에 의존하지 않습니다.
고정 A0 절제 실험
L4/L5 스토어를 SHA 1888a62 스냅샷으로 동결하고 5가지 조건을 각 10게임씩, 총 50게임 균형 비교했습니다.
조건 |
L5 |
L4 |
승/패 |
점수 |
|---|---|---|---|---|
baseline-strict |
없음 |
없음 |
3/10 |
70.4 |
prompt-only |
없음 |
없음 |
4/10 |
69.6 |
mode-a (hand skills) |
A |
없음 |
6/10 |
85.5 |
mode-b (template skills) |
B |
없음 |
6/10 |
83.3 |
full-frozen (skills+episodes) |
A |
있음 |
6/10 |
82.1 |
가장 큰 분리는 스캐폴딩 유무 간에 나타납니다. 레이어 기여분을 \(\Delta_{L_\ell} = \hat{p}_{\text{with-}\ell} - \hat{p}_{\text{without-}\ell}\)으로 쓰면, \(\Delta_{\text{prompt}} = +1/10\), \(\Delta_{L5} = +2/10\)입니다.
다만 이 차이는 통계적으로 유의하지 않습니다. 3/10 대 6/10의 Fisher 정확 검정 \(p \approx 0.37\), 스캐폴딩/비스캐폴딩 풀링(18/30 대 7/20)도 \(p \approx 0.148\)이며 Wilson 95% 구간이 겹칩니다. 저자들은 이를 명시적으로 "방향성 결과, 통계적 유의성 주장 아님"으로 기술합니다.
Mode B(템플릿 채우기)가 Mode A(사람 작성)와 동등한 6/10을 냈습니다(점수 차이 95% CI: \([-18.6, +24.8]\)). 스킬 레이어의 존재가 중요하지, 산문의 출처가 결과를 가르지는 않습니다.
L4 에피소딕 메모리는 A0 난이도에서 포화 상태입니다. mode-a와 full-frozen의 점수 차이 95% CI가 \([-21.7, +14.9]\)로 겹칩니다. L4는 더 높은 난이도(\(A_6\)-\(A_8\)) 레더 스트림에서 역할을 담당합니다.
백본 이전성
Gemini 3.1-Pro로 만든 L4+L5 스택을 다른 백본에 이식했습니다(\(N=5\)/셀).
백본 |
승(기준 → 스택) |
점수 변화 |
|---|---|---|
Qwen 3.6-27B |
0/5 → 0/5 |
*+84.5%* |
DeepSeek V4-Pro |
0/5 → 0/5 |
-18.1% |
Gemini 3.1-Pro |
3/10 → 6/10 |
+16.6% |
Qwen에서는 점수가 오르지만 DeepSeek에서는 오히려 떨어집니다. 동결된 스킬 스택은 원래 훈련 백본에 의존적이라는 점이 실험적으로 확인됩니다.
오픈소스 에이전트 비교
같은 기계, 같은 게임 버전, 같은 캐릭터(Silent), 같은 백본(Gemini 3.1-Pro)에서 누적 트랜스크립트 방식 오픈소스 에이전트 두 개(STS2MCP, CharTyr)와 비교했습니다. 이는 통제된 절제 실험이 아니라 현업 에이전트 수준 비교입니다.
에이전트 |
승/패 |
평균 점수 |
floor당 분 |
점수당 토큰 |
|---|---|---|---|---|
Ours full-frozen |
6/10 |
82.1 |
2.3분 |
*~6,400* |
Ours baseline |
3/10 |
70.4 |
2.4분 |
~6,700 |
STS2MCP |
0/5 |
21.1 |
9.9분 |
~422,300 |
CharTyr |
0/5 |
5.6 |
8.5분 |
~570,700 |
누적 트랜스크립트 에이전트들은 A0 승리를 하나도 내지 못했으며, floor당 벽시계 시간이 약 4배, 점수당 신선 토큰 사용량이 66-90배 높습니다. 한 STS2MCP 런은 결정 1,100번 시점에 호출당 프롬프트가 약 500k 토큰에 달했습니다. bounded contract의 전략적 유저 메시지는 런 길이에 무관하게 중앙값 ~5k 토큰을 유지합니다.
저자들은 이 비교가 "누적 컨텍스트는 이길 수 없다"는 뜻이 아님을 명시합니다. STS2MCP와 CharTyr은 커뮤니티 프로젝트이고, CharTyr의 패배 일부는 인터페이스 오류에서 비롯됩니다. 같은 코드베이스에서 누적 컨텍스트 셀을 추가하는 직접 대조 실험은 후속 과제로 남겼습니다.
회고
저자들이 직접 기술한 한계입니다.
샘플 크기입니다. 고정 A0 주요 결과는 조건당 10게임, 총 50게임입니다. 최근 LLM 에이전트 게임 벤치마크의 전형적인 수준(Voyager 3회/셀, BALROG 10-25회/태스크)과 같거나 높지만, 스캐폴딩 변종들 사이의 세부 등가성 검정이나 smooth 백본 이전 곡선을 도출하기에는 부족합니다.
같은 코드베이스 누적 컨텍스트 대조가 없습니다. 가장 깨끗한 직접 비교는 같은 코드베이스에 누적 컨텍스트 셀 하나를 추가하는 것입니다. 아카이브에 조건 태그, 프롬프트 레코드, 분석 스크립트가 포함돼 있어 이 실험을 후속 작업으로 실행할 수 있도록 구성됐습니다.
단일 캐릭터입니다. 현재 결과는 Silent 캐릭터만 다룹니다. 다른 캐릭터로 확장하려면 L3/L4/L5 스토어를 새로 구성해야 합니다.
정리
- LLM 에이전트 메모리를 5층 타입 슬롯으로 분리하면 컨텍스트 성장을 런 길이와 무관한 상한으로 묶고, 레이어를 독립 토글해 어느 층이 결정을 바꾸는지 격리할 수 있습니다.
- Slay the Spire 2 A0에서 L5 스킬 레이어 활성화 시 승률이 3/10에서 6/10으로 상승했습니다. 방향성 결과이며 통계적으로 유의하지는 않습니다(\(p \approx 0.37\), \(N=10\)).
- 298개 궤적, 동결 L4/L5 스냅샷, 분석 스크립트가 공개됐습니다. 같은 코드베이스에서 누적 컨텍스트 셀을 추가하는 대조 실험이 남은 핵심 과제입니다.