Skip to main content
メインコンテンツへスキップ
SeaOtter
提出クイックスタート料金Documentationライブデモルーブリック
アクセスをリクエスト

大規模エージェント業務のための受入レイヤー

エージェントは成果物を生み出し、
人間のレビューよりも
速く進みます。

エージェントは、どのチームよりも速く成果物を出荷します。SeaOtter の批評家はすべてのアーティファクトにスコアを付け、ポリシーを通過するまで修正を押し戻します。エージェント↔批評家が機械速度で回ります。

ライブデモを試す仕組みを見る ↓
FOR AGENTSGet an API key + MCPRegister, connect over MCP or HTTP, score & iterate on work programmatically.→FOR PEOPLESubmit work for reviewUpload your agent's work, get an OtterScore plus the flaws to fix.→
Read the documentation →
  • 合格
  • 再作業
  • 失敗

人手によるレビューがループでした。エージェントのスケールでは、それがボトルネックです。

エージェント規模で

敵対的な批評家モデルが成果物を読み、判定します。

エージェントが採点のために成果物を提出します。高速なワンショットパス、またはサンドボックスで成果物を実行して検証する深いエージェント駆動チェックにルーティング。敵対的な批評家モデルが決定し、支払いは要したコンピュート分のみ。引いて見ると—数千のエージェントが並列で採点、同期でも非同期でも。

12,480並列で採点中のエージェント成果物reviewed in parallel by OtterScore — a hostile critic agent
9,734ship1,997route to fix749block
…そしてさらに数千件をライブでスクリーニング
SHIPROUTE TO FIXBLOCK

OtterScore · hostile critic agentreviewing

Feature PR → tests → migration

ワークフロー連鎖

  1. Spec the change0.84
  2. Implement query0.12
  3. Write tests0.79
  4. Add migration0.81

捕捉された欠陥`f"SELECT * FROM users WHERE id = {uid}"` — unparameterised SQL. SQL-injection sink. Blocked under security policy.

判定BLOCK0.16

海面上をホバーしてレビューを表示 — または ← → で移動

ローカライズ済みフィードバック

場所を示せない欠陥は、 直せない欠陥です。
SeaOtter は正確な範囲をピン留めし、ファイルを特定します。

批評家は「間違っている」と言うだけではありません。エージェントが修正すべき正確な行・ページ・スライド・セル・フレーム・タイムスタンプを特定します。

background.py · Python
28def add_task(self, func, *args, **kwargs):29 task = BackgroundTask(func, *args, **kwargs)30 self.tasks.add_item(task)
line 30
encode/starlette · BSD-3-Clause · public OSS scrape
位置情報のないフラグ位置特定なし

「このアーティファクトのどこかに問題がある可能性があります。」

範囲なし。ファイルなし。ルーティング不能。

SeaOtter の批評家line 30

hallucinated_api · 高

self.tasks.add_item(task)

add_item は list の有効なメソッドではないため、実行時に例外となります。期待されるのは self.tasks.append(task) です。

位置特定 F1 — 欠陥をピン留めできているか?

初期評価 · n=256 · ホールドアウト検証済み
SeaOtter の批評家
0.218

批評家が正確な範囲をピン留めしファイルを特定する能力に関する初期のホールドアウト検証済みの読み取りです。検出は依然として訓練中であり、ここでの主張は一般的な批評ではなく位置特定品質に関するものです。

SUBMIT → GRADE

成果物を提出し、採点結果を取得 — 同期でも非同期でも。

エージェントは作成した成果物を POST で提出し、SeaOtter が受入ポリシーに照らして採点します。小さく速いチェックはインラインで判定を返します。重いチェックはジョブ ID を返し、エージェントはポーリング・ストリーム・Webhook で受領。長いレビューが、依頼したエージェントをブロックしません。

人間向け

人間 — 転送するか貼り付ける

SeaOtter の受信箱へ送れば採点済みの OtterScore が返り、Web 上に貼り付ければブラウザで採点できます。エージェントは不要です。

Web で提出SeaOtter 受信箱へメール

エージェント向け

エージェント — API と MCP

任意のエージェントを HTTP または MCP で配線し、ループ内で自分の出力を採点。ポリシーも OtterScore も同一、機械速度で。60 秒のクイックスタートはすぐ下です。

開発者コンソールを開く

同期

提出して判定を待つ

成果物を POST し、接続を保持、OtterScore の判定(バンド・欠陥・アンカー・アップグレード)を同一レスポンスで取得。エージェントの内側のループで次のステップ前に回答が必要な単発チェックに最適です。

POST /api/v1/eval/score → 200 { band, flaws[], upgrades[] }

非同期

提出してジョブ ID を受け取り、後で回収

成果物を POST し、即時にジョブ ID を受領。その後はジョブのポーリング、結果ストリーム購読、Webhook 登録が可能。サンドボックスで複数パスにわたり検証するエージェント駆動チェックに最適で、生産側エージェントは先へ進み、判定到着時に呼び戻されます。

POST /api/v1/eval/jobs → 202 { job_id } · poll · stream (SSE) · webhook

同期 · 単発

敵対的批評家による 1 パスをインライン返却。低コスト・定額。

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":[...] }

非同期 · エージェント駆動

批評家がサンドボックスで成果物を実行し、複数パスで検証します。

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 webhook

エージェントがどのトランスポートを選んでも、ポリシーも OtterScore も署名済みの監査記録も同一です。

エージェント向け · MCP クイックスタート

60 秒でエージェントを敵対的批評家につなぐ。

3 ステップです。キーを発行し、MCP サーバーを 1 つ追加、あとはエージェントが自身のループで otter_score / otter_iterate を呼びます。OtterScore と受入ポリシーは同一、機械速度で。批評家が採点し、エージェントは欠陥に対して反復し、バンドが閾値を通過するまで続けます。これは先ほどのフリートでご覧いただいたループです。フラグ付きアーティファクト(route_to_fix、アンバーの弧)は otter_iterate 経由でもう一度ゲートに入り、ready_to_ship が true になったときだけ出荷されます。内側のサイクルに人間は不要で、記名承認は最後のゲートであり、唯一のゲートではありません。

01

登録

サインイン中の組織ユーザーが一度だけエージェントの評価キーを発行します。sk-otter-… シークレットは 1 回のみ表示。エージェントに渡してください。

02

MCP サーバーを追加

1 つの otterloop サーバーを .mcp.json(Claude / Cursor)または config.toml(Codex)に追加。エージェントは読み取り専用の批評家ツールを自動承認で利用できます。

03

採点と反復

エージェントが成果物を提出し、アンカー付き欠陥を読み、修正し、再提出します。ready_to_ship が false の間はループを継続。批評家を通過すること自体がプロダクトです。

1 — 登録

署名済みユーザー JWT で /api/v1/agent-keys に POST。シークレットは 1 回のみ返却。もしくは開発者コンソールで「Generate eval API key」をクリック。

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 サーバーを追加

.mcp.json(Claude / Cursor)。Codex は config.toml の [mcp_servers.otterloop] を使用。初回のみ: pip install "otterloop[mcp]"。本番ベース: 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_artifact

3 — 採点と反復

エージェントが MCP だけで submit → 欠陥 → 修正 → 再提出 を実行。判定は権威的として扱い、自分で採点しないでください。

# 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.

反復 → 収束

otter_iterate の返り値。上のフリートが示した route_to_fix → ship の収束を、読みやすい差分で固定表示。

route_to_fix→ship

resolved_flaws ↓ 2 · score_change ↑ +18.0 · ready_to_ship → true

純粋な HTTP 等価(MCP なし): POST /api/v1/eval/runs → { run_id, first_iteration.critic_verdict }、続いて POST /api/v1/eval/runs/{run_id}/iterate { "decision":"re_prompt", "new_artifact_parts":[…] } → { verdict, delta }。批評家の障害時はクローズドに失敗(band:quarantine)し、サイレント合格はしません。

評価キーを発行ライブデモを試す

2 つの検査モード

ワンショットかエージェント駆動か。深さを選べます。

すべての出力に同一の精査は不要です。ワンショットは敵対的批評家による単一パス—高速・低計算・インライン返却。エージェント駆動は、インターネット対応の使い捨てサンドボックスで複数パスにわたり検証—より遅く計算多め・非同期返却。低コスト作業はワンショットへ、高リスク作業はエージェント駆動へ。同一ポリシー上でルーティング可能です。

ワンショット単一の敵対的パスAgenticサンドボックス・マルチパス
批評家の動作アーティファクト・ポリシー・プロンプト・参照を 1 パスで読みます。使い捨てサンドボックスで実行し、複数パスで検証します。
レイテンシインライン — レスポンスで判定。非同期 — ジョブ ID を返し、ポーリング・ストリーム・Webhook。
計算コスト低く予測可能。高め — パス数とサンドボックス時間に比例。
適用例内側ループのチェック、高ボリュームの下書き、迅速なゲート。実行が必要なコード、再現が必要な主張、影響範囲が大きい作業。
課金安価・チェックごとに定額。計算量とサンドボックス時間に応じた従量。

どちらのモードも同じ OtterScore 判定形式を返し、同じ署名済み監査記録を書き込みます。

従量課金

実行した作業に対してお支払い。

請求は実際に走らせた採点分であり、席数ではありません。ワンショットチェックは安価で定額。エージェント駆動チェックは計算・サンドボックス時間に応じた従量。これにより、サンプルに限らず、すべての出力—ひいてはフリート全体—を経済的に採点できます。

ONE-SHOT CHECK

安価・定額

チェックあたり・定額

敵対的批評家による単一パスをインライン返却。あらゆるエージェントの内側ループに常駐し、高ボリュームの下書きを採点できる価格設計です。

AGENTIC CHECK

コンピュート従量

計算量 + サンドボックス時間に応じた従量

サンドボックス化されたマルチパスレビュー。必要なパス数とサンドボックス時間に応じてお支払い。費用対効果の高い高リスク出力に絞ってご利用ください。

ライブデモを試すAPI ドキュメントを読む

エンタープライズ導入は シャドウ → 適用 → マネージド の流れを維持し、下層の採点は従量で計測します。具体的なお見積り(£建て)はお問い合わせください。

OTTERLOOP インフラ

すべてのエージェントのループに批評家を入れる。

MCP + HTTP + Python SDK内側のループに人間は不要マルチモーダル入出力貴社ポリシーに条件付け
01

作成

任意のエージェントが成果物を出力:コード、テキスト、画像、デック、シート、動画、あるいは完全な軌跡。

02

採点

SeaOtter が適切なルーブリックと組織依存の基準で採点します。

03

フィードバックを読む

判定は、エージェントが直接狙える欠陥・アップグレード・アンカーを返します。

04

修正

エージェントが批評家の指摘を用いてアーティファクトまたは次の手順を書き直します。

05

リリース

帯域がゲートを通過し、監査証跡が書き込まれたときにのみループは止まります。

ライブデモを試すビルドページを開く

MCP

Claude、Codex、Cursor、またはカスタムランタイムの `.mcp.json` か `config.toml` に追加するだけ。

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

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

1 回のループ呼び出しで、批評家が「出荷可」と言うまで produce → grade → revise。

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")
SeaOtterエンタープライズのエージェント業務向け、敵対的な受入ループ。
Documentationライブデモ批評家ルーブリック投資家(NDA)

© 2026 SeaOtter. 不良なエージェント業務をブロックするために設計。