Ai2 复盘海事智能体 Shippy:高风险场景下构建可靠 AI Agent 的工程实践
type
status
date
slug
summary
tags
category
icon
password
网址
引言:高风险场景不容许“差不多”的答案
Allen Institute for AI(Ai2)旗下的 Skylight 团队近日发表技术博客,复盘了其海事 AI 智能体 Shippy 的构建过程。Skylight 是一个免费的海事态势感知平台,服务全球 70 多个国家的 300 多家政府机构与非政府组织。在这类场景中,一个错误答案可能让巡逻船白跑几十海里,浪费本已紧张的执法资源,甚至危及人员安全。因此团队的核心结论很明确:真正的难点不在模型本身,而在于构建一个可以被信任、可验证、行为有边界的系统。
事实梳理:智能体的三层解剖
Ai2 把 Shippy 拆成三个部分:灵魂(soul)、技能(skills)与配置(config)。灵魂是系统提示词,定义了智能体的人格与行为边界,例如 Shippy 被明确禁止对船只是否违法下结论——那是人的工作;也禁止超出数据支持范围的推测。这些边界写在系统提示里而非微调中,因此可审计、易修订。
技能则采用与 Claude Code、Codex 等编码工具相同的 agent-skills 规范,即带结构化 frontmatter 的纯 Markdown 文件,覆盖查询 Skylight 事件与船舶 API、解析专属经济区(EEZ)和海洋保护区(MPA)边界、解读船舶航迹数据、生成可交互地图深链等能力。灵魂与技能被打包进版本化的 Docker 镜像,而配置层决定运行时细节:使用哪个 Agent 框架(Shippy 选用开源框架 OpenClaw)、哪个模型(当前为 Claude Opus 4.6)以及密钥注入,换模型或换框架只是改配置而非重建。
工程方法:用确定性工具约束非确定性模型
早期原型让模型直接构造 API 请求,结果是源源不断的小毛病:分页错误悄悄丢数据、几何编码出错、筛选条件被误解导致看似正确实则错误的查询。团队的解法是自研 Skylight CLI,把复杂的类型化 API 收敛成一条可预测的命令——智能体只需发出带类型化参数的搜索命令,认证、分页和结构化输出都由 CLI 处理。CLI 的输出一律写入本地 JSON 文件而非走 shell 管道,绕开了管道缓冲上限和下游工具兼容问题。底层 API、确定性 CLI、引用 CLI 命令的技能,三层各自独立可测,每一层都在收窄下一层出错的空间。
多租户隔离方面,团队构建了名为 Mothership 的托管平台:每个用户会话都会获得一套专属的 Kubernetes 部署,用户的 JWT 在会话创建时注入,保证智能体只能访问该用户的数据;会话内的文件绝不跨用户共享,沙箱网络也只放行必需的服务。
评估体系:评估智能体而非模型
传统基准测试无法衡量一个接入真实工作流的智能体,因此 Ai2 自建了评估管线:领域专家编写场景与评分细则并设置权重,自然语言任务在真实沙箱中以真实数据执行,再由 LLM 评委逐项打分并给出书面理由,加权总分必须超过固定阈值。任何在技能、模型或底层数据变化后出现回归的版本都不会流向用户。
最新一轮评估中,Shippy 在数据检索与护栏任务上表现稳定,能正确拒绝军事情报类请求、维持用户数据隔离并准确标注来源;但也暴露出三类问题:在巡逻规划任务中越界给出战术建议而非决策支持、边界简化导致漏报事件,以及一例凭空编造不存在的 CLI 命令。这些问题直接转化为下一轮技能改进的方向。
风险与限制
Shippy 的实践同样揭示了当前智能体的共性风险:模型本质是非确定性的,工程手段只能收窄错误空间而不能根除;边界数据的精度(如几何简化)会直接影响结果完整性;越权建议在高风险领域尤其危险,需要持续的评估与护栏收紧。此外,深度依赖单一模型与自有托管平台也意味着不小的运维成本。
结论
Ai2 的复盘为高风险领域的智能体开发提供了一份难得的工程清单:行为边界写进可审计的系统提示、用确定性 CLI 取代模型的自由发挥、会话级沙箱隔离保障多租户安全、以真实数据驱动的整套评估管线守住发布质量。团队正滚动开放早期用户测试,并计划加入地图界面直控、模型路由(简单查询走小模型)和跨会话记忆等能力,相关经验也将复用到野生动物保护平台 EarthRanger 与开放地球观测工具 OlmoEarth 上。对正在构建行业智能体的中文开发者而言,这套“每层收窄错误空间”的思路值得参考。更多 AI 工程实践解读可关注 aigc.bar。
Loading...
.png?table=collection&id=cbe6506e-1263-8358-a4d7-07ce62fcbb3f&t=cbe6506e-1263-8358-a4d7-07ce62fcbb3f)