main
Text Adventure Game with LLM and Interrupt
Overview
This repository implements a text‑based choose‑your‑story game that demonstrates how to combine LangGraph, LangChain and the BroJS LLM for interactive storytelling.
The key concepts showcased are:
- A stateful graph that pauses for user input via
interrupt(). - Two LLM calls: one generates an opening paragraph with three actions; the second writes a short ending based on the chosen action.
- Human‑in‑the‑loop (HITL) using
questionaryto present a menu and capture the user's choice.
The game is intentionally lightweight so you can run it locally with minimal setup.
File Structure
| Path | Purpose |
|---|---|
main.py |
Entry point – defines state, nodes, graph and runs the game. |
requirements.txt |
Exact dependencies with pinned versions. |
README.md |
Project description, installation and usage instructions. |
Installation
# Create a virtual environment (optional but recommended)
python -m venv .venv
source .venv/bin/activate # On Windows use `.venv\Scripts\activate`
# Install dependencies
pip install -r requirements.txt
Important: The BroJS LLM requires an API key. Export it as:
export JOURNAL_MCP_PAT=your_api_key_here
or set it in your IDE’s environment variables.
Running the Game
python main.py
You will be prompted to enter a theme for the adventure (e.g., "a lonely astronaut on a deserted moon"). The game proceeds as follows:
- Intro generation – The LLM writes a short opening paragraph and three numbered actions.
- Interrupt – The graph pauses, displaying the intro and asking you to choose an action via a console menu.
- Ending generation – After you select an option, the LLM produces a concluding paragraph that reflects your choice.
- Final output – The complete story (intro, chosen action, ending) is printed to the console.
Customization
- Change the theme: Edit
main.pyor provide a different prompt when running. - Adjust LLM temperature: Modify the
temperatureparameter in theChatOpenAIinitialization. - Add more options: Update the prompt to request more than three actions and adjust parsing logic accordingly.
Troubleshooting
| Symptom | Likely Cause | Fix |
|---|---|---|
| No output after running | API key missing or invalid | Ensure JOURNAL_MCP_PAT is set correctly. |
| LLM returns unexpected format | Prompt not strict enough | Tighten the prompt to enforce a predictable response structure. |
| Errors in parsing options | Options list contains extra text | Verify that each option line starts with "1)" / "2)" / "3)". |
License & Credits
This project is released under the MIT license. The LLM model used is provided by BroJS and is subject to their terms of service.
Description
Text adventure game using LangGraph with interrupt
29 KiB
0 Stars
1 Watchers
0 Forks
Languages
Python
100%