如果你最近在关注 AI 智能体,应该能感受到一个明显变化:智能体不再满足于"和你聊天""帮你写代码",而是开始尝试接管真实世界的操作。从文档处理、浏览器点击,到调用内部系统 API,智能体能完成的动作越来越多。
但这里有一个被大多数人忽略的分水岭:当智能体的操作对象从"屏幕里的数据"变成"物理世界的设备"时,问题性质完全变了。让一个智能体打印一份 PDF,和让一个智能体移动机械臂,风险等级差了好几个数量级。打印错了可以重打,机械臂移动错了可能造成安全事故。
Anthropic 发布的模型硬件标准(Model Hardware Standard,MHS)研究预览,瞄准的正是这个分水岭。它想做到的事情,是给"AI 智能体操作物理设备"这件事,提供一个共享的安全规范。
这篇文章想把 MHS 讲透:它到底解决什么问题、为什么需要"共享规范"、它和 MCP 这类协议有什么区别、作为开发者应该怎么理解并提前准备。读完你会对"智能体如何安全触达物理世界"形成一套自己的判断框架,而不仅仅是又多知道一个名词。
1. 这篇研究预览真正要解决的问题
要理解 MHS,先要理解当前 AI 智能体面临的一个尴尬现状:模型能力已经很强,但"动手能力"极度受限。
过去一年,大模型领域最热的方向之一就是 Agentic AI。各家公司都在推自己的智能体框架,从浏览器自动化到企业内部系统操作,从代码仓库管理到客服工单处理。智能体确实能完成不少任务,但它们绝大多数时候操作的是数字系统:调用 API、读写数据库、操作文件、点击网页。
数字系统有一个特点:操作是可回滚的、可限流的、可以随时熔断的。一次错误的 API 调用,最多是数据写错,可以回滚重来;即使出了问题,影响范围通常也限定在软件层。
物理设备则完全不同。
一台打印机的卡纸、一个机械臂的速度上限、一台医疗设备的温度阈值、一道生产线的互锁逻辑,这些都不是软件层能随意绕过的。如果智能体只是基于自然语言理解就向设备下发指令,一旦理解偏差或者上下文缺失,轻则设备损坏,重则引发安全事故。
MHS 研究预览的核心出发点,就是为"智能体操作物理设备"建立一套机器可读、可审计、可执行的共享规范。它不是某一个厂商的私有协议,而是希望成为行业共同遵守的基础设施层标准。
从材料透露的信息看,MHS 的研究预览包含三个关键诉求:
第一,让设备能够以标准化的方式声明"自己能做什么、不能做什么"; 第二,让智能体在执行操作前,能拿到结构化的安全约束,而不是依赖模型自己"猜"; 第三,让每一次物理设备操作都可记录、可追踪、可审计。
这三点看似简单,实际做起来非常难。难就难在"共享"二字:设备厂商、智能体开发者、企业运维方,三方必须对同一套描述语言和安全边界达成共识。
2. 为什么智能体操作设备需要"共享规范"
如果只看表面,很多人会觉得 MHS 不过是一个"设备控制协议",类似智能家居领域早就有的 MQTT、CoAP、HTTP 接口。但仔细看下去会发现,MHS 的定位和传统设备协议有本质区别。
传统的设备控制协议解决的是"怎么把指令传给设备",它关注通信层面:报文格式、网络连接、指令编码。至于"谁有权限下发这条指令""这条指令在什么条件下允许执行""执行后会留下什么记录",传统协议通常不关心,或者只在应用层各自实现。
MHS 要解决的,恰恰是这些传统协议没有覆盖的问题:在智能体自主决策的场景下,如何把"操作权"和"安全边界"同时交给智能体。
我们来做一个对比。假设没有共享规范,智能体要操作一台工业设备,开发者会怎么做?
通常会写一段定制代码,调用设备厂商提供的 SDK,在代码里硬编码一些检查逻辑。比如设备温度超过 80 度就拒绝启动,操作时间限定在白天,操作频率不能超过每分钟一次。这些逻辑写在一个项目里没问题,但一旦智能体要操作多种设备,问题就来了:
每台设备的 SDK 不同; 每个设备的参数含义不同; 每个设备的安全限制描述方式不同; 审计日志格式完全不同。
结果是,智能体每接入一台新设备,都要重新写一套适配和安全检查代码。这不是智能体能力问题,而是"设备能力描述"和"安全约束描述"没有标准化的问题。
MHS 的思路是把这一层从具体业务代码中抽出来。设备厂商按照统一格式描述设备能力,安全策略按照统一格式表达,智能体则通过标准化的接口读取这些描述,在执行操作前自动完成权限校验和参数校验。
这里可以做一个跨领域的类比:USB 接口和充电协议。早年各家手机充电器都是私有接口,互相不兼容,后来行业逐渐统一到 USB-C 和 PD 协议,充电这件事才真正标准化。MHS 想做的,就是智能体与物理设备之间的"USB-C"——不是某个具体实现,而是大家都认的接口标准。
当然,MHS 的研究预览目前还不是最终标准。更准确地说,它是 Anthropic 基于自身在 AI 安全领域的积累,提出的一个技术方向草案,需要行业一起讨论、修正、落地。
3. MHS 的核心思路:能力描述、权限边界与审计
前面说过,MHS 要解决的是三件事。这一节我们展开讲清楚,为什么这三件事对智能体操作物理设备如此重要。
3.1 设备能力描述:让智能体"知道"设备能做什么
智能体要安全操作设备,第一前提是"知道"设备能做什么。这里的"知道"不是模型通过训练数据学到的常识,而是在运行时获取的、机器可读的设备能力说明。
MHS 提出用结构化的方式描述设备能力,包括:
- 设备类型和标识;
- 支持的操作动作;
- 每个动作的参数范围;
- 执行条件;
- 安全等级。
这样设计的好处是,智能体在执行任务时,不需要依赖模型"猜"设备支持什么操作。它直接读取能力描述文件,就能判断"这台设备允许我执行哪些动作,每个动作有哪些参数限制"。
这解决了当前智能体操作设备的一个核心痛点:幻觉。模型对设备能力的理解一旦与现实不符,就可能导致错误指令。而结构化的能力描述,本质上给模型提供了一个可靠的"事实来源"。
3.2 权限边界:让智能体"被限制"地操作设备
能力描述只是第一步。真正决定安全的是权限边界。
MHS 设计的权限体系强调"默认拒绝"和"最小权限"。也就是说,智能体默认没有操作任何设备的权限,必须通过显式授予才能获得具体动作的执行权。而且每个授权动作都带有明确的参数范围和时间窗口。
这个思路和 Kubernetes 的 RBAC、云平台的 IAM 非常相似。核心原则是:不是"允许做什么",而是"除了明确允许的,其他一律禁止"。
对智能体来说,权限边界还有一个特别之处:智能体是自主决策的,它可能会在不同的上下文里发起同一个操作。因此权限校验不能只做一次,而应该在每次执行前都重新校验,并且结合当前上下文判断。
3.3 审计:让每次操作都"有迹可循"
物理设备操作的审计,比数字系统操作更重要,也更有挑战。
数字系统的审计日志可以记录完整的请求参数、响应结果、调用链。物理设备操作则要面对更复杂的情况:设备执行动作的时间、设备当时的运行状态、操作引发的后续变化,这些信息往往分散在多个系统中。
MHS 的设计目标是把审计作为基础设施的一部分,而不是事后补丁。这意味着从智能体发起操作请求开始,到权限校验、指令下发、设备执行、结果返回,全链路都要可记录、可追踪。
对于企业内部使用场景,这一点尤其重要。合规审计、事故回溯、责任界定,都依赖于能不能拿出完整的操作链路。
4. 演示:一份"设备能力描述"长什么样
MHS 目前还是研究预览,官方还没有公布最终的格式规范。下面我用一个演示性质的 JSON 示例,说明设备能力描述大概会长什么样。这个示例不是官方格式,但能帮助你建立直观理解。
{ "device_id": "printer-lab-01", "device_type": "printer", "vendor": "example-device", "capabilities": [ { "action": "print_document", "params": { "pages": { "type": "integer", "min": 1, "max": 100 }, "color": { "type": "enum", "values": ["mono", "color"] }, "duplex": { "type": "boolean", "default": true } }, "safety_level": "benign", "required_permission": "printer:print", "constraints": { "allowed_hours": ["09:00-18:00"], "max_daily_operations": 200, "requires_human_confirmation": false } }, { "action": "firmware_update", "params": { "version": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" } }, "safety_level": "critical", "required_permission": "printer:maintenance", "constraints": { "requires_human_confirmation": true, "allowed_hours": ["23:00-05:00"] } } ] }这个示例里,有两个关键设计值得注意:
一是参数范围。print_document动作的页数被限制在 1 到 100 之间,颜色只能选黑白或彩色。智能体在生成操作指令时,会自动收到这些约束,不需要模型"记住"打印机的参数范围。
二是安全等级和人工确认。firmware_update是高风险动作,不仅需要额外权限,还必须有人工确认。这个设计意味着,MHS 框架下,不是所有操作都能由智能体自主完成,高风险操作依然需要人来把最后一道关。
这里引申出一个重要判断:MHS 并不是要让智能体"无人值守地操作一切设备",而是要给"智能体操作设备"划定一个清晰的安全边界——哪些可以自主执行,哪些必须人工介入。
5. 示例:用"安全壳"模式封装物理设备操作
有了能力描述和权限策略,开发者还需要在代码层实现一个"执行挡板"。我把它称为"安全壳"模式。
所谓安全壳,就是在智能体和真实设备之间,加一层独立的执行代理。智能体不直接调用设备 SDK,而是通过安全壳提交操作请求,由安全壳完成四件事:权限校验、参数校验、执行、审计记录。
下面给出一个 Python 抽象实现,演示安全壳的核心逻辑。这个实现不是 MHS 官方代码,而是通用的工程思路,你可以根据自己的项目改造使用。
# 文件路径:safe_device_wrapper.py from dataclasses import dataclass from typing import Any, Dict, Optional import time import uuid @dataclass class OperationResult: success: bool operation_id: str message: str data: Optional[Dict[str, Any]] = None class SafeDeviceWrapper: """安全壳:在智能体与真实设备之间增加安全执行层。""" def __init__(self, capability: Dict[str, Any], policy: Dict[str, Any]): self.capability = capability self.policy = policy self.audit_log = [] def execute(self, agent_id: str, action: str, params: Dict[str, Any]) -> OperationResult: operation_id = f"op-{uuid.uuid4().hex[:12]}" # 第 1 步:检查权限 if not self._check_permission(agent_id, action): self._log(operation_id, agent_id, action, params, "denied", "permission denied") return OperationResult(False, operation_id, "permission denied") # 第 2 步:校验参数 if not self._validate_params(action, params): self._log(operation_id, agent_id, action, params, "denied", "invalid params") return OperationResult(False, operation_id, "invalid params") # 第 3 步:检查执行条件 if not self._check_constraints(action): self._log(operation_id, agent_id, action, params, "denied", "constraint not met") return OperationResult(False, operation_id, "constraint not met") # 第 4 步:执行操作 self._log(operation_id, agent_id, action, params, "executing", "accepted") try: result = self._invoke_device(action, params) self._log(operation_id, agent_id, action, params, "done", "success") return OperationResult(True, operation_id, "success", result) except Exception as exc: self._log(operation_id, agent_id, action, params, "failed", str(exc)) return OperationResult(False, operation_id, f"device error: {exc}") def _check_permission(self, agent_id: str, action: str) -> bool: allowed_agents = self.policy.get("permissions", {}).get(agent_id, []) return action in allowed_agents def _validate_params(self, action: str, params: Dict[str, Any]) -> bool: caps = self.capability.get("capabilities", []) for item in caps: if item["action"] == action: for key, rule in item["params"].items(): if key in params: value = params[key] if not self._match_rule(value, rule): return False return True def _match_rule(self, value: Any, rule: Dict[str, Any]) -> bool: rule_type = rule.get("type") if rule_type == "integer": if not isinstance(value, int): return False return rule.get("min", value) <= value <= rule.get("max", value) if rule_type == "enum": return value in rule.get("values", []) if rule_type == "boolean": return isinstance(value, bool) return True def _check_constraints(self, action: str) -> bool: # 演示:仅检查时间窗口 current_hour = int(time.strftime("%H")) caps = self.capability.get("capabilities", []) for item in caps: if item["action"] == action: allowed = item.get("constraints", {}).get("allowed_hours", []) for window in allowed: start, end = window.split("-") if int(start) <= current_hour < int(end): return True return False return False def _invoke_device(self, action: str, params: Dict[str, Any]) -> Dict[str, Any]: # 这里替换为真实设备 SDK 调用 # 演示环境可以打印日志,真实环境必须对接设备厂商 SDK print(f"[DEVICE CALL] action={action}, params={params}") return {"status": "ok"} def _log(self, operation_id, agent_id, action, params, status, detail): entry = { "time": time.time(), "operation_id": operation_id, "agent_id": agent_id, "action": action, "params": params, "status": status, "detail": detail, } self.audit_log.append(entry) print(f"[AUDIT] {entry}")这段代码的核心思想:智能体永远不直接触碰设备 SDK,只和SafeDeviceWrapper打交道。所有操作在进入真实设备前,都要经过权限、参数、约束三重校验,并且全程记录审计日志。
这个模式在 MHS 框架下会非常有用。因为 MHS 提供的是标准化的能力描述和权限策略,而安全壳正好是"读取标准描述、执行标准策略"的执行组件。两者结合,既能保证安全,又能保证不同设备之间的可移植性。
需要特别强调的是:上面这段代码是演示安全的工程思路,不是可以直接上生产环境的实现。真实项目中,你还需要考虑并发控制、操作超时、设备异常恢复、审计日志持久化等工程细节。
6. 示例:权限策略与最小授权配置
在 MHS 的体系里,权限策略不应该写在代码里,而应该以配置形式独立存在。这样运维团队可以在不修改代码的情况下调整权限边界。
以下是一个 YAML 格式的权限策略示例,演示如何为不同智能体授予不同等级的设备操作权限。
# 文件路径:policy/printer_policy.yaml device: printer-lab-01 agents: docs_agent: permissions: - printer:print limits: max_pages_per_job: 50 daily_quota: 200 allowed_hours: - "09:00-18:00" ops_agent: permissions: - printer:print - printer:maintenance limits: max_pages_per_job: 100 daily_quota: 1000 allowed_hours: - "00:00-23:59" requires_human_confirmation: - printer:maintenance deny_all_by_default: true这个策略文件的含义很清晰:
docs_agent只能打印,每份文件最多 50 页,每天最多 200 次,只能在 9 点到 18 点之间操作;ops_agent拥有更多权限,可以执行维护操作,但维护操作必须有人工确认;deny_all_by_default: true表示默认拒绝所有未明确授权的操作。
这种配置方式带来的最大好处是:安全策略和业务代码解耦。智能体的能力在提升,代码在迭代,但权限策略始终由安全和运维团队掌控。即使某一个智能体被攻击或者出现异常,它手里的权限也已经被限制在一个很小的范围内。
在实际项目中,我建议把这个策略文件放到独立的配置中心管理,并且通过 CI/CD 流水线做变更审查。任何权限变更都要经过审批,才能应用到生产环境。
7. MHS 对 AI 智能体开发者的实际影响
MHS 虽然还是研究预览,但它背后代表的方向,会直接影响接下来一两年 AI 智能体开发者的工作方式。
7.1 智能体开发的重心,正在从"能力"转向"可控性"
从招聘市场的公开趋势看,AI 智能体开发相关岗位需求正在快速增长,很多团队都在建设自己的智能体平台。但真正难的不是让智能体"会做",而是让智能体"可靠地做、安全地做、出了事能追溯"。
这就是最近行业里反复提到的 Harness Engineering 概念。所谓的 Harness,就是给智能体装上"缰绳":权限边界、操作限制、人工确认节点、监控告警、审计追踪。MHS 可以看作是 Anthropic 在 Harness Engineering 方向上的一个基础设施层提案。
如果你正在做智能体应用开发,我的建议是:不要只关注模型 prompt 和工具调用,还要尽早把权限、审计、熔断、降级这些"工程安全"能力纳入架构设计。等 MHS 真正落地时,你只需要把现有的安全壳接入标准格式,而不是推倒重来。
7.2 三种角色会在 MHS 落地时受益
设备厂商。按照统一标准描述设备能力后,不再需要为每家客户定制集成文档,设备接入成本大幅降低。
智能体平台开发者。通过标准化的能力描述,可以快速接入多种设备,不需要为每种设备写单独的适配层。
企业安全运维团队。统一的权限模型和审计格式,意味着安全策略可以集中下发、集中监控,而不是散落在各个业务系统里。
7.3 "能写代码的智能体"不等于"能控制设备的智能体"
最近 Claude Code 这类编程智能体非常火,很多开发者已经习惯让智能体帮忙写代码、修 bug。但必须清醒认识到:代码世界和物理世界是两套完全不同的安全模型。
代码写错了,顶多编译失败或者上线出 bug,可以通过 CI/CD 回滚。物理设备操作错了,可能就是设备损坏、产线停工、甚至人身安全风险。MHS 想建立的那套规范,本质上就是在智能体的"理解自由"和物理世界的"操作安全"之间,加一道结构化的屏障。
所以,即使你目前不做设备控制相关业务,也值得关注 MHS。因为它背后的权限模型、能力描述、审计设计,同样适用于企业内部系统的智能体操作——那些涉及核心数据、生产配置、用户隐私的高风险操作,早晚也需要类似的基础设施。
8. 常见误区与实操提示
围绕 MHS,有几个常见误区,我在这一节集中澄清。
| 误区 | 实际情况 |
|---|---|
| MHS 是让模型直接驱动底层硬件的驱动协议 | MHS 是设备能力与安全约束的描述层、管理层,不是电机驱动、串口通信这类底层协议 |
| MHS 会取代 MCP | 两者层级不同。MCP 解决模型与工具/数据源的连接,MHS 解决物理设备操作的安全边界,未来更可能是互补关系 |
| 研究预览就是最终标准 | 研究预览意味着方案还在讨论阶段,接口、格式、规范都可能调整 |
| 接入 MHS 就等于自动安全 | MHS 提供标准化框架,安全还需要权限策略、审计、人工确认、监控等机制共同配合 |
给开发者的实操提示:
第一,从现在开始梳理你的设备接入方式。盘点一下:如果设备能力要描述成结构化格式,你现有的代码能支撑吗?权限策略能不能从代码中抽离成独立配置?
第二,在智能体架构中预留审计层。不管用不用 MHS,审计都应该是物理设备操作标配。
第三,关注 Anthropic 官方后续发布。研究预览阶段会伴随技术文档、示例代码、社区讨论,这些是学习的第一手资料。
9. 落地建议:现在就可以做的三件事
MHS 还在研究预览阶段,距离生产应用还有距离。但这不代表开发者只能等待。有三件事,现在就可以开始准备。
第一件事:在自己的智能体项目里实践"能力描述与权限策略分离"。
不论最终标准是什么,把设备能力声明、权限策略、执行逻辑拆分成三个独立模块,都是正确的架构方向。这样未来 MHS 正式落地时,你只需要替换设备能力声明和权限策略的格式,执行逻辑不需要大改。
第二件事:建立智能体操作审计机制。
从第一天开始,就让每一个智能体动作都带上有意义的日志:谁发起的、什么时间、操作了什么设备、传了什么参数、结果如何。这些日志不仅是安全审计的依据,也是排查智能体行为异常的线索。
第三件事:参与标准讨论的社区。
像 MHS 这样的行业标准,最终一定是在讨论中成型的。无论你是设备厂商、智能体平台开发者,还是企业 IT 负责人,都可以从自身场景出发,向研究团队反馈真实需求。你遇到的坑,很可能就是别人也在面对的共性问题。
10. 最后的判断
MHS 研究预览最有价值的,不是它给出的具体技术方案,而是它把一个问题正式摆上了台面:当一个越来越自主的 AI 系统开始接触物理世界,行业需要一套共同认可的安全规范,而不是让每家公司各自摸着石头过河。
这套规范最终会长成什么样,现在还不确定。但方向已经清晰:设备能力要结构化描述,权限边界要显式配置,操作过程要全程审计,高风险动作要有人工兜底。
对开发者来说,与其纠结 MHS 的具体格式,不如先把这些原则落到自己的项目里。等标准真正成熟那一天,有准备的人只需要换一套描述格式,没有准备的人则要从头开始补课。