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.")