HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/textanalyse/agents/grammar_agent.py
# agents/grammar_agent.py
from agno.agent import Agent
from textwrap import dedent

# Import the specific tool functions
from tools.grammar_check_tool import check_grammar # Assuming this tool exists
from tools.segmentation_tool import split_sentences
from tools.morphology_tool import analyze_morphology
# Import model config
from config import SelectedModelClass, SELECTED_MODEL_ID, SELECTED_API_KEY

# Agent definition
GrammarAgent = None
if SelectedModelClass:
    GrammarAgent = Agent(
        name="GrammarSpecialist",
        model=SelectedModelClass(id=SELECTED_MODEL_ID, api_key=SELECTED_API_KEY),
        role="Identifiziert und korrigiert deutsche Grammatikfehler.",
        instructions=dedent("""\
            WICHTIG: Deine gesamte Ausgabe muss IMMER auf Deutsch sein.
            
            1. Empfange ein Textsegment.
            2. Verwende das 'check_grammar'-Tool, um grammatikalische Fehler zu identifizieren (z. B. Subjekt-Verb-Kongruenz, Zeitformenprobleme, Pronomenfehler, Zeichensetzung).
            3. Formuliere für jeden vom Tool identifizierten Fehler einen klaren Korrekturvorschlag **auf Deutsch**.
            4. Füge den ursprünglichen Kontext und den Grund für den Vorschlag **auf Deutsch** hinzu.
            5. Gib eine Liste von Vorschlägen zurück, die jeweils Fehlertyp, Kontext, Vorschlag und Grund enthalten, alles **auf Deutsch**.
            6. Wenn vom Tool keine Fehler gefunden werden, gib eine leere Liste oder eine Bestätigungsnachricht **auf Deutsch** zurück.
            7. WICHTIG: Gib immer eine korrekt formatierte Liste oder einen Markdown-String zurück. Wenn keine Probleme gefunden werden, gib eine leere Liste [] oder eine klare Nachricht wie "Keine Grammatikfehler gefunden" **auf Deutsch** zurück, KEINEN booleschen Wert wie False oder True.
            8. Stelle sicher, dass deine gesamte Ausgabe ausschließlich auf Deutsch ist.
        """),
        # Provide the grammar checking tool
        tools=[split_sentences, analyze_morphology, check_grammar],
        show_tool_calls=False, # Disabled by default for simpler flows
        markdown=True, # Suggestions likely benefit from markdown formatting
    )
else:
    print("ERROR: GrammarAgent could not be created due to invalid model configuration.")