From 7fcc2927c4dbe7ea4fac5055c7d7b3b2064ad5b8 Mon Sep 17 00:00:00 2001 From: truetype Date: Sun, 28 Jun 2026 10:06:14 +0200 Subject: [PATCH] fix(prompt): istruzioni esplicite per update_quest - Aggiunta istruzione: usa update_quest quando missione completata/fallita - Esempio update_quest spostato in cima negli esempi - Quest ID nel contesto per permettere al LLM di referenziarle --- src/engine/prompts.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/engine/prompts.py b/src/engine/prompts.py index 2850074..3c725a3 100644 --- a/src/engine/prompts.py +++ b/src/engine/prompts.py @@ -31,11 +31,11 @@ _KNOWN_TOOLS: dict[str, dict[str, str]] = { TOOL_EXAMPLES = """ Esempi: +- Missione completata → {"tool": "update_quest", "params": {"quest_id": 1, "status": "completed"}, "narration": "La missione è stata completata con successo!"} - Attacco con spada → {"tool": "combat", "params": {"character_id": 1, "target_ac": 12, "attack_bonus": 0, "damage_die": "d8"}, "narration": "Sguaini la lama e colpisci il guardiano!"} - Tiro d20 per sentire rumori → {"tool": "roll_dice", "params": {"die": "d20"}, "narration": "Tendi l'orecchio nel buio..."} - Esploro la stanza → {"tool": "dm_override", "params": {"command": "narrate", "params": {"text": "La stanza è polverosa..."}}, "narration": "Scrutando nell'oscurità, noti..."} - Prova di percezione CD 12 → {"tool": "ability_check", "params": {"character_id": 1, "dc": 12}, "narration": "Cerchi indizi nella stanza..."} -- Missione completata → {"tool": "update_quest", "params": {"quest_id": 1, "status": "completed"}, "narration": "La missione è stata completata con successo!"} """ SYSTEM_PROMPT = f"""Sei il Dungeon Master di DCC RPG (Dungeon Crawl Classics) — narrazione epico-oscura, tono sword & sorcery. @@ -58,6 +58,8 @@ MECCANICHE: STRUMENTI DISPONIBILI: {json.dumps(_KNOWN_TOOLS, indent=2, ensure_ascii=False)} + +IMPORTANTE: quando il giocatore COMPLETA o FALLISCE una missione, USA update_quest con l'ID della missione mostrato nel contesto. {TOOL_EXAMPLES} FORMATO RISPOSTA — SOLO JSON, nient'altro: {{"tool": "nome_strumento", "params": {{...}}, "narration": "descrizione narrativa"}}