8 月末,围绕 Anthropic Model Hardware Standard 的讨论在 AI 安全、机器人和产品发布渠道里扩散。公开报道和社区转述的重点并不只是“某家公司要做硬件标准”,而是一个更大的变化:AI agent 正在从屏幕内的软件工作流,走向能影响物理世界的执行层。参考来源:Anthropic 新闻与研究、Anthropic 研究页、NIST AI Risk Management Framework。
软件 agent 的失败很麻烦,但通常还有缓冲。它可能提交错误代码、发错邮件、改错配置,后果严重却仍有日志、回滚、审批和权限系统。物理 agent 不一样。模型一旦控制机器臂、门禁、传感器、实验设备、仓储机器人或边缘终端,动作会立刻进入现实环境。一个错误角度、错误速度、错误药剂量、错误电源状态,都可能超过普通软件回滚能处理的范围。
因此 Model Hardware Standard 这类概念值得开发者认真看。它不是单纯硬件兼容标准,而是在问:模型到硬件之间,应不应该有一层统一的能力、安全和审计接口?
软件工具和硬件动作的差别
今天很多 agent 框架把工具抽象成函数:
tool name
input schema
description
result
这个抽象对查数据库、搜网页、写文件和调用 SaaS API 很实用。但硬件动作需要更多约束。比如机器臂移动不只是 move(x, y, z),还需要速度、力矩、工作区域、碰撞检测、人员距离、急停状态、传感器置信度和环境模式。
如果把硬件动作包装成普通函数,模型会误以为它和查天气一样轻。工程上必须把动作能力拆得更细:哪些动作是只读,哪些是模拟,哪些会改变物理状态,哪些需要人工在场。
能力模型先于动作模型
物理 agent 的第一层安全,不是让模型“更小心”,而是让设备只暴露被授权的能力。
type HardwareCapability = {
name: string;
mode: "read" | "simulate" | "actuate";
maxRisk: "low" | "medium" | "high";
constraints: {
workspace?: string;
maxSpeed?: number;
maxForce?: number;
requiresHumanPresent?: boolean;
};
};
type HardwareSession = {
sessionId: string;
operatorId: string;
deviceId: string;
capabilities: HardwareCapability[];
expiresAt: string;
};
这和云权限类似,但更严格。一个巡检 agent 可以读取温度和摄像头状态,不一定能关停设备。一个实验室 agent 可以生成实验计划,不一定能直接启动离心机。一个仓储 agent 可以模拟路线,不一定能改变机器人速度上限。
物理动作需要 dry run
软件 agent 里的 dry run 常被当成可选体验;物理 agent 里它应该是默认路径。任何会改变设备状态的动作,都应先通过模拟器或约束检查。
type MotionPlan = {
deviceId: string;
action: "move_arm" | "open_valve" | "dock_robot";
parameters: Record<string, number | string>;
expectedSensors: string[];
};
async function approveMotion(plan: MotionPlan, session: HardwareSession) {
const simulation = await runSimulation(plan);
if (!simulation.withinWorkspace) return { ok: false, reason: "workspace" };
if (simulation.collisionRisk !== "none") return { ok: false, reason: "collision" };
if (!hasCapability(session, plan.action)) return { ok: false, reason: "capability" };
return { ok: true, reason: "safe_to_execute" };
}
模型输出的是计划,控制器执行的是经过校验的计划。这个边界必须清楚。否则一旦模型把自然语言目标翻译成危险动作,后端就会忠实执行错误。
传感器是安全输入,不只是上下文
在软件 agent 里,工具返回结果通常被当作上下文。物理 agent 里,传感器反馈也是安全条件。比如门是否打开、人员是否靠近、温度是否异常、电源是否稳定、设备是否处于维护模式,都应该影响后续动作许可。
这意味着 agent loop 不能只看模型对话历史,还要看环境状态机。
type SafetyState = {
emergencyStop: boolean;
humanNearby: boolean;
maintenanceMode: boolean;
sensorFreshnessMs: number;
};
function canActuate(state: SafetyState) {
if (state.emergencyStop) return false;
if (state.humanNearby) return false;
if (state.maintenanceMode) return false;
if (state.sensorFreshnessMs > 500) return false;
return true;
}
这里的 500 只是示意。不同设备有不同实时性要求。关键是不能让模型在过期传感器状态下继续行动。
审计要记录意图和物理结果
物理 agent 的审计日志不能只记录“调用了哪个工具”。它要记录模型意图、动作计划、审批结果、模拟器摘要、执行时间、传感器前后状态和人工干预。
intent: move sample tray to station B
plan: robot path id 1842, speed limit 0.4
policy: allowed after simulation
pre_state: no human nearby, e-stop off
post_state: position reached, force within limit
operator: user_248
这样做不是为了形式合规,而是为了事故复盘。物理系统出了问题,团队必须能回答:模型建议了什么,控制器改写了什么,硬件实际做了什么,哪个安全层没有发挥作用。
标准化的价值
如果每家公司都用自己的方式定义设备能力,agent 框架就很难安全接入硬件。一个标准接口至少应该覆盖几件事:能力声明、风险分级、动作 schema、模拟接口、实时安全状态、熔断信号、审计事件和人工接管。
这和 MCP 的关系也很近。MCP 标准化了模型访问工具和上下文的方式,但普通 MCP 工具不足以表达物理风险。未来很可能需要“硬件能力扩展层”:让模型知道某个工具是只读传感器、低风险模拟还是高风险执行器,并让运行时强制策略。
开发者的现实路线
第一阶段,不要让模型直连硬件 SDK。先封装只读工具,做状态解释和故障诊断。
第二阶段,开放模拟工具。让模型生成动作计划,但只在仿真环境里执行。
第三阶段,开放低风险动作。比如调整非关键参数、移动到安全区域、生成排班指令,但仍保留人工确认。
第四阶段,才考虑受限自动执行。必须有急停、限幅、传感器新鲜度检查和独立控制器。
这条路线看似保守,但物理世界没有“撤销发送”按钮。把进度放慢,反而会让产品更快进入可信部署。
组织职责也要提前分清。模型团队负责能力评测,机器人团队负责控制器和传感器,安全团队负责策略和审计,现场运营负责急停和人工接管。任何一方单独承诺“系统安全”都不够,物理 agent 必须是跨团队责任。
结论
Model Hardware Standard 这类讨论的核心,是把物理 agent 的安全从模型层扩展到设备层。模型可以理解目标,planner 可以生成步骤,但真正的硬件控制必须由能力受限、可模拟、可熔断、可审计的控制面接管。
开发者今天可以先改一个习惯:不要把硬件动作当普通函数。把它们当成高风险工具,先声明能力,再模拟,再审批,再执行。软件 agent 的安全边界已经够复杂,物理 agent 只会更复杂。标准化不是负担,而是让这个复杂度可控的前提。