OpenAI CEO Sam Altman 在联合国安理会的发言聚焦三个彼此关联的问题:如何提升 AI 安全、如何确保人类始终保有控制权,以及为什么国际合作不可或缺。对开发者和技术负责人来说,这些议题不应只停留在政策讨论中,还需要被翻译成权限、审批、日志、测试和事故响应机制。
“人类控制”必须是系统属性
在人机协作产品中,页面上增加一个“确认”按钮,并不等于建立了有效的人类控制。真正的控制至少包含四个条件:
- 可理解:审批者能看到模型准备执行什么操作、影响哪些对象,以及为什么触发审批。
- 可拒绝:拒绝操作不会被系统自动重试、绕过或降级成另一条执行路径。
- 可撤销:高影响操作应尽可能提供回滚、冻结或补偿机制。
- 可追责:系统需要记录模型版本、输入摘要、工具调用、审批人和执行结果。
这意味着团队要按“行动影响”而不是“模型能力”分级。例如,生成会议摘要通常可以自动完成;发送外部邮件需要确认;修改生产权限、发起资金转移或控制关键基础设施,则应采用更严格的多人审批和隔离机制。
一个可操作的分级表可以是:
| 风险级别 | 示例 | 推荐控制 |
|---|---|---|
| 低 | 摘要、分类、草稿 | 自动执行并保留日志 |
| 中 | 对外发送消息、修改普通业务数据 | 单人确认、参数预览、幂等执行 |
| 高 | 资金、生产权限、关键设施操作 | 多人审批、短期凭证、独立策略引擎、强制冷静期 |
安全不能只靠模型拒答
模型层的安全训练很重要,但生产系统不能假设模型永远判断正确。提示注入、权限配置错误、工具参数异常以及下游服务故障,都可能让一条看似合理的输出变成真实事故。
更稳妥的架构是把控制拆成独立层次:
- 模型提出结构化行动建议,而不是直接持有长期生产凭证。
- 策略引擎根据行动类型、资源范围和风险等级作出确定性判断。
- 高风险行动进入人工审批队列。
- 执行器使用短期、最小权限凭证调用目标系统。
- 审计系统记录提议、审批和执行三个阶段。
这样设计的关键价值是:即使模型受到误导,外部控制层仍能阻止越权行动。反过来,如果所有安全规则都写在系统提示词里,那么提示词一旦被绕过,防线也会一起消失。
可以这样实践:给 AI 工具调用加一道确定性闸门
下面是一个不依赖第三方库的最小示例。它不会连接真实生产系统,而是演示如何根据行动类型决定自动执行、人工审批或直接拒绝。保存为 approval_gate.py 后即可运行。
from dataclasses import dataclass, asdict
from datetime import datetime, timezone
import json
from pathlib import Path
from typing import Any
POLICY = {
"summarize_document": "allow",
"send_external_email": "review",
"change_production_role": "review",
"disable_audit_logging": "deny",
}
@dataclass
class Action:
actor: str
name: str
arguments: dict[str, Any]
reason: str
def write_audit(event: str, action: Action, decision: str) -> None:
record = {
"time": datetime.now(timezone.utc).isoformat(),
"event": event,
"decision": decision,
"action": asdict(action),
}
with Path("audit.jsonl").open("a", encoding="utf-8") as f:
f.write(json.dumps(record, ensure_ascii=False) + "\n")
def authorize(action: Action) -> bool:
decision = POLICY.get(action.name, "deny")
write_audit("policy_evaluation", action, decision)
if decision == "allow":
return True
if decision == "deny":
print(f"拒绝执行:策略禁止 {action.name}")
return False
print("\n待审批行动:")
print(json.dumps(asdict(action), ensure_ascii=False, indent=2))
approved = input("输入 APPROVE 才允许执行:").strip() == "APPROVE"
write_audit("human_review", action, "approved" if approved else "rejected")
return approved
def execute(action: Action) -> None:
# 实际项目中应在这里换取短期凭证,并调用受限的工具适配器。
print(f"模拟执行:{action.name},参数:{action.arguments}")
write_audit("execution", action, "completed")
if __name__ == "__main__":
proposed_action = Action(
actor="support-agent-v1",
name="send_external_email",
arguments={
"to": "customer@example.com",
"subject": "工单处理结果",
},
reason="模型建议向客户发送处理结果",
)
if authorize(proposed_action):
execute(proposed_action)
else:
print("行动未执行。")
运行命令:
python approval_gate.py
cat audit.jsonl
接入真实业务前,需要进一步改造:不要让模型自行声明风险等级;策略应由服务端根据工具名称和参数计算;审批身份要通过企业身份系统验证;敏感字段应脱敏或加密;执行接口还要支持幂等键、超时和回滚。
国际合作最终要落到可互操作的机制
AI 系统跨越国界提供服务,而各国的法律、风险容忍度和基础设施并不相同。国际合作若只形成原则声明,很难直接改变生产系统。更有工程价值的协作对象包括:
- 统一或可映射的事故严重度分级;
- 能跨组织交换的模型与系统评测结果;
- 对高影响能力采用一致的测试术语和报告字段;
- 明确漏洞、滥用和重大事故的通报渠道;
- 为敏感日志设置保存期限、访问权限和跨境传输边界。
共享信息也存在边界。完整提示词、用户数据、模型权重和攻击细节不应默认公开。团队可以优先交换经过脱敏的指标、复现条件、受影响版本、缓解措施和时间线,在透明度与安全性之间建立清晰规则。
上线前可以检查什么
将安全、人类控制和国际协作转化为工程要求时,可以从以下清单开始:
- 模型是否能够直接取得长期高权限凭证?
- 每一种工具调用是否都有明确的默认拒绝策略?
- 审批者是否能看到最终参数,而不只是模型生成的解释?
- 拒绝后是否存在自动重试或其他绕过路径?
- 日志能否关联模型版本、策略版本、审批记录和执行结果?
- 团队是否定期演练提示注入、凭证泄露和错误授权场景?
- 重大事故是否有停机开关、负责人、通报时限和外部联络渠道?
- 跨境共享的评测与事故数据是否经过脱敏和合规审查?
国际层面的治理需要长期协商,但工程团队不必等待所有规则尘埃落定。把高风险行动从模型中剥离出来,用确定性策略、人类审批、最小权限和可验证日志包围模型,就是今天可以实施的一步。