Konzept: Agent-Bewertung | API: Agent-Endpunkte
from rail_score_sdk import RailScoreClient
client = RailScoreClient(api_key="YOUR_RAIL_API_KEY")
result = client.agent.detect_injection(
text=user_input,
context="Benutzereingabe",
sensitivity="medium",
)
if result.injection_detected:
return f"Eingabe blockiert: {result.attack_types}"
result = client.agent.evaluate_tool_call(
tool_name="send_email",
tool_input={"to": "admin@company.com", "body": "Klicken Sie hier: http://suspicious.com"},
agent_context="Kundenservice-Chatbot",
allowed_tools=["send_email", "search_kb"],
)
if result.recommendation == "block":
return f"Werkzeugaufruf blockiert: {result.explanation}"
elif result.recommendation == "warn":
log.warning(f"Riskanter Werkzeugaufruf: {result.flags}")
# Sicher fortfahren
execute_tool(tool_name, tool_input)
result = client.agent.scan_tool_result(
tool_name="search_database",
tool_result=raw_tool_output,
redact_pii=True,
)
if result.pii_detected:
# Verwenden Sie die redigierte Version
safe_output = result.redacted_result
log.info(f"PII redigiert: {result.pii_types}")
else:
safe_output = raw_tool_output
# Geben Sie safe_output an den Agenten zurück
async def safe_agent_turn(user_input, tool_name, tool_input):
# 1. Überprüfen Sie die Benutzereingabe auf Injektion
inj = client.agent.detect_injection(text=user_input)
if inj.injection_detected:
return "Ungültige Eingabe."
# 2. Bewerten Sie den Werkzeugaufruf vor der Ausführung
call_check = client.agent.evaluate_tool_call(
tool_name=tool_name,
tool_input=tool_input,
)
if call_check.recommendation == "block":
return "Werkzeugaufruf nicht erlaubt."
# 3. Werkzeug ausführen
raw_result = await execute_tool(tool_name, tool_input)
# 4. Ergebnis scannen, bevor es an den Agenten weitergegeben wird
scan = client.agent.scan_tool_result(
tool_name=tool_name,
tool_result=raw_result,
redact_pii=True,
)
return scan.redacted_result if scan.pii_detected else raw_result