
So integrieren Sie Content-Moderation in Ihren Chatbot oder KI-Agenten

Content-Moderation in einem Chatbot oder KI-Agenten einzubauen bedeutet weit mehr, als nur unangemessene Wörter zu filtern. Ein produktionsreifer Workflow muss Benutzereingaben, Modellausgaben und die Aktionen prüfen, die ein Agent ausführen darf.
Das klarste mentale Modell sieht so aus:
input moderation
-> model or agent reasoning
-> tool-call validation
-> output moderation
-> allow / review / blockZusammenfassung
- Prüfen Sie Benutzereingaben, bevor sie Ihren Chatbot oder Agenten erreichen.
- Prüfen Sie Modellausgaben, bevor Nutzer sie sehen.
- Validieren Sie Tool-Aufrufe, bevor ein Agent Aktionen ausführt.
- Betrachten Sie Content-Moderation nicht als vollständigen Schutz gegen Prompt Injection.
- Setzen Sie menschliche Prüfung bei mittlerem Risiko oder besonders kritischen Fällen ein.
- Das Feld
evolink_summary.risk_levelvon EvoLink vereinfacht die Freigabe- / Prüfungs- / Blockierungslogik.
Content-Moderation ist nicht dasselbe wie Agenten-Sicherheit
Content-Moderation hilft dabei, schädliche Texte oder Bilder zu erkennen. Sie kann das Risiko unsicherer Prompts, schädlicher Ausgaben und richtlinienwidriger Nutzerinhalte verringern.
Agenten-Sicherheit geht weiter. Dazu gehören Prompt Injection, Tool-Berechtigungen, Datenzugriff, menschliche Freigaben, strukturierte Ausgaben, Evaluierungen, Protokollierung und Workflow-Design.
OpenAIs Leitfaden zur Agenten-Sicherheit empfiehlt die Kombination von Techniken wie Leitplanken, Tool-Freigaben, Trace-Bewertung, Evaluierungen und strukturiertem Workflow-Design. OWASP stuft Prompt Injection ebenfalls als eigenständiges LLM-Sicherheitsrisiko ein, das zu Datenlecks, unbeabsichtigten Aktionen oder Tool-Missbrauch führen kann.
Quellen:
Das Fazit: Moderation ist eine Leitplanke. Sie sollte nicht die einzige sein.
Schicht 1: Eingabemoderation
Die Eingabemoderation prüft die Nachricht des Nutzers, bevor sie Ihr Modell erreicht.
Nutzen Sie sie, um Folgendes abzufangen:
- eindeutig schädliche Anfragen
- richtlinienwidrige Nutzernachrichten
- beleidigende oder belästigende Texte
- unsichere Bild-Uploads
- Prompts, die nach unzulässigen Inhalten fragen
Die Eingabemoderation ist nützlich, weil sie offensichtlich unsichere Anfragen erst gar nicht in den Modell-Workflow gelangen lässt.
def handle_user_message(user_input: str):
input_check = client.moderations.create(
model="evolink-moderation-1.0",
input=user_input
)
if input_check.evolink_summary.risk_level == "high":
return {
"status": "blocked",
"message": "I can't help with that request."
}
return run_chatbot(user_input)Wichtige Einschränkung: Die Eingabemoderation ist kein vollständiger Schutz gegen Prompt Injection. Angreifer können indirekte Prompts, kodierten Text, Bilder, externe Dokumente oder Tool-Ausgaben nutzen, um Agenten im späteren Verlauf des Workflows zu beeinflussen.
Schicht 2: Ausgabemoderation
Die Ausgabemoderation prüft die Modellantwort, bevor sie den Nutzer erreicht.
Nutzen Sie sie, um Folgendes abzufangen:
- unsichere generierte Inhalte
- richtlinienwidrige Antworten
- schädliche Ratschläge in sensiblen Bereichen
- Antworten, die trotz harmlos wirkender Eingabe durchgeschlüpft sind
def safe_chat(user_input: str):
input_check = moderate(user_input)
if input_check.evolink_summary.risk_level == "high":
return "I can't help with that request."
answer = llm.generate(user_input)
output_check = moderate(answer)
if output_check.evolink_summary.risk_level == "high":
return "I generated a response that needs to be revised. Please try rephrasing."
return answerDie Ausgabemoderation ist besonders wichtig für öffentliche Chatbots, KI-Copiloten und Workflows zur Inhaltsgenerierung, bei denen die Modellantwort für Nutzer sichtbar wird.
Schicht 3: Tool-Call-Validierung
Bei KI-Agenten sind Tool-Aufrufe oft die risikoreichste Schicht.
Wenn ein Agent E-Mails versenden, Datenbanken abfragen, Tickets aktualisieren, APIs aufrufen oder Dateien schreiben kann, sollte der Tool-Aufruf vor der Ausführung validiert werden. Das ist nicht nur Moderation -- es ist Autorisierung und Richtliniendurchsetzung.
Validieren Sie:
- den Tool-Namen
- den erlaubten Benutzer- oder Kontobereich
- erforderliche menschliche Freigabe
- erlaubte Parameterwerte
- Lese- vs. Schreiboperationen
- externe Empfänger
- destruktive Aktionen
- das Risiko von Datenexfiltration
def validate_tool_call(tool_name: str, args: dict, user_context: dict):
if tool_name == "send_email":
if not args["to"].endswith("@company.com"):
return False, "External email requires approval."
if tool_name == "database_query":
query = args.get("query", "")
forbidden = ["DROP ", "DELETE ", "TRUNCATE "]
if any(word in query.upper() for word in forbidden):
return False, "Destructive database operation blocked."
if tool_name == "refund_customer":
if args["amount"] > user_context["approval_limit"]:
return False, "Refund amount requires human approval."
return True, NoneOpenAIs Leitfaden zur Agenten-Sicherheit empfiehlt außerdem, Tool-Freigaben für MCP-Tools aktiviert zu lassen, damit Endnutzer Operationen prüfen und bestätigen können.
Schicht 4: Freigabe / Prüfung / Blockierung
Binäre sicher/unsicher-Moderation ist in der Regel zu grob. Ein praxistauglicheres Muster in der Produktion sieht so aus:
| Risiko | Aktion |
|---|---|
| Niedrig | Freigabe |
| Mittel | Zur Prüfung einreihen, warnen oder Verbreitung einschränken |
| Hoch | Blockierung oder Widerspruchsmöglichkeit verlangen |
evolink_summary.risk_level zurück, das genau für diese Art von Routing konzipiert ist.def route_by_risk(content: str):
result = client.moderations.create(
model="evolink-moderation-1.0",
input=content
)
risk = result.evolink_summary.risk_level
if risk == "high":
log_block(result)
return {"action": "block"}
if risk == "medium":
queue_for_review(content, result)
return {"action": "review"}
return {"action": "allow"}Vollständiges Chatbot-Moderationsmuster
Hier ist ein praxisnahes End-to-End-Muster:
def handle_chatbot_turn(user_input: str, user_context: dict):
# 1. Moderate input
input_route = route_by_risk(user_input)
if input_route["action"] == "block":
return "I can't help with that request."
if input_route["action"] == "review":
log_review_event("input", user_input)
# 2. Generate model response and proposed tool calls
agent_result = agent.run(user_input, user_context)
# 3. Validate tool calls before execution
for call in agent_result.tool_calls:
ok, reason = validate_tool_call(call.name, call.args, user_context)
if not ok:
log_security_event(call, reason)
return "That action requires additional review."
# 4. Execute approved tools
tool_outputs = execute_tool_calls(agent_result.tool_calls)
# 5. Generate final response
final_answer = agent.format_response(tool_outputs)
# 6. Moderate output
output_route = route_by_risk(final_answer)
if output_route["action"] == "block":
return "I need to revise that response."
if output_route["action"] == "review":
queue_for_review(final_answer, output_route)
return final_answerDie konkrete Implementierung wird variieren, aber die Struktur bleibt stabil: Eingabe prüfen, Aktionen einschränken, Ausgabe prüfen und Entscheidungen protokollieren.
Umgang mit Fehlalarmen
Fehlalarme (False Positives) sind unvermeidlich. Das Ziel ist, Schaden zu reduzieren, ohne legitime Nutzer zu oft zu blockieren.
Nutzen Sie eine Prüfwarteschlange für:
- Inhalte mit mittlerem Risiko
- unklaren Kontext
- richtliniensensible Kategorien
- besonders wichtige Nutzer oder Aktionen mit hoher Tragweite
- Widersprüche
Protokollieren Sie jede Moderationsentscheidung mit genügend Kontext für spätere Analyse:
- Content-Hash
- Nutzer-ID oder Konto-ID
- Risikostufe
- ausgelöste Kategorien
- durchgeführte Aktion
- Prüfer-Überschreibung
- Zeitstempel
Vermeiden Sie die Protokollierung sensibler Rohinhalte, sofern Sie keine klare Aufbewahrungs- und Datenschutzrichtlinie haben.
Was Sie intern versprechen sollten
Versprechen Sie nicht, dass Moderation einen Chatbot "zu 100 % sicher" macht.
Ein realistischeres Versprechen lautet:
- Schädliche Eingaben werden vor der Modellausführung geprüft.
- Modellausgaben werden vor der Anzeige geprüft.
- Tool-Aufrufe von Agenten werden vor der Ausführung validiert.
- Fälle mit hohem Risiko oder unklarer Einschätzung können an Menschen weitergeleitet werden.
- Protokolle und Prüfergebnisse werden zur Verbesserung der Schwellenwerte genutzt.
Das ist eine realistische Produktionshaltung.
Häufige Fehler
Fehler 1: Nur Eingaben moderieren
Eingabeprüfungen sind nützlich, aber das Modell kann trotzdem unsichere Ausgaben erzeugen. Prüfen Sie Ausgaben, bevor Sie sie den Nutzern anzeigen.
Fehler 2: Prompts als Sicherheitsgrenze behandeln
System-Prompts steuern das Verhalten, sollten aber nicht die einzige Sicherheitsschicht sein. Nutzen Sie Tool-Berechtigungen, strukturierte Workflows und Freigabeprozesse.
Fehler 3: Agenten Tools ohne Validierung ausführen lassen
Validieren Sie Tool-Aufrufe immer außerhalb des Modells. Das Modell sollte Aktionen vorschlagen; Ihre Anwendung entscheidet, ob die Aktion erlaubt ist.
Fehler 4: Jeden unsicheren Fall blockieren
Zu strenge Systeme führen zu Frustration bei den Nutzern. Leiten Sie unsichere Fälle zur Prüfung weiter, anstatt sie immer zu blockieren.
Fehler 5: Keine Protokolle führen
Ohne Protokolle können Sie weder Schwellenwerte optimieren noch Vorfälle untersuchen oder Fehlalarme nachvollziehen.
Checkliste zur Implementierung
- Benutzereingaben vor Modellaufrufen prüfen.
- Modellausgaben vor der Anzeige prüfen.
- Tool-Aufrufe von Agenten vor der Ausführung validieren.
- Routing nach Freigabe / Prüfung / Blockierung einrichten.
- Inhalte mit mittlerem Risiko zur Prüfung einreihen.
- Nutzermeldungen und Widerspruchsmöglichkeiten bereitstellen.
- Risikostufen, Kategorien, Aktionen und Prüfer-Überschreibungen protokollieren.
- Sensible Rohinhalte nur bei Bedarf speichern.
- Mit echten Beispielen aus Ihrem Produkt testen.
- Schwellenwerte nach Erhalt von Produktionsdaten überprüfen.
FAQ
Sollte ich Chatbot-Eingaben oder -Ausgaben moderieren?
Beides. Die Eingabemoderation kann unsichere Anfragen abfangen, bevor sie das Modell erreichen. Die Ausgabemoderation kann unsichere generierte Inhalte abfangen, bevor Nutzer sie sehen.
Verhindert Content-Moderation Prompt Injection?
Nein. Moderation kann einige unsichere oder verdächtige Inhalte erkennen, aber Prompt Injection erfordert breitere Abwehrmaßnahmen wie Tool-Validierung, strukturierte Ausgaben, minimale Berechtigungen, menschliche Freigaben und Workflow-Isolation.
Wo sollte ich die Moderation in einem KI-Agenten platzieren?
Platzieren Sie die Moderation vor dem Modell für Benutzereingaben, vor der Anzeige für Modellausgaben, und kombinieren Sie sie mit einer Tool-Call-Validierung, bevor der Agent eine Aktion ausführt.
Wie hilft EvoLink bei der Chatbot-Moderation?
evolink_summary.risk_level, der es erleichtert, Chatbot-Inhalte in Freigabe-, Prüfungs- oder Blockierungs-Workflows zu leiten.Brauche ich trotzdem menschliche Prüfung?
Für Produktionssysteme: ja. Menschliche Prüfung ist wichtig für Widersprüche, Fälle mit mittlerem Risiko, Richtlinienänderungen und Entscheidungen mit hoher Tragweite.
Verwandte Moderationsleitfäden
- OpenAI Moderation API Pricing: Is It Free? Limits and Alternatives
- Image Moderation API Guide: How to Filter Unsafe User-Uploaded Images
- omni-moderation-latest Explained: OpenAI Moderation API Guide
- Best Content Moderation APIs and Tools for Developers


