详情

首页手游攻略 Shippy:确定性工具、会话级 Sandbox 与 Live-Data Eval:4 类收敛 7 步实现方案 6 类评测指标

Shippy:确定性工具、会话级 Sandbox 与 Live-Data Eval:4 类收敛 7 步实现方案 6 类评测指标

佚名 2026-07-23 17:23:10

Shippy:确定性工具、会话级 Sandbox 与 Live-Data Eval(Ai2 / Skylight 2026-07-15 案例拆解)

TL;DR

  • 场景:Ai2 / Skylight 2026-07-15 在 Hugging Face Blog 公开的 Shippy Agent 案例,是一套"高风险海事查询 Agent"的端到端实现,不是更大的模型,而是一套受控 Agent Runtime。
  • 结论:可靠性来自 Soul+Skills 版本化、确定性 CLI 收敛错误面、每会话 Kubernetes Deployment 隔离、Harbor 跑真实数据 + 专家 Rubric 四层共同把模型可犯的错误空间逐层收窄。
  • 产出:可迁移到语音 Agent / 机器人 / 企业数据助手的三层模式、四类收敛清单、6 个评测指标、12 条错误速查卡与一份 7 步实施/实验方案。

版本矩阵

功能 / 事实状态说明
原文:Soul + Skills 打包进版本化 Docker 镜像,Config 决定 OpenClaw Harness、当前 Claude Opus 4.6 和运行设置✅ 已验证Hugging Face Blog S04 原文(huggingface.co/blog/allenai/shippy-tech-blog,2026-07-15)
原文:Skill 遵循 Agent Skills 开放格式(SKILL.md / metadata / scripts / references / assets)✅ 已验证原文 S04 + Agent Skills 官网 agentskills.io(持续更新)
原文:Skylight CLI 负责鉴权、分页、结构化输出;早期直接 API 方案出现分页、几何编码、过滤器错误✅ 已验证原文 S04(这是把 CLI 收口为受控工具面的直接动机)
原文:Mothership 为每个用户会话创建独立 Kubernetes Deployment,注入用户 JWT,限制文件/网络边界✅ 已验证原文 S04(架构图:Sandbox 内部含 Sidecar Lifeline + OpenClaw Harness 双向通讯)
原文:Harbor 插件启动被测 Shippy 精确版本,对实时数据运行专家加权 Rubric,Skill/模型/数据变化触发重跑✅ 已验证原文 S04 + Harbor Framework 官网(harborframework.com)
原文:模型路由与跨线程记忆是后续路线,不是当前已完成能力✅ 已验证原文 S04(明确"future work",避免误读为现能力)
当前底层模型为 Claude Opus 4.6⚠️ 待核验用户原文给出"当前 Claude Opus 4.6";S04 未直接锁定版本号,4.6 为作者描述,建议以实跑镜像为准
Agent Skills 开放格式是 Anthropic 主导的 Agent Skills 规范⚠️ 待核验用户原文称"开放格式";Agent Skills 官网 agentskills.io 持续更新,但本案例实际由哪一方率先提出、当前治理方需另核
Shippy 案例使用 Go / TypeScript / Python 等具体语言栈⚠️ 待核验原文未在 S04 中披露具体后端语言;架构图中提及 Postgres + GCS 与 Redis Streams
实时数据:原案例背后是 Global Fishing Watch / Skylight 平台数据⚠️ 待核验评分示例提到"Global Fishing Watch via Skylight",但实时数据源所有权与计费模型未在 S04 完整披露
每会话 Kubernetes Deployment 的资源回收机制与空闲超时阈值⚠️ 待核验原文给出"ephemeral, per-user"和"Redis Streams inbound / outbound per thread",但具体 TTL/Idle TTL 未披露
反方观点:直接 Function Calling 对简单低风险 API 已足够✅ 立场本文作者明确列出,文章不否认;CLI 收敛是为高复杂 API 付出
反方观点:低价值短会话更适合共享池 + Namespace✅ 立场本文作者明确列出,不是所有场景都该上每会话 Deployment
反方观点:实时数据评测降低完全可复现性,需保留冻结快照✅ 立场本文作者明确列出,是 Live-Data Eval 的天然代价

摘要

Shippy 不是"更大的海事模型",而是一套受控 Agent 系统。Soul 与 Skills 形成版本化行为包,Config 可切换 Harness 和模型;类型化 API 与确定性 CLI 处理鉴权、分页和几何等高错误率细节;每个用户会话拥有独立 Kubernetes Deployment;Eval 通过 Harbor 启动精确版本,对实时数据和专家 Rubric 评分。本章将案例抽象为可迁移到语音 Agent、机器人和企业数据助手的三层模式。

读者问题

  • 为什么复杂 API 不应直接暴露给模型?
  • 确定性 CLI 如何缩小错误空间,又保留 Agent 灵活性?
  • 每会话 Kubernetes 隔离何时值得,何时过重?
  • 实时数据变化下如何区分模型回归与数据漂移?

已核验事实

  • Shippy 的 Soul 与 Skills 打包进版本化 Docker 镜像,Config 决定 OpenClaw Harness、当前 Claude Opus 4.6 和运行设置。(S04)
  • Skill 遵循 Agent Skills 开放格式,由 SKILL.md、元数据、脚本、参考材料和资产组成。(S04、S05)
  • Skylight CLI 负责鉴权、分页和结构化输出,结果固定写入本地 JSON;早期直接 API 方案出现分页、几何编码和过滤器错误。(S04)
  • Mothership 为每个用户会话创建独立 Kubernetes Deployment,注入用户 JWT,并限制文件和网络边界。(S04)
  • Harbor 插件启动被测 Shippy 精确版本,对实时数据运行专家加权 Rubric,并在 Skill、模型或数据变化时重跑。(S04、S07)
  • 模型路由与跨线程记忆是后续路线,不是当前已完成能力。(S04)

技术机制

Shippy 的可靠性来自四类收敛:

  • 语义收敛:Soul 明确拒绝法律判定和超出数据的推断。
  • 接口收敛:API Schema → 确定性 CLI → Skill,下一层不再重新实现上一层的复杂性。
  • 资源收敛:每会话独立文件、凭据和网络边界。
  • 评测收敛:固定版本、实时数据、专家 Rubric、Judge 解释、回归门禁。

写文件而不是通过 Shell 管道传大结果,不只是性能优化,也使中间结果可追踪、可复用和可清理。

工程含义

迁移到实时语音 Agent 时,可以把 ASR、对话状态、LLM、工具层和 TTS 分为独立版本单元。工具层通过确定性 CLI 或服务接口控制参数,语音 Session 使用独立工作目录和短期 Token;系统级 Eval 同时检查识别、工具选择、数据正确性、延迟、打断和最终语音输出。

实现或实验方案

  1. 把系统边界、Skill 和运行配置分开版本化,发布物中记录三者组合。
  2. 为高复杂 API 构建面向任务的 CLI,而不是把所有底层参数原样暴露给模型。
  3. CLI 输出使用稳定 JSON Schema、显式文件路径、生命周期和大小限制。
  4. 按照风险选择隔离级别:进程、容器、Namespace、每会话 Deployment 或专用账户。
  5. 建立专家 Rubric:事实准确性、时间范围、边界解析、来源归因、拒绝和风格使用不同权重。
  6. 为数据快照或查询时间打标;当结果变化时先区分数据漂移与 Agent 回归。
  7. 保留失败样例的 Trace 和版本,任何 Skill、模型或数据变化都触发差分报告。

评测指标

  • Tool Invocation Validity:CLI 命令和参数通过 Schema 校验的比例。
  • Data Completeness:分页、时间范围和几何过滤后结果是否完整。
  • Isolation Breach:跨会话文件、凭据或数据可见性事件,目标必须为零。
  • Rubric Pass Rate:按任务类型和准则分解,不只看总分。
  • Cold Start / Cost:每会话隔离带来的启动时间和资源成本。
  • Data Drift Delta:同版本 Agent 在不同数据时间点的得分变化。

反方观点与替代解释

  • 直接 Function Calling 在简单、低风险 API 上可能足够,不需要所有系统都增加 CLI。
  • 每会话 Kubernetes 隔离安全性高,但低价值短会话可能更适合共享池加 Namespace。
  • 实时数据评测更接近生产,却降低完全可复现性,因此需要同时保留冻结快照集。

适用边界

适合高权限、数据敏感、复杂 API 和专业领域 Agent。对于无外部工具的简单问答,完整 Mothership 式隔离成本过高;应按风险选择最小充分架构。

风险与误读点

  • 把 Shippy 单一案例写成行业标准。
  • 忽略每会话 Deployment 的冷启动和集群成本。
  • 让 LLM Judge 取代专家复核。
  • 临时 JSON 文件缺少唯一命名、清理和配额。
  • 把未来模型路由和跨线程记忆描述为现有能力。

参考来源

  • S04|What building Shippy taught us about building agents:Ai2 / Skylight / Hugging Face,2026-07-15。
  • S05|Agent Skills Overview:Agent Skills,持续更新。
  • S06|OpenClaw repository:OpenClaw,持续更新。
  • S07|Harbor:Harbor Framework,持续更新。

错误速查卡

症状根因定位修复
模型对同一问题两次答案数据不同,但代码没动没区分"数据漂移"和"Agent 回归"对比 Rubric 各项得分 + 数据快照时间戳用冻结快照集做回归门禁,实时数据只做探索
工具调用经常出现分页、几何、过滤器错把底层 API 直接暴露给模型在 Skylight CLI 之外加一层任务型 CLI强制走 CLI,所有参数 Schema 校验
Tool Invocation Validity 低于 95%命令参数未校验 / 自由文本拼接抓取失败调用样本,按 Schema diff给 CLI 加显式参数 Schema + 路径/日期/几何白名单
Data Completeness 偶尔掉到 80% 以下分页上限 / 时间窗口被截断检查 Skylight CLI 的 --limit 与时间过滤强制分页全量 + 几何相交校验 + 总数断言
Isolation Breach 出现非零事件共享文件系统、共享 Token 缓存、共享网络出口审计 Sidecar / Sandbox 进程命名空间与文件系统改回每会话 K8s Deployment,强制 JWT 注入 + NetworkPolicy
Rubric Pass Rate 看似高但实际不可信LLM Judge 取代了专家复核检查 Judge 的 few-shot / rubric 来源把专家权重显式注入 Prompt,保留 Judge Reasoning 留档
改一行 Skill 提示,所有 Eval 都要重跑Eval 与数据时间未分离看 Harbor 任务配置用冻结快照做"必须通过"基线,实时数据只做"漂移观测"
Cold Start / Cost 暴涨每会话都起独立 K8s Deployment监控冷启动比例 + 集群 CPU/内存峰值按风险分级:低风险走共享池 + Namespace,高风险才每会话 Deployment
临时 JSON 文件把磁盘打满没有唯一命名、清理、配额查输出目录 inode / sizesession_id + ts + hash 命名 + TTL + 配额上限
误把"未来模型路由"当成现能力把 Roadmap 写成已交付检查原文 "future work" 段文档与代码门禁分开标注,Roadmap 不进工程方案
第三方文章把 Shippy 描述成"通用最佳实践"单一案例被泛化复读适用边界段显式标注:本文案例适用于高权限 / 数据敏感 / 复杂 API;不适用简单问答
把"OpenClaw / Skylight CLI / Harbor"复制到生产时缺少官方来源引用的是社区文章而非一手查 Reference 段链接引用 S04 Hugging Face Blog 与 agentskills.io / openclaw / harborframework 官方域
实时数据评测结果"看起来变好"或"看起来变差"但无解释Judge Reasoning 没有留档看 Harbor 输出是否含 reason 字段在 Eval 报告里强制保留 Judge Reasoning 文本 + 引用源
点击查看更多
推荐专题
热门阅读