Skip to main content
Saltar al contenido principal
SeaOtter
InicioEnviarCrearDemostración en vivoCríticosRúbricas
Solicitar acceso

CREE CON OTTERLOOP

Conecte el crítico a un agente en minutos.

OtterLoop es el contrato orientado a agentes del crítico hostil de SeaOtter. El mismo ciclo funciona con o sin AgentOS, en cualquier framework, modelo y nube: envíe el trabajo, lea el veredicto, revise e itere hasta que la banda supere su puerta.

MCPHTTPPython SDKArtefactos multimodalesRetroalimentación localizada

INTEGRACIÓN

Tres comienzos de copiar‑pegar. Un contrato.

Todo se enruta al mismo contrato de evaluación. La API alojada gestiona la ejecución del crítico, el condicionamiento, la localización, las devoluciones ricas y el registro de auditoría firmado. El servidor MCP y el Python SDK son envoltorios ligeros sobre esa superficie HTTP.

  • Localice `detail`, `rationale` y `upgrades` por locale.
  • Ancle a tramos, celdas, diapositivas, páginas, fotogramas o marcas de tiempo.
  • Recupere artefactos renderizados por separado cuando el agente necesite los bytes de los medios.
  • Mantenga el paquete de retroalimentación canónico en JSON para automatización segura por fallback.

INTEGRACIÓN

Tres caminos de entrada.

Todo se enruta al mismo contrato de evaluación. La API alojada gestiona la ejecución del crítico, el condicionamiento, la localización, las devoluciones ricas y el registro de auditoría firmado. El servidor MCP y el Python SDK son envoltorios ligeros sobre esa superficie HTTP.

MCP

Úselo en Claude, Codex, Cursor o cualquier runtime que hable MCP.

{ "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

Llamada de puntuación de una sola pasada por HTTP.

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

Deje que el cliente impulse producir → calificar → revisar hasta aprobar.

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")

CONSOLA DE DESARROLLADOR

Obtenga su clave de API de evaluación

Emita una clave de API de evaluación para su cuenta y luego copie una configuración lista para pegar de MCP, Python SDK o curl para conectar cualquier agente al crítico hostil de SeaOtter. El secreto se muestra una vez — guárdelo antes de salir de esta página.

Cargando claves…

AGENT QUICKSTART

Onboard an agent without a human in the loop after the first key.

SeaOtter is agent-native: an agent can discover this contract from /llms.txt, then run the whole loop over MCP or plain HTTP. The only human step today is minting the first eval key (above) — the agent does the rest. Every eval call carries Authorization: Bearer <sk-otter-...>. Bases: https://api.seaotter.ai (prod), https://dev-api.seaotter.ai (dev).

  1. 1. Get a key — A signed-in org user creates an account at /signup, then mints an eval key here (POST /api/v1/agent-keys, body {"name":"my-agent"}). The full sk-otter-<40 hex> secret is shown exactly once. Hand it to the agent as OTTERLOOP_API_KEY / the bearer token.
  2. 2. Connect (MCP or HTTP) — Drop the .mcp.json below into Claude / Codex / Cursor for read-only tools (otter_list_policies, otter_score, otter_iterate, otter_score_workflow, otter_get_feedback_artifact), or call the HTTP API directly. pip install "otterloop[mcp]" (or pip install otterloop for the stdlib SDK).
  3. 3. Score — POST /api/v1/eval/feedback with the artifact + the prompt the agent was given (+ optional policy_id, locale, references). Get back { run_id, verdict }. The verdict has score (0-100, lower = more flawed), band (ship / route_to_fix / quarantine / block), flaws[], upgrades[].
  4. 4. Read the flaws — Each flaw carries criterion, severity, evidence, detail, and an anchor (where: bbox / timestamp / cell / slide / page / span). upgrades[] are concrete fixes the agent can apply.
  5. 5. Iterate — Revise the work against the flaws, then POST /api/v1/eval/runs/{id}/iterate to re-score. Repeat until band clears your gate (e.g. ship). The Python SDK's otter.loop(produce=..., work=..., target_band="ship") drives this automatically.
  6. 6. Workflow / benchmark — POST /api/v1/eval/workflows/{id}/topology to score an end-to-end multi-step workflow graph and get a composite + per-step + chain critique. Discover policies (GET /api/v1/eval/policies) and rubrics (GET /api/v1/eval/rubrics) to condition grading.

Machine-readable: /llms.txt · OpenAPI spec · interactive API docs.

1 — mint a key (one-time, signed-in user)

Returns the full sk-otter-... secret exactly once.

curl -s -X POST https://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", ... }

2 — connect over MCP (.mcp.json)

Claude / Cursor. Codex uses [mcp_servers.otterloop] in config.toml.

{ "mcpServers": { "otterloop": {
    "command": "python", "args": ["-m", "otterloop.mcp_server"],
    "env": { "OTTERLOOP_API_URL": "https://api.seaotter.ai",
             "OTTERLOOP_API_KEY": "sk-otter-...",
             "OTTERLOOP_POLICY_ID": "acme-prod-acceptance" } } } }

3 — score over HTTP

One-shot grade -> verdict + run_id to keep iterating.

curl -s https://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",
        "prompt":"Draft the Q3 incident postmortem",
        "artifact_parts":[{"mime_type":"text/plain","text":"...your work..."}],
        "return_feedback_artifacts": true }'
# -> { "run_id": "...", "verdict": { "score": ..., "band": "route_to_fix", "flaws": [...] } }

5 — iterate until it ships

Re-score a revision against the same run.

curl -s -X POST https://api.seaotter.ai/api/v1/eval/runs/$RUN_ID/iterate \
  -H "Authorization: Bearer $OTTER_KEY" -H 'Content-Type: application/json' \
  -d '{ "decision":"reprompt", "new_artifact_ref":"inline:v2",
        "artifact_parts":[{"mime_type":"text/plain","text":"...revised work..."}] }'

CONTRATO DE VEREDICTO

El agente actúa sobre un solo esquema.

El veredicto está diseñado para agentes de frontera, no capturas de pantalla de revisión humana. Incluye puntuación, banda, fallos, mejoras, anclas, razonamiento y referencias a artefactos de retroalimentación ricos que el agente puede usar directamente.

Esquema de veredicto

{
  "score": 0.91,
  "band": "ship",
  "decision": "ship",
  "flaws": [
    { "criterion": "source_grounding", "severity": "high", "evidence": "Unsupported number", "detail": "The claim is not backed by the cited file", "anchor": { "kind": "span", "span": [418, 462] } }
  ],
  "upgrades": [
    { "action": "Replace the unsupported figure", "target_criterion": "source_grounding", "draft": "Use the cited value from page 2 instead." }
  ],
  "rationale": "Localized feedback so the agent can revise the exact failing region.",
  "feedback_artifacts": [{ "kind": "annotated_png", "ref": "artifact://..." }]
}

CONDICIONAMIENTO

El crítico está condicionado por su listón.

OtterLoop no es una puntuación genérica de "¿esto es bueno?". El contrato puede condicionar el veredicto a la política de su organización, al prompt o intención dada al agente y a los archivos de referencia que deba obedecer.

Política de la organización

Aplique la política de aceptación correcta para que el mismo artefacto pueda aprobar en un equipo y fallar en otro por un motivo defendible.

Prompt e intención

Transporte la petición original al crítico para que juzgue el trabajo contra el encargo, no contra una respuesta idealizada genérica.

Archivos de referencia

Guías de marca, ejemplos de oro, documentos fuente de verdad y versiones previas pasan a ser evidencia de condicionamiento.

  • Las anclas localizan a bbox, punto, tramo, celda, diapositiva, página o marca de tiempo.
  • La banda es una decisión de política en tiempo de ejecución, no prosa de modelo pretendiendo ser una puerta.
  • Las devoluciones ricas permiten que el mismo veredicto sirva tanto para revisión humana como para revisión por máquina.

MODALIDADES

Multimodal de entrada. Multimodal rico de salida.

El mismo ciclo cubre texto, código, imágenes, decks, documentos, hojas de cálculo, audio, video y trayectorias de varios pasos. Las devoluciones pueden incluir tanto el JSON canónico del veredicto como medios que pueda leer una persona o un agente.

Probar la demo en vivoExplorar rúbricas
MODALIDADESDEVOLUCIONES
Imagen o frame de diseñoPNG anotado más cajas delimitadoras de fallos y un informe en markdown
Deck, PDF o documentoPáginas anotadas, notas por página y anclas legibles por máquina
Hoja de cálculoCeldas marcadas, notas basadas en criterios y deltas estructurados
Video o audioMarcadores de tiempo, subtítulos y razonamiento localizado
Texto o códigoRevisión anclada a tramos con borradores de mejoras aplicables por el agente
SeaOtterLa capa de aceptación para el trabajo de agentes en la empresa.
EnviarCrearDemostración en vivoCríticosRúbricas

© 2026 SeaOtter. La capa de aceptación para el trabajo de agentes en la empresa.