Human-in-the-loop für CrewAI
Menschliche Entscheidungen für CrewAI-Agenten, auf dem Handy.
Ersetze CrewAIs human_input in der Konsole durch eine Freigabe auf dem Handy. Dein Agent wartet, bis dein Nutzer auf „Genehmigen“ oder „Ablehnen“ tippt.
Was CrewAI mitbringt
human_input=True an einer Aufgabe
Setzt du human_input=True an einer Aufgabe, hält die Crew an, sobald der Agent seine Ausgabe entworfen hat. Sie gibt sie aus und wartet auf Feedback über stdin. Das hilft bei der Entwicklung: Du siehst den Entwurf und kannst eingreifen, bevor der nächste Agent ihn übernimmt.
task = Task(
description="Draft the reply to the customer",
agent=support_agent,
human_input=True, # blocks on input() at the terminal
)Wo es nicht weitergeht
- Es liest stdin. Ein Container, Cronjob oder Queue-Worker hat keine entsprechende Eingabe. Der Aufruf hängt daher oder löst einen Fehler aus.
- Es hält die gesamte Crew an. Alle anderen Agenten warten untätig dahinter.
- Das Feedback geht als Zeichenfolge zurück an das Modell. Nichts dokumentiert, dass ein Mensch es geprüft hat.
- Nur die Person an diesem Terminal kann antworten, nie der Nutzer, den die Aktion betrifft.
Die Lösung
Pushary holt die Antwort deines Nutzers ein.
human_input wartet an einem Terminal. Pushary schickt die Frage stattdessen auf das Handy deines Nutzers, wartet auf Freigabe oder Ablehnung und speichert jede Antwort. Alles außer einem Ja weist den Agenten an, nicht fortzufahren.
connect() liefert den Link, den dein Nutzer einmal öffnet. make_ask_human_tool gibt dem Agenten ein fertiges CrewAI-Tool, das an diesen Nutzer gebunden ist. Ein durch Prompt-Injection manipuliertes Modell kann deshalb niemand anderen fragen. Der Agent ruft das Tool auf und wartet auf die Antwort. Ein Nein oder keine Antwort bedeutet: stoppen.
pip install pushary-crewaifrom crewai import Agent, Task, Crew
from pushary_crewai import connect, make_ask_human_tool
# Once per user: show them this link.
link = connect("user_123")
agent = Agent(
role="Ops",
goal="Ship safely",
backstory="Careful operator.",
tools=[make_ask_human_tool("user_123")], # asks this user only; no answer means no
)Frage im Code der riskanten Aktion, um sie zu sperren
Der Agent entscheidet selbst, wann er make_ask_human_tool aufruft. Das Tool ist daher optional. Eine Aufgabe mit „erst fragen“ verhindert keine Erstattung. Rufe ask_human im Code der riskanten Aktion auf und führe sie nur aus, wenn approved true ist.
from pushary_crewai import ask_human
d = ask_human("Approve this refund?", external_id="user_123", type="confirm")
if d["approved"]:
issue_refund()So funktioniert es
Von der Installation zur ersten Antwort
Verbinde deinen Nutzer einmal. Sichere den riskanten Schritt mit einer Freigabe ab. Pushary schickt die Frage, wartet auf die Antwort und speichert sie.
- 01
Adapter installieren
Führe pip install pushary-crewai aus und speichere deinen API-Schlüssel in PUSHARY_API_KEY.
- 02
Nutzer einmal verbinden
connect() mit deiner eigenen Nutzer-ID liefert einen Link. Dein Nutzer öffnet ihn einmal auf seinem Handy und installiert die kostenlose Pushary-App. Kein Konto, keine Zahlung.
- 03
Dem Agenten das Tool geben
Ergänze die Tools des Agenten um make_ask_human_tool(user_id) und entferne human_input=True. Für eine Erstattung oder Löschung rufst du ask_human direkt im Code dieser Aktion auf.
- 04
Auf die Antwort reagieren
Nur eine ausdrückliche Freigabe zählt. Ein Nein, eine abgelaufene Anfrage oder keine Antwort weisen den Agenten an, nicht fortzufahren.
Eine Frage kann ein Ja oder Nein verlangen, eine Auswahl aus einer Liste oder eine Texteingabe. Jede Antwort wird gespeichert.
Vor der Veröffentlichung
Stolperfallen bei CrewAI
- Lokal funktioniert es, im Produktivbetrieb hängt es
- Das ist das häufigste Thema im CrewAI-Support. human_input=True funktioniert auf dem Laptop und hängt beim ersten Lauf ohne angeschlossenes Terminal stillschweigend. Wenn deine Crew nach dem Deployment keine Ausgabe mehr liefert, ist das meist der Grund.
- Kickoff mit vielen Eingaben fragt zu jedem Eintrag
- kickoff_for_each mit einer human_input-Aufgabe fragt jeden einzelnen Eintrag nacheinander im Terminal ab. Zehn Eingaben ergeben zehn Fragen, für die niemand am Terminal sitzt.
- Prüfen ist nicht dasselbe wie Freigeben
- human_input gibt dem Agenten Feedbacktext zum Einarbeiten. Es verhindert nicht, dass die Aufgabe abgeschlossen wird. Darf die Aktion ohne Ja nicht laufen, brauchst du eine ausdrückliche Freigabe oder Ablehnung, bei der keine Antwort als Nein zählt.
Der Partner-Tarif
Dein Agent fragt deine Nutzer, nicht nur dich
Stelle deinen Nutzern deinen Agenten bereit. Jeder gibt dessen riskante Aktionen vom eigenen Handy aus frei, unter deiner Marke.
Deine Nutzer brauchen kein Pushary-Konto und zahlen nichts an uns.
Deine Nutzer antworten auf ihren eigenen Handys
Verbinde jeden Nutzer einmal über einen Link. Er installiert die kostenlose Pushary-App und antwortet vom Sperrbildschirm aus, ohne eigenes Konto.
Keine Antwort heißt Nein
Führe die Aktion nur nach einer ausdrücklichen Freigabe aus. Eine wartende, abgelaufene oder abgebrochene Anfrage zählt nie als Ja. Pushary behält jede Anfrage, damit dein Code sie nach einem Neustart wieder aufnehmen kann.
Erreicht sie auf dem Handy
Die App kommt zuerst, denn nur sie zeigt „Genehmigen“ und „Ablehnen“ auf dem Sperrbildschirm. Browser-Benachrichtigungen folgen danach. Du musst kein Zustellsystem bauen.
Jede Antwort gespeichert
Zu jeder Antwort wird gespeichert, wer wann geantwortet hat. Du kannst sie durchsuchen und exportieren. Mit einer Callback-URL geht jede Antwort außerdem als signierter Webhook an deinen Server.
FAQ
Fragen und Antworten
Hat CrewAI integriertes Human-in-the-loop?
Gibt es ein CrewAI-Paket für Pushary?
Wie stelle ich sicher, dass eine CrewAI-Freigabe im Zweifel sperrt?
Kann jeder meiner Endnutzer Freigaben auf seinem eigenen Handy erhalten?
Was kann ein Mensch außer Ja und Nein antworten?
Warum hängt human_input, wenn meine Crew im Produktivbetrieb läuft?
Lass deinen CrewAI-Agenten fragen, bevor er handelt.
Verbinde einen Nutzer einmal, frage mit einem Aufruf und führe die Aktion nur bei einem Ja aus. Jede Antwort wird gespeichert.
Start freePartner-Tarif, $99 im Monat. Deine Nutzer brauchen kein Pushary-Konto und zahlen nichts an uns.