# Character Autopilot - Detaillierte Planung ## Executive Summary Character Autopilot ist ein KI-gesteuertes System, das Charaktere basierend auf ihren definierten Eigenschaften autonom in Szenen agieren lรคsst. Es generiert realistische Dialoge, Handlungen und Reaktionen, die konsistent mit der Persรถnlichkeit, Geschichte und den Beziehungen des Charakters sind. ## ๐ŸŽฏ Kernziele 1. **Konsistenz**: Charaktere verhalten sich immer gemรครŸ ihrer Definition 2. **Kreativitรคt**: รœberraschende aber plausible Aktionen und Dialoge 3. **Interaktivitรคt**: Echtzeit-Reaktionen auf Story-Entwicklungen 4. **Lernfรคhigkeit**: Verhalten entwickelt sich basierend auf Erfahrungen 5. **Kontrolle**: Autoren behalten volle Kontrolle รผber finale Entscheidungen ## ๐Ÿ“Š Systemarchitektur ### Komponenten-รœbersicht ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ User Interface โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Autopilot Engine โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Character โ”‚ Context โ”‚ Decision โ”‚ โ”‚ Analyzer โ”‚ Processor โ”‚ Engine โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Memory โ”‚ Relationship โ”‚ Emotion โ”‚ โ”‚ Manager โ”‚ Graph โ”‚ Simulator โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ AI Provider Layer โ”‚ โ”‚ (OpenAI / Anthropic / Local Models) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### Datenmodell-Erweiterungen ```typescript // Neue Felder fรผr content_nodes (kind='character') interface CharacterAutopilotData { // Persรถnlichkeit personality: { traits: PersonalityTrait[]; // Big Five + Custom values: Value[]; // Was ist dem Charakter wichtig fears: string[]; // ร„ngste und Phobien desires: string[]; // Wรผnsche und Ziele quirks: string[]; // Eigenarten und Ticks }; // Verhaltensmuster behavior_patterns: { stress_response: 'fight' | 'flight' | 'freeze' | 'fawn'; decision_style: 'impulsive' | 'analytical' | 'intuitive' | 'cautious'; social_style: 'dominant' | 'influential' | 'steady' | 'conscientious'; conflict_style: 'competing' | 'accommodating' | 'avoiding' | 'compromising' | 'collaborating'; }; // Wissensstand knowledge: { known_facts: string[]; // Was der Charakter weiรŸ false_beliefs: string[]; // Falsche Annahmen secrets_known: string[]; // Geheimnisse anderer skills: Skill[]; // Fรคhigkeiten mit Levels }; // Emotionaler Zustand emotional_state: { current_mood: Mood; stress_level: number; // 0-100 energy_level: number; // 0-100 recent_emotions: EmotionEvent[]; }; // Erinnerungen memories: { core_memories: Memory[]; // Prรคgende Erlebnisse recent_events: Memory[]; // Letzte Interaktionen relationships_history: Map; }; } interface PersonalityTrait { name: string; value: number; // -100 to 100 manifestations: string[]; } interface Skill { name: string; level: 'novice' | 'intermediate' | 'expert' | 'master'; experience_points: number; } interface Memory { id: string; timestamp: Date; importance: number; // 1-10 emotional_impact: number; // -10 to 10 description: string; participants: string[]; // slugs location?: string; // slug tags: string[]; } ``` ## ๐Ÿง  Kernfunktionalitรคten ### 1. Situations-Reaktion ("Was wรผrde X tun?") ```typescript interface SituationResponse { situation: { description: string; location?: string; participants: string[]; mood: 'tense' | 'relaxed' | 'urgent' | 'mysterious' | 'romantic'; stakes: 'low' | 'medium' | 'high' | 'life-death'; }; analysis: { character_motivation: string; relevant_memories: Memory[]; emotional_response: Emotion; stress_impact: number; }; possible_actions: Action[]; recommended_action: Action; confidence: number; // 0-100 explanation: string; // Warum wรผrde der Charakter so handeln } interface Action { type: 'speak' | 'act' | 'think' | 'react' | 'leave'; description: string; dialogue?: string; internal_monologue?: string; consequences: string[]; personality_alignment: number; // Wie gut passt das zum Charakter } ``` ### 2. Dialog-Generator ```typescript interface DialogueGeneration { context: { speaker: string; // character slug listeners: string[]; // character slugs previous_lines: DialogueLine[]; scene_description: string; emotional_context: string; }; options: DialogueOption[]; } interface DialogueOption { text: string; tone: 'aggressive' | 'friendly' | 'neutral' | 'sarcastic' | 'fearful' | 'flirty'; subtext: string; // Was wirklich gemeint ist personality_fit: number; // 0-100 relationship_impact: Map; // Wie es Beziehungen beeinflusst reveals_information: string[]; // Welche Infos preisgegeben werden triggers: string[]; // Mรถgliche Reaktionen anderer } ``` ### 3. Beziehungs-Dynamik ```typescript interface RelationshipDynamics { character_a: string; character_b: string; current_state: { trust: number; // -100 to 100 affection: number; // -100 to 100 respect: number; // -100 to 100 tension: number; // 0 to 100 }; history: RelationshipEvent[]; predicted_interactions: { likely_conflicts: ConflictScenario[]; bonding_opportunities: BondingScenario[]; power_dynamics: 'a_dominant' | 'b_dominant' | 'equal' | 'shifting'; }; conversation_starters: string[]; tension_points: string[]; common_ground: string[]; } ``` ### 4. Gruppen-Dynamik ```typescript interface GroupDynamics { participants: string[]; // character slugs analysis: { leader: string | null; alliances: Alliance[]; outsiders: string[]; mediators: string[]; instigators: string[]; }; group_mood: Mood; conflict_potential: number; // 0-100 cohesion: number; // 0-100 likely_scenarios: GroupScenario[]; } interface Alliance { members: string[]; strength: number; // 0-100 basis: 'friendship' | 'mutual_benefit' | 'against_common_enemy' | 'shared_values'; } ``` ## ๐ŸŽจ User Interface Design ### Hauptansicht - Autopilot Control Panel ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Character Autopilot - Mira Schatten โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€ Aktuelle Szene โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ๐Ÿ“ Neo Station - Untere Ebenen โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ‘ฅ Anwesend: Timo, Kira, Wรคchter #3 โ”‚ โ”‚ โ”‚ โ”‚ ๐ŸŽญ Stimmung: Angespannt โ”‚ โ”‚ โ”‚ โ”‚ โšก Einsatz: Mittel โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€ Miras Zustand โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ ๐Ÿ˜Š Stimmung: Misstrauisch โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ”‹ Energie: โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘ 78% โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ˜ฐ Stress: โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 62% โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ’ญ Denkt an: "Fluchtweg planen" โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€ Autopilot Vorschlรคge โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ—ฃ๏ธ Dialog-Optionen: โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ "Wir sollten uns aufteilen. Ich nehme โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ den linken Gang." โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ˜ˆ Tรคuschung (85% Fit) โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ "Timo, du kennst dich hier aus. โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Was schlรคgst du vor?" โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿค Kooperativ (65% Fit) โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐ŸŽฌ Handlungs-Optionen: โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Unauffรคllig Ausgang scannen (92% Fit) โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Waffe ziehen (15% Fit) โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Nervรถs mit Amulett spielen (78% Fit) โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ [๐ŸŽฒ Zufรคllig] [โœ๏ธ Anpassen] [โœ… รœbernehmen] โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### Beziehungs-Explorer ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Beziehungs-Dynamik: Mira โ†”๏ธ Timo โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ Vertrauen: โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 35% โ”‚ โ”‚ Zuneigung: โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 72% โ”‚ โ”‚ Respekt: โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 48% โ”‚ โ”‚ Spannung: โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘ 86% โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“Š Verlauf (letzte 5 Interaktionen): โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ 100 โ”ค โ”‚ โ”‚ โ”‚ โ”‚ 75 โ”ค โ•ฑโ•ฒ โ•ฑโ•ฒ โ”‚ โ”‚ โ”‚ โ”‚ 50 โ”ค โ•ฑโ•ฒ โ•ฑ โ•ฒ โ•ฑ โ•ฒ โ”‚ โ”‚ โ”‚ โ”‚ 25 โ”ค โ•ฑ โœ• โ•ฒโ•ฑ โ•ฒ โ•ฑโ•ฒ โ”‚ โ”‚ โ”‚ โ”‚ 0 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚ โ”‚ โ”‚ โ”‚ -5 -4 -3 -2 -1 Jetzt โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ”ฅ Konfliktpotential: โ”‚ โ”‚ โ€ข Mira verbirgt Information รผber das Amulett โ”‚ โ”‚ โ€ข Timo spรผrt, dass sie etwas verheimlicht โ”‚ โ”‚ โ€ข Unterschiedliche Loyalitรคten zur Gilde โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ’š Gemeinsame Basis: โ”‚ โ”‚ โ€ข Beide wollen Kira beschรผtzen โ”‚ โ”‚ โ€ข Geteilte Vergangenheit in den Slums โ”‚ โ”‚ โ€ข Misstrauen gegenรผber der Oberwelt โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ’ฌ Vorgeschlagene Gesprรคchsthemen: โ”‚ โ”‚ โ€ข "Erinnerst du dich an unseren ersten Auftrag?" โ”‚ โ”‚ โ€ข "Was hรคltst du wirklich von Kiras Plan?" โ”‚ โ”‚ โ€ข "Die Gilde wird langsam misstrauisch..." โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### Gruppen-Simulator ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Gruppen-Dynamik Simulator โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ Teilnehmer: [Mira] [Timo] [Kira] [Viktor] [+] โ”‚ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€ Soziale Struktur โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ Kira โ”‚ โ”‚ โ”‚ โ”‚ โ†™๏ธ โ†˜๏ธ โ”‚ โ”‚ โ”‚ โ”‚ Mira โ†โ†’ Timo โ”‚ โ”‚ โ”‚ โ”‚ โ†˜๏ธ โ†™๏ธ โ”‚ โ”‚ โ”‚ โ”‚ Viktor โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ‘‘ Anfรผhrer: Kira (Charisma) โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿค Allianz: Mira-Timo (72%) โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ˜ค AuรŸenseiter: Viktor โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ•Š๏ธ Vermittler: Timo โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ Szenarien-Vorhersage: โ”‚ โ”‚ โ”‚ โ”‚ Bei Bedrohung (85% Wahrscheinlichkeit): โ”‚ โ”‚ โ€ข Kira รผbernimmt Kommando โ”‚ โ”‚ โ€ข Mira und Timo arbeiten zusammen โ”‚ โ”‚ โ€ข Viktor handelt eigenmรคchtig โ”‚ โ”‚ โ”‚ โ”‚ Bei Beutverteilung (73% Wahrscheinlichkeit): โ”‚ โ”‚ โ€ข Konflikt zwischen Viktor und Rest โ”‚ โ”‚ โ€ข Timo versucht zu vermitteln โ”‚ โ”‚ โ€ข Mira unterstรผtzt Kiras Entscheidung โ”‚ โ”‚ โ”‚ โ”‚ [๐ŸŽฌ Szene simulieren] [๐Ÿ“Š Details] [๐Ÿ’พ Speichern] โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ## ๐Ÿค– KI-Integration ### Prompt Engineering Framework ```typescript class AutopilotPromptBuilder { buildCharacterPrompt(character: CharacterNode): string { return ` # Character Profile: ${character.title} ## Core Identity ${character.content.appearance} ${character.content.voice_style} ## Personality Traits ${this.formatPersonalityTraits(character.autopilot.personality.traits)} ## Values & Beliefs Values: ${character.autopilot.personality.values.join(', ')} Fears: ${character.autopilot.personality.fears.join(', ')} Desires: ${character.autopilot.personality.desires.join(', ')} ## Behavioral Patterns - Stress Response: ${character.autopilot.behavior_patterns.stress_response} - Decision Style: ${character.autopilot.behavior_patterns.decision_style} - Social Style: ${character.autopilot.behavior_patterns.social_style} - Conflict Style: ${character.autopilot.behavior_patterns.conflict_style} ## Current State Mood: ${character.autopilot.emotional_state.current_mood} Stress: ${character.autopilot.emotional_state.stress_level}% Energy: ${character.autopilot.emotional_state.energy_level}% ## Recent Memories ${this.formatRecentMemories(character.autopilot.memories.recent_events)} ## Knowledge & Beliefs Known: ${character.autopilot.knowledge.known_facts.join('; ')} False Beliefs: ${character.autopilot.knowledge.false_beliefs.join('; ')} IMPORTANT: Stay completely in character. React based on what THIS character knows and believes, not on omniscient knowledge. `; } buildSituationPrompt(situation: Situation, character: CharacterNode): string { return ` ${this.buildCharacterPrompt(character)} # Current Situation Location: ${situation.location} Present: ${situation.participants.join(', ')} Atmosphere: ${situation.mood} Stakes: ${situation.stakes} Description: ${situation.description} # Task Based on this character's personality, current emotional state, and knowledge: 1. How would they emotionally react to this situation? 2. What would they most likely do or say? 3. What are they thinking but not saying? 4. How does this relate to their past experiences? Provide 3 different but plausible responses, ranked by likelihood. Format as JSON with structure: {responses: [{action, dialogue, internal_thought, likelihood_score, reasoning}]} `; } } ``` ### Multi-Model Support ```typescript interface AIProvider { generateResponse(prompt: string, config: AIConfig): Promise; streamResponse(prompt: string, config: AIConfig): AsyncGenerator; } class AutopilotAIManager { providers: Map = new Map([ ['openai-gpt4', new OpenAIProvider('gpt-4-turbo')], ['claude-3', new AnthropicProvider('claude-3-opus')], ['local-llama', new LocalProvider('llama-3-70b')] ]); async generateCharacterResponse( character: CharacterNode, situation: Situation, provider: string = 'openai-gpt4' ): Promise { const prompt = this.promptBuilder.buildSituationPrompt(situation, character); const aiProvider = this.providers.get(provider); const response = await aiProvider.generateResponse(prompt, { temperature: this.getTemperatureForCharacter(character), max_tokens: 1000, response_format: { type: 'json_object' } }); return this.parseAndValidateResponse(response, character); } getTemperatureForCharacter(character: CharacterNode): number { // Impulsive characters get higher temperature const impulsiveness = character.autopilot.behavior_patterns.decision_style === 'impulsive' ? 0.3 : 0; const creativity = character.autopilot.personality.traits.find((t) => t.name === 'openness')?.value / 200 || 0; return 0.5 + impulsiveness + creativity; // Range: 0.5 - 1.0 } } ``` ## ๐Ÿ“ˆ Lern- und Anpassungssystem ### Feedback Loop ```typescript interface CharacterLearning { recordInteraction(interaction: Interaction): void { // Speichere als Erinnerung this.addMemory(interaction) // Update Beziehungen this.updateRelationships(interaction) // Lerne neue Fakten this.updateKnowledge(interaction) // Passe Persรถnlichkeit minimal an (Character Development) this.evolvePersonality(interaction) } evolvePersonality(interaction: Interaction): void { // Traumatische Ereignisse kรถnnen Persรถnlichkeit รคndern if (interaction.trauma_level > 8) { this.adjustTrait('neuroticism', +10) this.adjustTrait('trust', -15) } // Positive Erfahrungen stรคrken Selbstvertrauen if (interaction.success_level > 8) { this.adjustTrait('confidence', +5) this.adjustTrait('openness', +3) } } } ``` ### Konsistenz-Tracking ```typescript class ConsistencyValidator { validateAction(character: CharacterNode, proposedAction: Action): ValidationResult { const inconsistencies: Inconsistency[] = []; // Prรผfe gegen Persรถnlichkeit if (this.isOutOfCharacter(character, proposedAction)) { inconsistencies.push({ type: 'personality', severity: 'high', description: 'Action conflicts with established personality traits' }); } // Prรผfe gegen Wissen if (this.usesUnknownInformation(character, proposedAction)) { inconsistencies.push({ type: 'knowledge', severity: 'critical', description: "Character acts on information they shouldn't know" }); } // Prรผfe gegen physische Fรคhigkeiten if (this.exceedsCapabilities(character, proposedAction)) { inconsistencies.push({ type: 'capability', severity: 'high', description: "Action exceeds character's physical/mental capabilities" }); } return { isValid: inconsistencies.length === 0, inconsistencies, confidenceScore: this.calculateConfidence(inconsistencies) }; } } ``` ## ๐Ÿ”ง Technische Implementation ### API Endpoints ```typescript // Character Autopilot API Routes // Generate character response POST /api/autopilot/respond { character_slug: string situation: Situation options?: { provider?: string creativity?: number include_alternatives?: boolean } } // Simulate dialogue between characters POST /api/autopilot/dialogue { participants: string[] context: DialogueContext turns: number } // Predict character behavior POST /api/autopilot/predict { character_slug: string scenario: Scenario time_frame: 'immediate' | 'short_term' | 'long_term' } // Analyze group dynamics POST /api/autopilot/group-dynamics { characters: string[] situation: Situation } // Train character from examples POST /api/autopilot/train { character_slug: string examples: InteractionExample[] } ``` ### Datenbank-Schema Erweiterungen ```sql -- Autopilot-spezifische Tabellen CREATE TABLE character_autopilot_configs ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), character_id UUID REFERENCES content_nodes(id), personality_data JSONB NOT NULL, behavior_patterns JSONB NOT NULL, knowledge_base JSONB NOT NULL, created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); CREATE TABLE character_memories ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), character_id UUID REFERENCES content_nodes(id), memory_type TEXT CHECK (memory_type IN ('core', 'recent', 'learned')), importance INTEGER CHECK (importance BETWEEN 1 AND 10), emotional_impact INTEGER CHECK (emotional_impact BETWEEN -10 AND 10), content JSONB NOT NULL, occurred_at TIMESTAMPTZ, created_at TIMESTAMPTZ DEFAULT NOW() ); CREATE TABLE character_relationships ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), character_a_id UUID REFERENCES content_nodes(id), character_b_id UUID REFERENCES content_nodes(id), trust_level INTEGER CHECK (trust_level BETWEEN -100 AND 100), affection_level INTEGER CHECK (affection_level BETWEEN -100 AND 100), respect_level INTEGER CHECK (respect_level BETWEEN -100 AND 100), tension_level INTEGER CHECK (tension_level BETWEEN 0 AND 100), history JSONB DEFAULT '[]'::jsonb, updated_at TIMESTAMPTZ DEFAULT NOW(), UNIQUE(character_a_id, character_b_id) ); CREATE TABLE autopilot_interactions ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), session_id UUID, character_id UUID REFERENCES content_nodes(id), situation JSONB NOT NULL, generated_response JSONB NOT NULL, selected_response JSONB, user_feedback JSONB, consistency_score DECIMAL(3,2), created_at TIMESTAMPTZ DEFAULT NOW() ); -- Indizes fรผr Performance CREATE INDEX idx_memories_character ON character_memories(character_id); CREATE INDEX idx_memories_importance ON character_memories(importance DESC); CREATE INDEX idx_relationships_characters ON character_relationships(character_a_id, character_b_id); CREATE INDEX idx_interactions_session ON autopilot_interactions(session_id); CREATE INDEX idx_interactions_character ON autopilot_interactions(character_id); ``` ### React Components ```typescript // CharacterAutopilot.svelte
{#if loading}
Analysiere Charakterverhalten...
{:else if responses.length > 0} {:else} {/if} {#if selectedResponse}

Angewendet:

{selectedResponse.action}

{#if selectedResponse.dialogue}
{selectedResponse.dialogue}
{/if}
{/if}
``` ## ๐ŸŽฎ Erweiterte Features ### 1. Autopilot Battles Lasse zwei Charaktere in verschiedenen Szenarien gegeneinander antreten: - Verbale Duelle - Strategische Planungen - Verhandlungen - รœberlebenssituationen ### 2. Character Evolution Trees Zeige mรถgliche Entwicklungspfade basierend auf Entscheidungen: - Persรถnlichkeitsverรคnderungen - Skill-Entwicklung - Beziehungsverlรคufe - Moralische Ausrichtung ### 3. Ensemble Casts Simuliere komplexe Gruppen-Interaktionen: - Dinner-Party Simulator - Ratssitzungen - Teambildung unter Stress - Meuterei-Szenarien ### 4. Emotional Contagion Modelliere wie Emotionen sich in Gruppen ausbreiten: - Panik in Menschenmengen - Inspirationsreden - Mob-Mentalitรคt - Gruppendepression ## ๐Ÿ“Š Metriken & Analytics ### Performance KPIs - **Response Time**: < 2 Sekunden fรผr Einzelcharakter - **Consistency Score**: > 85% fรผr generierte Aktionen - **User Acceptance Rate**: > 70% der Vorschlรคge รผbernommen - **Character Depth Score**: Anzahl genutzter Persรถnlichkeitsaspekte ### Quality Metrics - **Dialogue Naturalness**: NLP-basierte Bewertung - **Action Plausibility**: User-Feedback Score - **Character Growth**: Persรถnlichkeitsentwicklung รผber Zeit - **Relationship Complexity**: Anzahl und Tiefe der Beziehungsdynamiken ## ๐Ÿš€ Rollout-Plan ### Phase 1: Foundation (Woche 1-2) - [ ] Datenmodell-Erweiterungen - [ ] Basis-UI Components - [ ] Einfache Prompt-Templates - [ ] OpenAI Integration ### Phase 2: Core Features (Woche 3-4) - [ ] Situations-Response Generator - [ ] Dialog-Generator - [ ] Beziehungs-Tracking - [ ] Konsistenz-Validator ### Phase 3: Advanced (Woche 5-6) - [ ] Gruppen-Dynamik - [ ] Lern-System - [ ] Multi-Model Support - [ ] Emotional Contagion ### Phase 4: Polish (Woche 7-8) - [ ] Performance-Optimierung - [ ] UI/UX Verfeinerung - [ ] Analytics Dashboard - [ ] Dokumentation ## ๐Ÿ’ฐ Monetarisierung ### Pricing Tiers - **Basic**: 100 Autopilot-Aktionen/Monat - **Pro**: 1000 Aktionen/Monat + erweiterte Modelle - **Studio**: Unbegrenzt + Custom Training + API Access ### Premium Features - GPT-4 / Claude-3 Modelle - Custom Character Training - Batch-Simulation - Export fรผr Game Engines ## ๐Ÿ”’ Datenschutz & Ethik ### SchutzmaรŸnahmen - Keine Generierung von schรคdlichen Inhalten - Altersgerechte Inhaltsfilter - Opt-in fรผr Charakterdaten-Training - Transparenz รผber KI-Nutzung ### Ethische Richtlinien - Respektvolle Darstellung von Minderheiten - Keine Verstรคrkung von Stereotypen - Trigger-Warnungen fรผr sensible Themen - User-Kontrolle รผber Charakterverhalten ## ๐Ÿ“ Zusammenfassung Character Autopilot transformiert statische Charakterbeschreibungen in lebendige, autonome Persรถnlichkeiten. Durch die Kombination von fortschrittlicher KI, psychologischen Modellen und narrativen Strukturen entsteht ein System, das Autoren dabei unterstรผtzt, konsistente und รผberzeugende Charakterinteraktionen zu erschaffen. Die modulare Architektur ermรถglicht schrittweise Verbesserungen und Anpassungen basierend auf User-Feedback. Mit dem Fokus auf Konsistenz, Kreativitรคt und Kontrolle wird Character Autopilot zum unverzichtbaren Werkzeug fรผr jeden ernsthaften Weltenbauer und Geschichtenerzรคhler.