← Publications
preprint2026

Staying In Character: Perspective-Bounded Memory For Book-Based Role-Playing Agents

Xushuo Tang#, Junhe Zhang#, Zihan Yang, Yifu Tang, Sichao Li, Longbin Lai, Zhengyi Yang

arXiv

RAIDS Lab Authors

Details

Year
2026
Venue

Research Area

Responsible Data Intelligence

Tags

Resources

Abstract

Recent LLM role-playing systems build character agents from novels by extracting characters, scenes, and relations. Yet long-narrative role-playing suffers from two failures: Factual Overreach, where shared retrieval or parametric memory lets a character use facts outside its perspective, and Stylistic Monotony, where profile descriptions flatten a character into a fixed voice. To address these failures, we propose REVERIEMEM, a three-layer memory architecture for book-based character agents. The episodic layer stores first-person scene memories; the semantic layer stores visibility-tagged facts; and the personality layer stores situation-dependent speech and behaviour patterns. For evaluation, we construct KBF-QA, a 4,386-question benchmark over eight novels for testing knowledge boundaries. REVERIEMEM improves Knowledge Boundary Fidelity by 34.6 percentage points over the strongest prior method. On BOOKWORLD's five-dimension pairwise narrative protocol, REVERIEMEM achieves an approximately 79% win rate, suggesting that perspective-bounded memory improves both boundary fidelity and character-grounded narrative generation.

Author Affiliations

Xushuo Tang
University of New South Wales
Junhe Zhang
University of New South Wales
Zihan Yang
Chang'an University
Yifu Tang
RAIDS Lab
Sichao Li
University of Sydney
Longbin Lai
Alibaba Group
Zhengyi Yang
University of Sydney

BibTeX

@misc{tang2026staying,
  title = {Staying In Character: Perspective-Bounded Memory For Book-Based Role-Playing Agents},
  author = {Xushuo Tang and Junhe Zhang and Zihan Yang and Yifu Tang and Sichao Li and Longbin Lai and Zhengyi Yang},
  year = {2026},
  eprint = {2606.25632},
  archivePrefix = {arXiv},
  primaryClass = {cs.CL},
  url = {https://arxiv.org/abs/2606.25632}
}