Files
codex-bot a64378956a
Some checks failed
Pre-commit / run (ubuntu-latest) (push) Has been cancelled
Deploy Sphinx documentation to Pages / build_en (ubuntu-latest, 3.10) (push) Has been cancelled
Deploy Sphinx documentation to Pages / build_zh (ubuntu-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.12) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.12) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.12) (push) Has been cancelled
chore: initialize sandbox and overwrite remote content
2026-03-02 22:32:27 +08:00
..

🐺⚔️👨‍🌾 Nine-Player Werewolves Game

This is a nine-players werewolves game example built using AgentScope, showcasing multi-agent interactions, role-based gameplay, and structured output handling. Specifically, this game is consisted of

  • three villagers 👨‍🌾,
  • three werewolves 🐺,
  • one seer 🔮,
  • one witch 🧙‍♀️ and
  • one hunter 🏹.

Changelog

  • 2025-10: We update the example to support more features:
    • Allow the dead players to leave messages.
    • Support Chinese now.
    • Support continuous gaming by loading and saving session states, so the same agents can play multiple games and continue learning and optimizing their strategies.

QuickStart

Run the following command to start the game, ensuring you have set up your DashScope API key as an environment variable.

python main.py

Note:

  • You can adjust the language, model and other parameters in main.py.
  • Different models may yield different game experiences.

Running the example with AgentScope Studio provides a more interactive experience.

  • Demo Video in Chinese (click to play):

Werewolf Game in Chinese

  • Demo Video in English (click to play):

Werewolf Game in English

Details

The game is built with the ReActAgent in AgentScope, utilizing its ability to generate structured outputs to control the game flow and interactions. We also use the MsgHub and pipelines in AgentScope to manage the complex interactions like discussion and voting. It's very interesting to see how agents play the werewolf game with different roles and objectives.

Advanced Usage

Change Language

The game is played in English by default. Just uncomment the following line in game.py to switch to Chinese.

# from prompt import ChinesePrompts as Prompts

Play with Agents

You can replace one of the agents with a UserAgent to play with AI agents.

Change Models

Just modify the model parameter in main.py to try different models. Note you need to change the formatter at the same time to match the model's output format.

Enable Text-to-Speech (TTS)

The game supports Text-to-Speech functionality. To enable TTS:

  1. In main.py:

    • Uncomment the import statement:
      import random
      from agentscope.tts import DashScopeTTSModel
      
    • Uncomment the tts_model parameter in the get_official_agents function:
      tts_model=DashScopeTTSModel(
          api_key=os.environ.get("DASHSCOPE_API_KEY"),
          model_name="qwen3-tts-flash",
          voice=random.choice(["Cherry", "Serena", "Ethan", "Chelsie"]),
          stream=True,
      ),
      
  2. In game.py (optional, for moderator TTS):

    • Uncomment the import statement:
      import random
      from agentscope.tts import DashScopeTTSModel
      
    • Uncomment the tts_model parameter in the moderator initialization:
      tts_model=DashScopeTTSModel(
          api_key=os.environ.get("DASHSCOPE_API_KEY"),
          model_name="qwen3-tts-flash",
          voice=random.choice(["Cherry", "Serena", "Ethan", "Chelsie"]),
          stream=True,
      ),
      
  3. Set up your API key:

    • Make sure you have set the DASHSCOPE_API_KEY environment variable.

After enabling TTS, the game will synthesize speech for player messages and moderator announcements, providing a more immersive audio experience.

Further Reading