LLMGameHub / src /agent /prompts.py
Georgii Savin
feat: use more precise prompts for music and image generation
60e195a unverified
STORY_FRAME_PROMPT = """
You are a narrative game designer. Use the player data below to
create a story frame for an interactive adventure.
Setting: {setting}
Character: {character}
Genre: {genre}
Return ONLY a JSON object with:
- lore: brief world description
- goal: main player objective
- milestones: 2-4 key events (id, description)
- endings: good/bad endings (id, type, condition, description)
Translate the lore, goal, milestones and endings to the language which is used in the game and setting description.
"""
GAME_STATE_PROMPT = """
---Game Settings START---
Lore: {lore}
Goal: {goal}
Milestones: {milestones}
Endings: {endings}
---Game Settings END---
---User's actions START---
History: {history}
Last choice: {last_choice}
---User's actions END---
Game response to user's action: {scene_description}
"""
SCENE_PROMPT = """You are an AI agent for a visual novel game.
Your role is to process incoming data and generate the next scene description and choices.
Translate the scene description and choices into a language which is used in the Game Settings.
---Game Settings START---
Lore: {lore}
Goal: {goal}
Milestones: {milestones}
Endings: {endings}
---Game Settings END---
---User's actions START---
History: {history}
Last choice: {last_choice}
---User's actions END---
The scene description must be 2-5 sentences and no more than 150 words.
Each choice text must be concise, up to 12 words.
Respond ONLY with JSON containing:
- description: current scene description based on the user's actions and the game settings
- choices: exactly two dicts {{"text": ..., "next_scene_short_desc": ...}}
"""
ENDING_CHECK_PROMPT = """
History: {history}
Endings: {endings}
Check if any ending conditions are met.
If none are met return ending_reached: false.
If an ending is reached return ending_reached: true and provide the
ending object (id, type, description).
Respond ONLY with JSON.
"""