IBSEN: Director-Actor Agent Collaboration for Controllable and Interactive Drama Script Generation

Senyu Han, Lu Chen, Li-Min Lin, Zhengshan Xu, Kai Yu
7/1/2024
cs.CLcs.AIcs.MA

Official code: OpenDFM/ibsen (55 stars, MIT, last commit 2025-07-05).

Abstract

Large language models have demonstrated their capabilities in storyline creation and human-like character role-playing. Current language model agents mainly focus on reasonable behaviors from the level of individuals, and their behaviors might be hard to constraint on the level of the whole storyline. In this paper we introduce IBSEN, a director-actor coordinate agent framework that generates drama scripts and makes the plot played by agents more controllable. The director agent writes plot outlines that the user desires to see, instructs the actor agents to role-play their characters, and reschedules the plot when human players participate in the scenario to ensure the plot is progressing towards the objective. To evaluate the framework, we create a novel drama plot that involves several actor agents and check the interactions between them under the instruction of the director agent. Evaluation results show that our framework could generate complete, diverse drama scripts from only a rough outline of plot objectives, meanwhile maintaining the characteristics of characters in the drama. Our codes and prompts are available at https://github.com/OpenDFM/ibsen.

View on arXivView PDF

Code Implementations(1)

OpenDFM/ibsenOfficial100%
MIT

[ACL 2024] Official code for "IBSEN: Director-Actor Agent Collaboration for Controllable and Interactive Drama Script Generation" (TheatreMaker)

553PythonApr 1, 20241 years agoMIT
dramagenerative-agentslarge-language-modelsmulti-agent-systems

Cite this paper

@article{han2024ibsen,
  title  = {IBSEN: Director-Actor Agent Collaboration for Controllable and Interactive Drama Script Generation},
  author = {Senyu Han and Lu Chen and Li-Min Lin and Zhengshan Xu and Kai Yu},
  year   = {2024},
  eprint = {2407.01093},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2407.01093v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2407.01093.svg)](https://codeofpaper.com/paper/2407.01093)

Discussion