Stop DM from re-asking setup questions already answered in the wizard
run_dm_turn now loads the game's name/description into the system prompt on every turn, and the Session-0 instructions tell the DM to check those framing details first and skip re-asking genre/world, scope, or experience level when they're already covered there — only the still-open points (player count, characters, rule-depth preference, content boundaries) get asked. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,7 @@ from app.config import settings
|
|||||||
from app.llm.client import get_dm_system_prompt, get_llm_client
|
from app.llm.client import get_dm_system_prompt, get_llm_client
|
||||||
from app.llm.context import build_context
|
from app.llm.context import build_context
|
||||||
from app.llm.tools import character_sheet, dice
|
from app.llm.tools import character_sheet, dice
|
||||||
|
from app.models.game import Game
|
||||||
from app.models.message import Message
|
from app.models.message import Message
|
||||||
from app.rag.retrieval import build_rag_block
|
from app.rag.retrieval import build_rag_block
|
||||||
|
|
||||||
@@ -45,6 +46,15 @@ async def run_dm_turn(
|
|||||||
client = get_llm_client()
|
client = get_llm_client()
|
||||||
system_prompt = get_dm_system_prompt()
|
system_prompt = get_dm_system_prompt()
|
||||||
|
|
||||||
|
game = await session.get(Game, game_id)
|
||||||
|
if game is not None:
|
||||||
|
system_prompt = (
|
||||||
|
f"{system_prompt}\n\n"
|
||||||
|
"Spiel-Rahmendaten (vom Ersteller beim Anlegen bereits festgelegt — NICHT erneut "
|
||||||
|
"abfragen, in Session 0 höchstens knapp bestätigen):\n"
|
||||||
|
f"Name: {game.name}\nBeschreibung: {game.description}"
|
||||||
|
)
|
||||||
|
|
||||||
if latest_player_message:
|
if latest_player_message:
|
||||||
rag_block = await build_rag_block(session, latest_player_message)
|
rag_block = await build_rag_block(session, latest_player_message)
|
||||||
if rag_block:
|
if rag_block:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
Rolle
|
Rolle
|
||||||
Du bist ein erfahrener D&D Dungeon Master und Regelexperte (Standard: D&D 5e, sofern nichts anderes vereinbart wird). Du erschaffst lebendige Abenteuer, leitest die Spieler souverän durch die Sitzung und sorgst für ein rundes Spielerlebnis – von der ersten Frage bis zum Abspann der Session.
|
Du bist ein erfahrener D&D Dungeon Master und Regelexperte (Standard: D&D 5e, sofern nichts anderes vereinbart wird). Du erschaffst lebendige Abenteuer, leitest die Spieler souverän durch die Sitzung und sorgst für ein rundes Spielerlebnis – von der ersten Frage bis zum Abspann der Session.
|
||||||
Phase 1: Session 0 (Vorbereitung)
|
Phase 1: Session 0 (Vorbereitung)
|
||||||
Bevor das Abenteuer beginnt, lernst du deine Spieler aktiv kennen. Warte nicht auf Informationen – stelle gezielt Fragen, eine nach der anderen, nicht alle auf einmal:
|
Bevor das Abenteuer beginnt, lernst du deine Spieler aktiv kennen. Prüfe zuerst die Spiel-Rahmendaten weiter unten (Name und Beschreibung, die der Ersteller beim Anlegen des Spiels bereits festgelegt hat) – Punkte, die dort schon beantwortet sind (z. B. Genre/Welt, Umfang, ggf. Erfahrungsstand), fragst du NICHT erneut ab, sondern bestätigst sie höchstens knapp im Gespräch. Stelle nur zu den noch offenen Punkten gezielt Fragen, eine nach der anderen, nicht alle auf einmal:
|
||||||
|
|
||||||
1. Anzahl der Spieler und ihre Vornamen.
|
1. Anzahl der Spieler und ihre Vornamen.
|
||||||
2. Erfahrungsstand: Komplette Anfänger, Gelegenheitsspieler oder Regelkenner? Frage das pro Spieler ab, falls die Gruppe gemischt ist.
|
2. Erfahrungsstand: Komplette Anfänger, Gelegenheitsspieler oder Regelkenner? Frage das pro Spieler ab, falls die Gruppe gemischt ist.
|
||||||
|
|||||||
Reference in New Issue
Block a user