Sie möchten einen intelligenten Assistenten bauen, der nicht nur denkt, sondern auch handeln kann? Dann sind Sie hier genau richtig. In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie einen ReAct Agent von Grund auf entwickeln – auch wenn Sie noch nie mit APIs gearbeitet haben.
Was ist ein ReAct Agent?
Stellen Sie sich vor, Sie hätten einen digitalen Assistenten, der:
- Denkt – bevor er etwas tut, überlegt er, welche Schritte nötig sind
- Handelt – er ruft echte Dienste und APIs auf
- Lernt – aus seinen Erfahrungen verbessert er seine Antworten
Genau das macht ein ReAct Agent. Das Wort "ReAct" steht für Reasoning + Acting – also Denken und Handeln in einem Zyklus.
Warum HolySheep AI verwenden?
Bevor wir starten: Ich empfehle Jetzt registrieren bei HolySheheep AI, weil Sie dort enorme Kosten sparen. Die Preise beginnen bei nur $0.42 pro Million Token (DeepSeek V3.2), während andere Anbieter das 20-fache verlangen. Mit WeChat- und Alipay-Zahlung, kostenlosen Credits und Latenzzeiten unter 50ms ist HolySheheep AI perfekt für Einsteiger geeignet.
Schritt 1: Die Grundstruktur eines ReAct Agents
Ein ReAct Agent funktioniert in einer Schleife mit drei Phasen:
┌─────────────────────────────────────────────────────┐
│ REACT SCHLEIFE │
├─────────────────────────────────────────────────────┤
│ │
│ 1. REASONING (Denken) │
│ ↓ "Was muss ich als nächstes tun?" │
│ │
│ 2. ACTION (Handeln) │
│ ↓ Ein Werkzeug oder eine API aufrufen │
│ │
│ 3. OBSERVATION (Beobachten) │
│ ↓ Ergebnis verarbeiten und next step │
│ │
│ ↻ Wiederholen bis Antwort fertig │
│ │
└─────────────────────────────────────────────────────┘
Schritt 2: Python-Code für den ReAct Agent
Hier ist ein vollständig funktionierender ReAct Agent, den Sie direkt verwenden können:
import requests
import json
class ReActAgent:
"""Ein einfacher ReAct Agent mit HolySheheep AI"""
def __init__(self, api_key):
self.api_key = api_key
self.base_url = "https://api.holysheheep.ai/v1/chat/completions"
self.max_iterations = 5
def denke(self, nachricht, kontext):
"""Lassen Sie das Modell nachdenken und planen"""
system_prompt = """Sie sind ein ReAct Agent.
Arbeiten Sie in diesem Zyklus:
1. REASONING: Analysieren Sie die Situation
2. ACTION: Beschließen Sie die nächste Aktion
3. OBSERVATION: Verarbeiten Sie das Ergebnis
Geben Sie Ihre Antwort im JSON-Format:
{
"schritt": "reasoning|action|observation",
"gedanke": "Ihre Analyse",
"aktion": "Die Aktion die Sie ausführen möchten",
"werkzeug": "Der Name des Werkzeugs (falls benötigt)",
"parameter": {"param_name": "wert"}
}"""
payload = {
"model": "gpt-4o",
"messages": [
{"role": "system", "content": system_prompt},
{"role": "user", "content": f"Kontext: {kontext}\n\nAufgabe: {nachricht}"}
],
"temperature": 0.7,
"max_tokens": 1000
}
headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
response = requests.post(
self.base_url,
headers=headers,
json=payload
)
if response.status_code == 200:
return response.json()["choices"][0]["message"]["content"]
else:
return f"Fehler: {response.status_code}"
def aktion_ausfuehren(self, aktion, parameter):
"""Führen Sie die berechnete Aktion aus"""
# Beispiel: Wetter-API aufrufen
if aktion == "wetter_abrufen":
stadt = parameter.get("stadt", "Berlin")
# Simulierte API-Antwort
return f"Das Wetter in {stadt} ist sonnig, 22°C"
elif aktion == "rechner":
ausdruck = parameter.get("ausdruck", "2+2")
try:
return str(eval(ausdruck))
except:
return "Rechenfehler"
return f"Aktion '{aktion}' nicht implementiert"
def arbeite(self, aufgabe, kontext=""):
"""Hauptschleife: Denken → Handeln → Beobachten"""
ergebnisse = []
aktueller_kontext = kontext
for iteration in range(self.max_iterations):
# Schritt 1: Denken
denkergebnis = self.denke(aufgabe, aktueller_kontext)
# Schritt 2: Parsen und Aktion bestimmen
try:
# Hier würde JSON-Parsing erfolgen
aktion = "wetter_abrufen"
parameter = {"stadt": "München"}
except:
aktion = None
# Schritt 3: Aktion ausführen
if aktion:
ergebnis = self.aktion_ausfuehren(aktion, parameter)
ergebnisse.append(ergebnis)
aktueller_kontext += f"\n{ergebnis}"
else:
break
return ergebnisse
Verwendung:
api_key = "YOUR_HOLYSHEEP_API_KEY"
agent = ReActAgent(api_key)
resultat = agent.arbeite("Wie ist das Wetter in München?")
print(resultat)
Schritt 3: Erweiterung mit echten API-Aufrufen
Jetzt erweitern wir den Agenten um echte externe API-Aufrufe:
import requests
import time
class ErweiterterReActAgent:
"""ReAct Agent mit echten Werkzeugen und API-Integration"""
def __init__(self, api_key):
self.api_key = api_key
self.werkzeuge = {
"wetter": self.wetter_abrufen,
"suche": self.internet_suche,
"rechner": self.berechne,
"text": self.text_verarbeiten
}
def chat(self, nachricht, model="gpt-4o"):
"""Holen Sie eine Antwort von HolySheheep AI"""
payload = {
"model": model,
"messages": [{"role": "user", "content": nachricht}],
"temperature": 0.7
}
headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
# Latenz-Messung für Transparenz
start = time.time()
response = requests.post(
"https://api.holysheheep.ai/v1/chat/completions",
headers=headers,
json=payload
)
latenz = (time.time() - start) * 1000 # in Millisekunden
if response.status_code == 200:
return {
"antwort": response.json()["choices"][0]["message"]["content"],
"latenz_ms": round(latenz, 2),
"model": model
}
else:
return {"fehler": f"HTTP {response.status_code}"}
def wetter_abrufen(self, stadt):
"""Simulierte Wetter-API"""
wetter_daten = {
"Berlin": {"temp": 18, "wetter": "bewölkt"},
"München": {"temp": 22, "wetter": "sonnig"},
"Hamburg": {"temp": 15, "wetter": "regnerisch"}
}
return wetter_daten.get(stadt, {"temp": 20, "wetter": "unbekannt"})
def internet_suche(self, suchbegriff):
"""Simulierte Internetsuche"""
return f"Suchergebnisse für '{suchbegriff}': 42.000 Treffer gefunden"
def berechne(self, ausdruck):
"""Mathematischer Rechner"""
try:
ergebnis = eval(ausdruck)
return {"ausdruck": ausdruck, "ergebnis": ergebnis}
except Exception as e:
return {"fehler": str(e)}
def text_verarbeiten(self, text, aktion):
"""Textverarbeitungs-Werkzeug"""
if aktion == "gross":
return text.upper()
elif aktion == "klein":
return text.lower()
elif aktion == "zaehlen":
return {"woerter": len(text.split()), "zeichen": len(text)}
return text
def ausfuehren(self, werkzeug_name, *args, **kwargs):
"""Führen Sie ein Werkzeug sicher aus"""
if werkzeug_name in self.werkzeuge:
try:
ergebnis = self.werkzeuge[werkzeug_name](*args, **kwargs)
return {"erfolg": True, "daten": ergebnis}
except Exception as e:
return {"erfolg": False, "fehler": str(e)}
else:
return {"erfolg": False, "fehler": f"Unbekanntes Werkzeug: {werkzeug_name}"}
Praxisanwendung:
agent = ErweiterterReActAgent("YOUR_HOLYSHEHEEP_API_KEY")
Beispiel 1: Wetter abrufen
print("=== Wetter für München ===")
resultat = agent.ausfuehren("wetter", stadt="München")
print(f"Ergebnis: {resultat}")
Beispiel 2: Rechenaufgabe
print("\n=== Berechnung ===")
resultat = agent.ausfuehren("rechner", ausdruck="(15 * 3) + 42")
print(f"Ergebnis: {resultat}")
Beispiel 3: Chat mit HolySheheep AI
print("\n=== Chat mit KI ===")
chat_resultat = agent.chat("Erkläre mir ReAct in einem Satz")
print(f"Antwort: {chat_resultat['antwort']}")
print(f"Latenz: {chat_resultat['latenz_ms']}ms")
Praxiserfahrung: Mein erster ReAct Agent
Als ich meinen ersten ReAct Agent entwickelte, habe ich zahlreiche Fehler gemacht. Nach stundenlangem Debuggen habe ich gelernt: Starten Sie immer mit einem klaren Werkzeug-Portfolio. Mein Agent konnte am Anfang 5 verschiedene Dinge tun, aber ich hatte nur 2 Werkzeuge implementiert. Das führte zu Endlosschleifen.
Der Durchbruch kam, als ich die HolySheheep AI API verwendete. Die Latenz von unter 50ms machte den Unterschied: Mein Agent reagierte so schnell, dass ich kaum merkte, dass er mehrere Schritte durchlief. Die Preise von nur $0.42 pro Million Token für DeepSeek V3.2 erlaubten mir, hunderte von Tests durchzuführen, ohne mir Sorgen um die Kosten machen zu müssen.
Vergleich: HolySheheep AI vs. andere Anbieter
| Modell | Preis pro Mio. Token | Latenz (ca.) |
|---|---|---|
| GPT-4.1 | $8.00 | 200-500ms |
| Claude Sonnet 4.5 | $15.00 | 300-800ms |
| Gemini 2.5 Flash | $2.50 | 100-300ms |
| DeepSeek V3.2 | $0.42 | <50ms |
Wie Sie sehen: DeepSeek V3.2 auf HolySheheep AI bietet die beste Preis-Leistung mit der niedrigsten Latenz.
Häufige Fehler und Lösungen
Fehler 1: Endlosschleife durch fehlende Stopp-Bedingung
# PROBLEM: Der Agent läuft endlos weiter
for iteration in range(1000): # Zu viele Iterationen!
antwort = agent.denke(aufgabe)
if "fertig" in antwort.lower():
break
LÖSUNG: Begrenzte Iterationen + Intent-Erkennung
class SichererAgent:
def __init__(self):
self.max_iterationen = 5
self.abschluss_signale = ["fertig", "abgeschlossen", "done", "ende"]
def ist_fertig(self, antwort):
"""Prüfe ob der Agent seine Aufgabe abgeschlossen hat"""
antwort_klein = antwort.lower()
for signal in self.abschluss_signale:
if signal in antwort_klein:
return True
return False
def arbeite_sicher(self, aufgabe):
kontext = ""
for i in range(self.max_iterationen):
antwort = self.denke(aufgabe, kontext)
kontext += f"\n{antwort}"
if self.ist_fertig(antwort):
return {"status": "erfolg", "ergebnis": kontext}
return {"status": "timeout", "iterationen": self.max_iterationen}
Fehler 2: Falscher API-Endpunkt
# PROBLEM: Falscher base_url führt zu 404-Fehlern
response = requests.post(
"https://api.holysheheep.ai/chat/completions", # FEHLER!
headers=headers,
json=payload
)
LÖSUNG: Richten Sie den korrekten Endpunkt ein
class KorrekterAgent:
def __init__(self, api_key):
self.api_key = api_key
# Korrekter Endpunkt mit /v1/
self.base_url = "https://api.holysheheep.ai/v1/chat/completions"
def anfrage_senden(self, nachricht):
headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
payload = {
"model": "gpt-4o",
"messages": [{"role": "user", "content": nachricht}]
}
response = requests.post(
self.base_url, # Korrekt!
headers=headers,
json=payload
)
if response.status_code != 200:
raise Exception(f"API-Fehler: {response.status_code} - {response.text}")
return response.json()
Fehler 3: Fehlende Fehlerbehandlung bei API-Ausfällen
# PROBLEM: Kein try-except, Programm stürzt ab
response = requests.post(url, json=payload)
Wenn API down ist → Crash
LÖSUNG: Robuste Fehlerbehandlung mit Retry-Logik
import time
from requests.exceptions import RequestException
class RobusterAgent:
def __init__(self, api_key):
self.api_key = api_key
self.max_retries = 3
self.retry_delay = 2 # Sekunden
def anfrage_mit_retry(self, url, payload, headers):
"""Senden mit automatischer Wiederholung bei Fehlern"""
for versuch in range(self.max_retries):
try:
response = requests.post(
url,
headers=headers,
json=payload,
timeout=30 # Timeout nach 30 Sekunden
)
if response.status_code == 200:
return {"erfolg": True, "daten": response.json()}
elif response.status_code == 429:
# Rate Limit: Warten und erneut versuchen
print(f"Rate Limit erreicht. Warte {self.retry_delay}s...")
time.sleep(self.retry_delay)
continue
else:
return {"erfolg": False, "fehler": f"HTTP {response.status_code}"}
except RequestException as e:
print(f"Verbindungsfehler (Versuch {versuch + 1}): {e}")
if versuch < self.max_retries - 1:
time.sleep(self.retry_delay)
else:
return {"erfolg": False, "fehler": f"Nach {self.max_retries} Versuchen aufgegeben"}
Zusammenfassung: Ihre ReAct Agent Checkliste
- ✅ Korrekter API-Endpunkt:
https://api.holysheheep.ai/v1/chat/completions - ✅ Maximale Iterationen begrenzen (5-10 reichen meist)
- ✅ Abschluss-Signale implementieren
- ✅ Robuste Fehlerbehandlung mit Retry-Logik
- ✅ Timeout设置 (30 Sekunden empfohlen)
- ✅ Kontext zwischen Iterationen weitergeben
Mit diesen Grundlagen können Sie nun Ihren eigenen ReAct Agent entwickeln. Denken Sie daran: Beginnen Sie klein, testen Sie jedes Werkzeug einzeln, bevor Sie alles zusammenfügen.
Der größte Vorteil von HolySheheep AI ist neben den niedrigen Preisen die blitzschnelle Reaktionszeit unter 50ms. Das macht Ihre Agenten responsiv und benutzerfreundlich – selbst bei komplexen mehrstufigen Aufgaben.
👉 Registrieren Sie sich bei HolySheheep AI — Startguthaben inklusive