Skip to main content
跳转到主要内容
SeaOtter
提交快速开始定价文档在线演示量表
申请访问

规模化智能体工作的验收层

智能体在产出
比任何人更快,
快到无法逐一复核。

智能体交付工作的速度超过任何团队的审核能力。SeaOtter 的评审为每个工件打分,并不断推送修复直至通过您的策略——智能体↔评审,以机器速度闭环。

试用在线演示查看工作原理 ↓
面向智能体获取 API 密钥 + MCP注册,通过 MCP 或 HTTP 连接,以编程方式评分与迭代工作。→面向人员提交工作以供审核上传您的智能体产出,获取 OtterScore 与待修复缺陷清单。→
阅读文档 →
  • 通过
  • 返工
  • 失败

人工复核曾是闭环。在智能体规模下,它成了瓶颈。

以智能体规模

敌意评审模型读取工作——并作出决定。

智能体提交工作以评分。它会被路由到快速的单次通过——或在沙箱中运行、被多轮探测的深度智能体式检查。敌意评审模型做出决定,您为其耗用的算力付费。然后拉远视角:成千上万的智能体并行评分,同步或异步。

12,480件智能体工作由 OtterScore —— 一个敌意评审智能体 —— 并行复核
9,734放行1,997退回修复749阻止
……以及更多正被实时筛查
放行退回修复阻止

OtterScore · 敌意评审智能体正在复核

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.

裁定阻止0.16

点击任一工作以检查——或使用 ← → 逐项浏览,Esc 关闭

定位化反馈

无法定位的缺陷, 就无法修复。
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 · 公共 OSS 抓取
没有位置的标记未定位

“此工件某处可能存在问题。”

无跨度。无文件。无法路由。

SeaOtter 评审line 30

hallucinated_api · high

self.tasks.add_item(task)

add_item 不是 list 的有效方法,运行时会报错。应为 self.tasks.append(task)。

定位 F1 —— 能否精确定位缺陷?

早期评测 · n=256 · 保留集验证
SeaOtter 评审
0.218

这是我们评审对“精确定位跨度并指明文件”的早期、保留集验证读数。检测仍在训练中;此处所述为定位质量,而非泛化的批评能力。

提交 → 评分

提交工作,获取评分——同步或异步。

智能体通过 POST 提交刚产出的工作,SeaOtter 按您的验收策略进行评分。轻量、快速的检查在响应中内联返回裁定。较重的检查返回作业 ID,供智能体轮询、订阅流或通过 webhook 接收——因此漫长的复核不会阻塞发起请求的智能体。

面向人员

人员——转发或粘贴

将工作发送到 SeaOtter 收件箱并收到带评分的 OtterScore 回复,或在网页中粘贴并在浏览器内评分。无需智能体。

在网页提交发送至 SeaOtter 收件箱

面向智能体

智能体——API 与 MCP

通过 HTTP 或 MCP 连接任意智能体,使其在循环中自评输出——同一策略、同一 OtterScore,以机器速度。60 秒快速开始见下方。

打开开发者控制台

SYNCHRONOUS

提交并等待裁定

POST 工作,保持连接,OtterScore 裁定——分档、缺陷、锚点、升级建议——在同一响应中返回。最适合用于智能体内环中的“单次”检查,智能体在下一步前需要结果。

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

ASYNCHRONOUS

提交,获取作业 ID,稍后收取

POST 工作,立即获得作业 ID,然后轮询作业、订阅结果流或注册 webhook。最适合在沙箱中多轮探测的智能体式检查——产出智能体继续前进,裁定落地时再回调。

POST /api/v1/eval/jobs → 202 { job_id } · 轮询 · 流 (SSE) · webhook

同步 · 单次

一次敌意评审,内联返回。低价、固定费率。

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   # 轮询,或流式,或等待 webhook

同一策略、同一 OtterScore、同一签名审计记录——无论智能体选择哪种传输方式。

面向智能体 · MCP 快速开始

60 秒将您的智能体接入敌意评审。

三步:生成密钥、添加一个 MCP 服务器,然后您的智能体在自身循环中调用 otter_score / otter_iterate——同一 OtterScore、同一验收策略,以机器速度。评审评分;您的智能体依据缺陷迭代,直到分档跨过闸门。这正是上方“舰队”演示的循环:每个被标记的工件(route_to_fix,琥珀弧)通过 otter_iterate 重新进入闸门,且仅当 ready_to_ship 为 true 时才放行。内环无人工——具名签批是最后一道闸门,而非唯一闸门。

01

注册

已登录的组织用户为智能体生成一次评测密钥。sk-otter-… 只显示一次;将其交给智能体。

02

添加 MCP 服务器

在 .mcp.json(Claude / Cursor)或 config.toml(Codex)中加入一个 otterloop 服务器。智能体将获得只读评审工具,并可自动批准。

03

评分与迭代

智能体提交工作、读取带锚点的缺陷、修订并重新提交——当 ready_to_ship 为 false 时持续循环。挺过评审,就是产品本身。

1 — 注册

使用已登录用户 JWT 调用 POST /api/v1/agent-keys。密钥仅返回一次——或在开发者控制台点击“生成评测 API 密钥”。

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":"..." }
# 将 `key` 交给智能体作为 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"
      }
    }
  }
}
# 工具:otter_list_policies · otter_score · otter_iterate
#        otter_score_workflow · otter_get_feedback_artifact

3 — 评分与迭代

智能体通过 MCP 完成 提交 → 缺陷 → 修订 → 重新提交 全流程。将裁定视为权威——请勿自评。

# 提交工作 -> 权威裁定
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 }

# 根据 flaws[]/upgrades[] 修订,然后在同一 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 }

# 当 ready_to_ship 为 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)——绝不静默通过。

生成评测密钥试用在线演示

两种检查模式

单次或智能体式。由您决定深度。

并非每份输出都需同等审查强度。单次检查为一次敌意评审——快速、低算力、内联返回。智能体式检查在一次性、可联网的沙箱中多轮探测——更慢、更多算力、异步返回。将廉价工作路由至单次,高风险工作路由至智能体式,遵循同一策略。

单次一次敌意评审智能体式沙箱,多轮
评审执行一次性读取工件、策略、提示与参考。在一次性沙箱中运行并多轮探测工作。
时延内联——裁定随响应返回。异步——先返作业 ID,后轮询、流或 webhook。
算力低且可预测。更高——随轮次与沙箱时长线性增长。
最适合内环检查、高量草稿、快速闸门。必须运行的代码、须复现实证的声明、外溢风险高的工作。
计费廉价,按次固定。按算力与沙箱时长计量。

两种模式均返回相同的 OtterScore 裁定结构,并写入相同的签名审计记录。

按使用付费

为实际完成的工作付费。

仅就您实际运行的评分付费,而非按席位。单次检查廉价且固定;智能体式检查按耗用的算力与沙箱时间计量。这使得“为每份输出、整支舰队评分”经济可行,而非仅抽样复核。

单次检查

廉价,固定费率

按次,固定

一次敌意评审,内联返回。定价足够低,可驻留于每个智能体的内环,对高量草稿打分。

智能体式检查

按算力计量

按算力 + 沙箱时间计量

沙箱化的多轮评审。您为实际需要的轮次与沙箱时间付费——将其保留给高风险输出,以体现其成本价值。

试用在线演示阅读 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

一次循环调用驱动 产出 → 评分 → 修订,直到评审判定可放行。

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面向企业智能体工作的对抗性验收循环。
文档在线演示评审量表投资方(NDA)

© 2026 SeaOtter。为阻断劣质智能体工作而建。