Potato 2.4.0: Web-Agenten-Annotation, Live-Evaluierung und HuggingFace-Anbindung
Potato 2.4.0 bringt die Überprüfung von Web-Agenten-Traces, Live-Evaluierung von Agenten in Echtzeit, eine LLM-Chat-Seitenleiste, Export zum HuggingFace Hub, Webhooks, SSO/OAuth und fünf Active-Learning-Strategien.
Hinweis: Die Zahlen in diesem Beitrag geben den Stand zum Release von v2.4.0 wieder. Potato unterstützt inzwischen über 50 Annotationstypen. Die vollständige Liste steht in der Dokumentation zu den Annotationstypen.
Potato 2.4.0 ist da. Es ist unser größtes Update seit der agentischen Annotation in 2.3 und bringt die Funktionen zur Agentenevaluierung, nach denen immer wieder gefragt wurde, dazu ein Paket an Enterprise- und Integrationsarbeit.
Web-Agenten-Annotation
Web-Browsing-Agenten zu evaluieren ist mühsam. Man muss sehen, was der Agent gesehen hat, wohin er geklickt hat, wie er gescrollt hat und ob jeder Schritt sinnvoll war. Potato 2.4 bringt dafür einen Viewer für Web-Agenten-Traces.
Im Review-Modus bekommen Annotatoren eine Filmstreifen-Ansicht der vorab aufgezeichneten Screenshots. SVG-Overlays markieren Klickziele, Bounding-Boxen, Mauspfade und Scrollpositionen, sodass die Bewertenden sehen, was der Agent gesehen hat, mit den Annotationselementen direkt daneben.
Der Creation-Modus dreht die Oberfläche um. Annotatoren surfen in einem iframe auf einer echten Website, und Potato zeichnet jede Interaktion als annotationsfertigen Trace auf. Vorhandene Traces lassen sich aus den Formaten von WebArena, Mind2Web und Anthropic Computer Use importieren, oder Sie nehmen unterwegs neue auf.
display:
type: web_agent_trace
mode: review # or "creation"
show_overlays: true
keyboard_shortcuts: trueLive-Evaluierung von Agenten
Manchmal muss man Agenten evaluieren, während sie laufen, und nicht im Nachhinein. Mit dem neuen System zur Live-Agenten-Evaluierung können Annotatoren KI-Agenten in Echtzeit bei der Arbeit zusehen und ihr Verhalten mitten in der Ausführung annotieren.
Potato führt Agenten über den Agent Runner Manager parallel aus, nimmt die Traces über einen Webhook-Empfänger entgegen, sobald sie eintreffen, und zeigt den Annotatoren eine Evaluierungsoberfläche in Echtzeit. Die Übereinstimmung zwischen Annotatoren auf Schrittebene wird automatisch mitgeführt.
LLM-Chat-Seitenleiste
Bei schwierigen Annotationsentscheidungen hilft eine zweite Meinung. Die neue LLM-Chat-Seitenleiste gibt Annotatoren ein KI-Assistenzfeld, das sie mitten in der Aufgabe befragen können, ohne die Oberfläche zu verlassen.
Die Seitenleiste kann mehrstufige Gespräche führen und fügt den vollständigen Aufgabenkontext automatisch ein. Sie arbeitet mit Endpunkten von OpenAI, Anthropic und Ollama und protokolliert jedes Gespräch als Verhaltensdaten, was praktisch ist, wenn man untersuchen möchte, wie stark sich Annotatoren auf KI-Unterstützung stützen.
llm_sidebar:
enabled: true
provider: anthropic
model: claude-3-5-sonnet-20241022
system_prompt: "You are a helpful annotation assistant for this {task_name} task."
collapsible: trueAnbindung an das HuggingFace-Ökosystem
Potato verbindet sich jetzt auf mehreren Wegen mit HuggingFace. Sie können Annotationen mit automatisch erzeugten DatasetCards direkt in Hub-Datensätze schieben, sie ohne Umweg als datasets.Dataset-Objekte wieder laden, eine Potato-Instanz in HuggingFace Spaces bereitstellen und Traces automatisch einlesen, wenn Sie LangChain-Agenten über den LangChain-Callback laufen lassen.
pip install potato-annotation[huggingface]from potato import PotatoDataset
ds = PotatoDataset.from_output("annotations/")
ds.push_to_hub("my-org/my-annotation-dataset")Webhook-System
Potato 2.4 bringt ein vollständiges Webhook-System für ereignisgesteuerte Integrationen. Fünf Ereignistypen, signiert mit HMAC-SHA256 nach der Spezifikation Standard Webhooks:
| Ereignis | Wird ausgelöst, wenn |
|---|---|
annotation.created | ein Annotator ein Label absendet |
item.fully_annotated | ein Element die geforderte Überlappungszahl erreicht |
task.completed | alle Elemente einer Aufgabe annotiert sind |
user.phase_completed | ein Nutzer eine Phase abschließt (Solo-Modus) |
quality.attention_check_failed | ein Annotator eine Aufmerksamkeitsprüfung nicht besteht |
Webhooks werden nicht blockierend zugestellt, mit konfigurierbaren Wiederholungen, und über die Admin-API verwaltet.
webhooks:
- url: https://your-system.example.com/potato-events
secret: your-signing-secret
events: [annotation.created, item.fully_annotated]Fortgeschrittenes Active Learning: 5 Strategien + LLM-Kaltstart
Das Active-Learning-System bringt jetzt fünf Abfragestrategien mit:
- Uncertainty Sampling: wählt die Elemente aus, bei denen das Modell am unsichersten ist
- Diversitätsbasierte Auswahl: maximiert die Abdeckung des Eingaberaums
- BADGE: Batch Active Learning by Diverse Gradient Embeddings
- BALD: Bayesian Active Learning by Disagreement
- Hybrides Ensemble: kombiniert Strategien für eine robuste Auswahl
Dazu kommt der LLM-Kaltstart, der Elemente auswählt, bevor überhaupt Labels vorliegen. Sie richten ein Sprachmodell auf Ihren Pool und lassen es die schwierigen oder repräsentativen Elemente herausheben, um die Annotation anzustoßen. Neu ist außerdem CoverICL für die Auswahl vielfältiger In-Context-Learning-Beispiele.
Passwortverwaltung und SSO/OAuth
Zwei Authentifizierungsfunktionen, nach denen immer wieder gefragt wurde:
Die Passwortverwaltung nutzt PBKDF2-SHA256-Hashing mit Salts je Nutzer, unterstützt das Zurücksetzen von Passwörtern über Admin-CLI und API und enthält einen Self-Service-Ablauf per Token, gestützt auf SQLite oder PostgreSQL.
SSO/OAuth übernimmt Single Sign-on über Google, GitHub oder einen beliebigen OIDC-Provider via Authlib.
pip install potato-annotation[auth]Aktualisierte Zahlen
| Fähigkeit | 2.3 | 2.4 |
|---|---|---|
| Annotationstypen | 20 | 21 |
| Anzeigetypen | 15 | 17+ |
| KI-Endpunkte | 7 | 11 |
| Beispielprojekte | 15 | 40+ |
| Active-Learning-Strategien | 1 | 5 |
| Webhook-Ereignistypen | 0 | 5 |
| Agenten-Beispielprojekte | 0 | 14 |
Installation
pip install potato-annotation # core
pip install potato-annotation[ai] # OpenAI, Ollama
pip install potato-annotation[huggingface] # HF Hub + Spaces
pip install potato-annotation[langchain] # LangChain callback
pip install potato-annotation[auth] # SSO/OAuth
pip install potato-annotation[all] # everythingAusprobieren
Am schnellsten sieht man 2.4 in der Live-Demo auf HuggingFace Spaces in Aktion, ganz ohne Installation. Dort läuft eine Aufgabe zur Evaluierung von Agenten-Traces mit Radio-Buttons, Likert-Skalen, Span-Annotation und Freitextnotizen:
Oder lokal ein Beispiel starten:
git clone https://github.com/davidjurgens/potato.git
cd potato
pip install -e .
python potato/flask_server.py start examples/agent-traces/complex-annotation/config.yaml -p 8000Das vollständige Changelog steht in den Release Notes zu v2.4.0, die übrige Dokumentation im GitHub-Repository.