feat: complete modular plugin refactor with 100% E2E coverage for interactions

This commit is contained in:
2026-04-25 20:58:07 +02:00
parent 77e8251aa7
commit 144d6401b5
232 changed files with 66259 additions and 5410 deletions

View File

@@ -1,124 +1,107 @@
# ════════════════════════════════════════════════════════════════════════════
# 🤖 AUTONOMOUS AGENT CONFIGURATION (Full Options Reference)
# 🤖 ANTIGRAVITY ELITE CONFIGURATION (Plugin-Based Architecture)
# ════════════════════════════════════════════════════════════════════════════
# Das ist das "Brain" deines Bots. Keine abstrakten Klick-Raten oder
# Prozentwerte mehr. Sag dem Bot einfach, wer er ist und was er tun soll.
# Dieses Brain ist modular aufgebaut. Jedes Verhalten ist ein autonomes Plugin.
# Einstellungen können global oder spezifisch für jedes Plugin definiert werden.
# Design-Prinzip: Zero Trust & Fail Fast.
identity:
# Unter welchem Account operiert der Bot?
username: "marisaundmarc"
# Wer ist der Bot? (Wichtig für die KI-Kommentare und Profil-Analyse)
persona: "Travel blogger, landscape photographer, and outdoors enthusiast"
vibe: "friendly, authentic, helpful, and appreciative of good art"
mission:
# Wie soll sich der Bot generell verhalten?
# - aggressive_growth: Sucht permanent nach neuen Profilen (Explore/Reels)
# - community_builder: Fokussiert sich stark auf den eigenen Feed und Home-Tab
# - stealth_lurker: Liest viel, interagiert aber nur bei extrem hoher Relevanz
# - passive_learning: "Dry-Run" Modus. Bot navigiert und lernt, führt aber NIE Aktionen aus.
strategy: "aggressive_growth"
# Wie kritisch ist der Bot bei fremden Posts? (Hoch = nur Meisterwerke, Niedrig = fast alles)
selectivity_threshold: "high"
# Wen sucht der Bot? (Alias für target-audience)
target_audience: "travel, landscape, nature, mountain photography, wanderlust"
# persona_interests: "travel, landscape, nature" # Alternative zu target_audience
# Was hasst der Bot absolut? (Sofortiger Skip)
blacklist_topics: "onlyfans, nsfw, sale, discount, promo, 18+, giveaway, crypto"
# ── Core Actions / Jobs (Welche Bereiche sollen besucht werden) ──
# actions:
# feed: "5-10" # Anzahl der Posts im Home-Feed
# explore: "5-10" # Anzahl der Posts im Explore-Grid
# reels: "5-10" # Anzahl der Reels im nativen Reels-Tab
# stories: "3-5" # Anzahl der Story-Loops, die nativ geschaut werden
# search: "landscape" # Komma-getrennte Suchbegriffe für die Suchleiste
# repeat: 1 # Wie oft soll die komplette Schleife wiederholt werden
# ── Core Action Jobs (Wann soll der Bot wo aktiv werden?) ──
actions:
feed: "5-10" # Anzahl der Posts im Home-Feed pro Session
explore: "5-10" # Anzahl der Posts im Explore-Grid
# reels: "5-10" # In Entwicklung
# stories: "3-5" # In Entwicklung
interactions:
# Grund-Wahrscheinlichkeit für Aktionen (unabhängig von der strict Resonance)
interact_percentage: 100 # Globale Chance, ob überhaupt interagiert wird
likes_percentage: 100
comment_percentage: 40 # Moderater Wert, da Kommentare "dry" sind
follow_percentage: 100 # IMMER folgen, wenn das Profil als relevant bewertet wurde
stories_percentage: 100 # IMMER Stories schauen, um menschlich zu wirken
# ── Plugin Configuration (Das Herzstück der Verhaltenssteuerung) ──
plugins:
# 🛡️ Guards & Safety (Filtern, bevor Interaktion passiert)
ad_guard:
enabled: true
# Detail-Limits pro Profil/Post
likes_count: "2-3" # 2-3 schnelle Likes auf dem Profil hinterlassen (sehr starkes Signal)
stories_count: "1-2" # 1-2 Stories anschauen (sehr menschliches Verhalten)
close_friends_guard:
enabled: true # Postings von 'Engen Freunden' ignorieren
# Comment Dry Run: Wenn true, überlegt sich die AI geniale Kommentare, postet sie aber nicht in echt.
dry_run_comments: true
obstacle_guard:
enabled: true # Popups, Update-Dialoge etc. wegräumen
# Wahrscheinlichkeit (in Prozent), fremde Profile VOR dem Kommentieren tiefgründig zu analysieren
profile_learning_percentage: 100 # IMMER Profile analysieren -> Trigger für den Follow/Like Flow
anomaly_handler:
enabled: true # Erkennt Blockierungen oder Captchas sofort (Fail Fast)
# Wahrscheinlichkeit (in Prozent), das Bild visuell zu analysieren (Screenshot -> LLM), bevor interagiert wird
visual_vibe_check_percentage: 100
# 🧠 Perception & Evaluation (Vorverarbeitung)
post_data_extraction:
enabled: true # Extrahiert Text, Hashtags und Metadata
# ── AI Learning & Perception ──
ai_learning:
# Soll der Bot zum Start der Session sein eigenes Profil lesen und Persona/Vibe anpassen?
ai_learn_own_profile: true
# ai_learn_comments: false # Kommentare extrahieren und in die Qdrant DB aufnehmen
# ai_learn_niche_posts: false # Nischen-spezifische Texte und Posts in die DB lernen
# ai_learn_only: false # Nur umherwandern und Content absaugen/lernen (kein Posten)
# ai_quality_filter: false # Rigorose AI-Prüfung aller Posts vor Interaktion
# ai_vision_navigation: false # Nutze VLM, um UI Buttons auf dem Bildschirm zu finden (teuer!)
# ai_vision_context: false # Nutze VLM, um DMs und Posts semantisch in voller Tiefe zu begreifen
resonance_evaluator:
visual_vibe_check_percentage: 100
selectivity_threshold: "high"
# ⚡ Interactions (Die eigentlichen Aktionen)
likes:
percentage: 100 # Wahrscheinlichkeit pro Post
count: "2-3" # Falls im Grid, wie viele?
comment:
percentage: 40
dry_run: true # Generiert KI-Kommentare ohne zu posten (Review-Mode)
follow:
percentage: 100
repost:
percentage: 20 # Teilen in die eigene Story
story_view:
percentage: 80
count: "1-3" # Wie viele Stories pro User schauen?
profile_visit:
percentage: 100 # Wahrscheinlichkeit, vom Feed ins Profil zu gehen
learn_own_profile: true
grid_like:
percentage: 60 # Liked Posts aus dem Profil-Grid des Users
count: "1-3"
# 🎢 Special Behaviors
carousel_browsing:
percentage: 100 # Erkennt Carousels und swiped durch
count: "2-4" # Wie viele Slides pro Post?
rabbit_hole:
percentage: 30 # Geht tiefer in verwandte Profile (Inception-Mode)
darwin_dwell:
percentage: 50 # Simuliert unregelmäßige Lesezeiten (Biometrie)
# ── Limits & Budget ──
limits:
# Wie viele Stunden am Tag darf der Bot maximal arbeiten?
daily_budget_hours: 2.5
# working_hours: "09:00-21:00" # In welchem Fenster der Bot laufen darf
# time_delta_session: "60-120" # Minuten Pause zwischen Sessions
# Absolute Sicherheitsnetze pro Tag/Lauf
max_comments_per_day: 40
# total_likes_limit: 300
# total_follows_limit: 50
# total_unfollows_limit: 50
# total_pm_limit: 10
# total_watches_limit: 50
# total_successful_interactions_limit: 100
# total_interactions_limit: 1000
# total_scraped_limit: 200
# total_crashes_limit: 5
# total_sessions: -1
total_likes_limit: 300
total_follows_limit: 50
speed_multiplier: 1.0
# ── CRM & Advanced Features ──
# features:
# scrape_profiles: false # Extrahiere Profil-Bio und speichere im CRM
# smart_unfollow: false # AI-Agentic Unfollow von Leuten, die nicht zurückfolgen
ignore_close_friends: true # Ignoriere alles (Posts/Stories) von "Enge Freunde"
# ── Infrastructure & System (Nur für Entwickler) ──
device: 192.168.1.206:42171
# ── Infrastructure & System ──
device: 192.168.1.206:40505
app-id: com.instagram.android
debug: true
blank_start: true
speed-multiplier: 1.0 # >1.0 macht den Bot schneller (Achtung: unnatürlich)
# handedness: "right" # "right" oder "left", beeinflusst die Krümmung des Swipes
# restart_atx_agent: false # UIA2 Server auf dem Handy neu starten bei Problemen
# allow_untested_ig_version: false
blank_start: true # ACHTUNG: Löscht die komplette Qdrant Navigations-Memory beim Start!
# ── AI Model Endpoints (Explicit configuration, no defaults) ──
# ── AI Model Endpoints (Ollama / OpenRouter) ──
ai-model: qwen3.5:latest
ai-model-url: http://localhost:11434/api/generate
ai-telepathic-model: llama3.2-vision
ai-telepathic-url: http://localhost:11434/api/generate
ai-condenser-model: qwen3.5:latest
ai-condenser-url: http://localhost:11434/api/generate
ai-embedding-model: nomic-embed-text
ai-embedding-url: http://localhost:11434/api/embeddings
ai-fallback-model: qwen3.5:latest
ai-fallback-url: http://localhost:11434/api/generate