DIE AKZEPTANZSCHICHT FÜR AGENTENARBEIT IM GROSSEN MASSSTAB
Agenten liefern Arbeit schneller aus, als jedes Team sie prüfen kann. Der Kritiker von SeaOtter bewertet jedes Artefakt und stößt Korrekturen an, bis es Ihre Policy passiert — Agent↔Kritiker, mit Maschinengeschwindigkeit.
IM AGENTENMAßSTAB
Ein Agent reicht Arbeit zur Bewertung ein. Es wird zu einem schnellen One‑Shot‑Durchgang geroutet — oder zu einem tiefen agentic Check, der die Arbeit in einer Sandbox ausführt und prüft. Ein adversariales Kritikmodell entscheidet, und Sie zahlen für den erforderlichen Compute. Dann herauszoomen: Tausende Agenten, parallel bewertet, synchron oder asynchron.
LOKALISIERTES FEEDBACK
Der Kritiker sagt nicht nur, dass etwas falsch ist. Er lokalisiert das Problem, sodass der Agent genau die Zeile, Seite, Folie, Zelle, Frame oder den Zeitstempel überarbeiten kann, der/die/das scheitert.
"Es könnte irgendwo in diesem Artefakt ein Problem geben."
hallucinated_api · hoch
self.tasks.add_item(task)add_item ist keine gültige Methode auf list; das führt zur Laufzeit zu einem Fehler. Erwartet: self.tasks.append(task).
Eine frühe, Holdout-verifizierte Messung der Fähigkeit unseres Kritikers, die exakte Spanne zu pinnen und die Datei zu benennen. Die Detektion befindet sich noch im aktiven Training; die Aussage bezieht sich auf die Lokalisierungsqualität, nicht auf generische Kritik.
EINREICHEN → BEWERTEN
Ein Agent sendet per POST die gerade erzeugte Arbeit, und SeaOtter bewertet sie gegen Ihre Acceptance-Policy. Kleine, schnelle Checks liefern das Urteil inline zurück. Schwerere Checks liefern eine Job‑ID, die der Agent abfragt, streamt oder per Webhook erhält — damit blockiert eine lange Prüfung nie den anfragenden Agenten.
FÜR PERSONEN
Senden Sie Arbeit an das SeaOtter-Postfach und erhalten Sie eine bewertete OtterScore-Antwort, oder fügen Sie sie im Web ein und bewerten Sie im Browser. Kein Agent erforderlich.
FÜR AGENTEN
Verdrahten Sie jeden Agenten über HTTP oder MCP, damit er seine eigene Ausgabe in der Schleife bewertet — gleiche Policy, gleicher OtterScore, mit Maschinengeschwindigkeit. Der 60‑Sekunden‑Schnellstart steht direkt unten.
SYNCHRON
POST der Arbeit, Verbindung halten, das OtterScore-Urteil — Band, Mängel, Anker, Upgrades — in derselben Antwort erhalten. Am besten für einen One‑Shot‑Check in der inneren Schleife eines Agenten, der die Antwort vor dem nächsten Schritt braucht.
POST /api/v1/eval/score → 200 { band, flaws[], upgrades[] }
ASYNCHRON
POST der Arbeit, sofort eine Job‑ID erhalten, dann den Job pollen, den Ergebnisstream abonnieren oder einen Webhook registrieren. Am besten für einen agentic Check, der die Arbeit in einer Sandbox über mehrere Durchgänge ausführt — der erzeugende Agent macht weiter und wird zurückgerufen, wenn das Urteil eintrifft.
POST /api/v1/eval/jobs → 202 { job_id } · poll · stream (SSE) · webhook
Sync · One‑Shot
Ein adversarieller Durchgang, inline zurückgegeben. Günstig und pauschal bepreist.
curl -s https://dev-api.seaotter.ai/api/v1/eval/score \
-H "Authorization: Bearer $OTTER_KEY" -H 'Content-Type: application/json' \
-d '{ "mode":"one_shot", "modality":"text",
"policy_id":"acme-prod-acceptance",
"artifact_parts":[{"mime_type":"text/plain","text":"..."}] }'
# 200 { "band":"route_to_fix", "flaws":[...], "upgrades":[...] }Async · agentic
Der Kritiker führt die Arbeit in einer Sandbox aus und prüft sie über mehrere Durchgänge.
POST /api/v1/eval/jobs
{ "mode":"agentic", "modality":"code",
"policy_id":"acme-prod-acceptance",
"artifact_ref":"gs://...", "max_passes":6,
"webhook":"https://acme.internal/otter-callback" }
# 202 { "job_id":"job_8f21", "status":"running" }
GET /api/v1/eval/jobs/job_8f21 # poll, or stream, or await the webhookGleiche Policy, gleicher OtterScore, gleicher signierter Audit-Datensatz — unabhängig vom Transport, den der Agent wählt.
FÜR AGENTEN · MCP SCHNELLSTART
Drei Schritte: Schlüssel erzeugen, einen MCP-Server hinzufügen, dann ruft Ihr Agent otter_score / otter_iterate in seiner eigenen Schleife auf — gleicher OtterScore, gleiche Acceptance-Policy, mit Maschinengeschwindigkeit. Der Kritiker bewertet; Ihr Agent überarbeitet gegen die Mängel, bis das Band passiert. Das ist die Schleife, die Sie oben in der Flotte gesehen haben: Jedes markierte Artefakt (route_to_fix, der gelbe Bogen) tritt über otter_iterate erneut ins Gate ein und wird erst ausgeliefert, wenn ready_to_ship true ist. Kein Mensch in der inneren Schleife — die benannte Freigabe ist das letzte Gate, nicht das einzige.
Ein angemeldeter Organisationsnutzer erzeugt einmal den Eval-Schlüssel des Agenten. Das Geheimnis sk-otter-… wird genau einmal angezeigt; übergeben Sie es dem Agenten.
Fügen Sie einen otterloop-Server in .mcp.json (Claude / Cursor) oder config.toml (Codex) ein. Der Agent erhält schreibgeschützte Kritiker-Tools, die er auto-approven kann.
Der Agent reicht Arbeit ein, liest verankerte Mängel, überarbeitet und reicht erneut ein — Schleife, solange ready_to_ship false ist. Den Kritiker zu überstehen IST das Produkt.
1 — Registrieren
POST /api/v1/agent-keys mit einem angemeldeten User-JWT. Das Geheimnis wird einmal zurückgegeben — oder klicken Sie „Eval-API-Schlüssel erzeugen“ in der Entwicklerkonsole.
curl -s -X POST https://dev-api.seaotter.ai/api/v1/agent-keys \
-H "Authorization: Bearer $SEAOTTER_USER_JWT" \
-H 'Content-Type: application/json' \
-d '{"name":"my-agent"}'
# -> { "id":"...", "key":"sk-otter-...",
# "key_prefix":"sk-otter-abcde", "created_at":"..." }
# Hand `key` to the agent as OTTERLOOP_API_KEY.2 — MCP-Server hinzufügen
.mcp.json (Claude / Cursor) — Codex nutzt [mcp_servers.otterloop] in config.toml. Einmal installieren: pip install "otterloop[mcp]". Prod-Basis: https://api.seaotter.ai.
{
"mcpServers": {
"otterloop": {
"command": "python",
"args": ["-m", "otterloop.mcp_server"],
"env": {
"OTTERLOOP_API_URL": "https://dev-api.seaotter.ai",
"OTTERLOOP_API_KEY": "sk-otter-...",
"OTTERLOOP_POLICY_ID": "enterprise-default"
}
}
}
}
# tools: otter_list_policies · otter_score · otter_iterate
# otter_score_workflow · otter_get_feedback_artifact3 — Bewerten & iterieren
Der Agent führt submit → flaws → revise → resubmit vollständig über MCP aus. Behandeln Sie das Urteil als maßgeblich — NICHT selbst bewerten.
# submit your work -> authoritative verdict
v = otter_score(
work="...the artifact your agent produced...",
modality="text",
prompt="Draft the Q3 incident postmortem",
policy_id="enterprise-default")
# -> { run_id, score, band:"route_to_fix",
# flaws:[{criterion,severity,detail,anchor}],
# upgrades:[...], ready_to_ship:false }
# revise against flaws[]/upgrades[], then re-submit the SAME run
d = otter_iterate(
run_id=v["run_id"],
work="...revised draft addressing the flaws...",
prompt="addressed sourcing + tone")
# -> { run_id, verdict:{band:"ship",...},
# delta:{resolved_flaws,new_flaws,persisted_flaws,
# score_change:+18.0}, ready_to_ship:true }
# keep iterating while ready_to_ship is false.ITERIEREN → KONVERGIEREN
Was otter_iterate zurückgibt — dieselbe route_to_fix → ship‑Konvergenz, die die Flotte oben animiert, eingefroren als lesbare Delta-Ansicht.
resolved_flaws ↓ 2 · score_change ↑ +18.0 · ready_to_ship → true
Reines-HTTP-Äquivalent (kein MCP): POST /api/v1/eval/runs → { run_id, first_iteration.critic_verdict }, dann POST /api/v1/eval/runs/{run_id}/iterate { "decision":"re_prompt", "new_artifact_parts":[…] } → { verdict, delta }. Ein Kritiker-Ausfall schlägt GESCHLOSSEN fehl (band:quarantine) — niemals ein stilles Bestehen.
ZWEI PRÜFMODI
Nicht jede Ausgabe braucht die gleiche Prüfungstiefe. Ein One‑Shot‑Check ist ein einzelner adversarieller Durchgang — schnell, wenig Compute, inline zurückgegeben. Ein agentic Check führt die Arbeit in einer entsorgbaren, internetfähigen Sandbox aus und prüft sie über mehrere Durchgänge — langsamer, mehr Compute, asynchron zurückgegeben. Routen Sie günstige Arbeit zu One‑Shot und hochkritische Arbeit zu agentic — unter derselben Policy.
| One‑Shotein adversarieller Durchgang | AgenticSandbox, mehrfach | |
|---|---|---|
| Was der Kritiker tut | Liest Artefakt, Policy, Prompt und Referenzen in einem Durchgang. | Führt die Arbeit in einer entsorgbaren Sandbox aus und prüft sie über mehrere Durchgänge. |
| Latenz | Inline — Urteil in der Antwort. | Asynchron — Job‑ID, dann pollen, streamen oder Webhook. |
| Compute | Niedrig und vorhersagbar. | Höher — skaliert mit Durchgängen und Sandbox‑Zeit. |
| Am besten für | Checks in der inneren Schleife, hochvolumige Entwürfe, schnelle Gates. | Code, der laufen muss; Behauptungen, die reproduziert werden müssen; Arbeit mit hohem Auswirkungsradius. |
| Abrechnung | Günstig, pauschal pro Check. | Nach Compute und Sandbox‑Zeit abgerechnet. |
Beide Modi liefern dieselbe OtterScore-Urteilsform und schreiben denselben signierten Audit-Datensatz.
NUTZUNGSBASIERTE PREISE
Abgerechnet wird die Bewertung, die Sie tatsächlich ausführen, nicht eine Sitzanzahl. Ein One‑Shot‑Check ist günstig und pauschal; ein agentic Check wird nach dem benötigten Compute und der Sandbox‑Zeit abgerechnet. So wird die Bewertung jeder Ausgabe — und der gesamten Flotte — wirtschaftlich, statt die Prüfung auf eine Stichprobe zu rationieren.
ONE‑SHOT‑CHECK
Günstig, pauschal
pro Check, pauschal
Ein einzelner adversarieller Durchgang, inline zurückgegeben. So günstig bepreist, dass er in jeder inneren Agentenschleife hochvolumige Entwürfe bewerten kann.
AGENTIC CHECK
Nach Compute abgerechnet
nach Compute + Sandbox-Zeit
Ein sandboxed, mehrstufiges Review. Sie zahlen für die Durchgänge und Sandbox‑Zeit, die die Arbeit tatsächlich benötigt — reservieren Sie es für die hochkritische Ausgabe, bei der es seinen Preis verdient.
Enterprise-Deployment bleibt shadow → enforce → managed; nutzungsbasierte Bewertung misst die darunterliegende Arbeit. Konkrete £‑Kalkulation auf Anfrage.
OTTERLOOP-INFRA
Ein beliebiger Agent emittiert Arbeit: Code, Text, Bild, Deck, Sheet, Video oder eine vollständige Trajektorie.
SeaOtter bewertet sie gegen die passende Rubrik und die organisationsspezifische Schwelle.
Das Urteil liefert Mängel, Upgrades und Anker, die der Agent direkt adressieren kann.
Der Agent überarbeitet das Artefakt oder den nächsten Schritt anhand des Gegenwinds des Kritikers.
Die Schleife stoppt erst, wenn das Band das Gate passiert und die Auditnachweise geschrieben sind.
MCP
In `.mcp.json` oder `config.toml` für Claude, Codex, Cursor oder eine benutzerdefinierte Runtime eintragen.
{ "mcpServers": { "otterloop": {
"command": "python", "args": ["-m", "otterloop.mcp_server"],
"env": { "OTTERLOOP_API_URL": "https://dev-api.seaotter.ai",
"OTTERLOOP_API_KEY": "sk-otter-...",
"OTTERLOOP_POLICY_ID": "acme-prod-acceptance" } } } }curl
Jede Runtime, die HTTP spricht, kann einmal bewerten oder in der Schleife bleiben.
curl -s https://dev-api.seaotter.ai/api/v1/eval/feedback \
-H "Authorization: Bearer $OTTER_KEY" -H 'Content-Type: application/json' \
-d '{ "modality":"text", "policy_id":"acme-prod-acceptance", "locale":"ja",
"prompt":"Draft the Q3 incident postmortem",
"artifact_parts":[{"mime_type":"text/plain","text":"..."}],
"return_feedback_artifacts": true }'Python SDK
Ein Loop-Aufruf treibt produce → grade → revise, bis der Kritiker „ship“ sagt.
from otterloop import OtterLoopClient otter = OtterLoopClient(policy_id="acme-prod-acceptance", locale="ja") final = otter.loop(produce=lambda feedback: my_agent.revise(feedback), work=my_agent.first_draft(), modality="document", references=["file://brand-guide.pdf", "file://gold-postmortem.md"], max_rounds=5, target_band="ship")