停止把方向盘交给 AI
Source: Dev.to
构建可控 AI 代理的实用检查清单
AI 代理在规划、推理和完成任务方面越来越强大。
我能安全地让它在我的系统上执行操作吗? 在大多数情况下,诚实的答案是 不。
本文不是在讨论 AI “不好”。而是关于如何构建足够安全、可以在生产环境运行的代理。
当代理 不 适合生产环境时
如果你的代理出现以下任意情况,则它尚未准备好投入生产:
- 直接执行真实操作(转账、基础设施变更、配置更新、数据修改)
- 对相同输入产生不同的结果
- 依赖隐藏的上下文或对话历史
- 无法说明是谁批准了某个操作
- 在输入不明确时仍继续执行,而不是停止
这些都不是边缘案例。
分层架构(思考层次,而非提示)
[ AI Agent ]
↓
[ Structured Output ]
↓
[ Deterministic Decision Layer ]
↓
[ Human / Policy Veto ]
↓
[ Execution ]
AI 决不能跳过任何层。
好的模式 vs. 坏的模式
结构化意图 vs. 自由形式指令
坏的例子
Deploy the new config to production.
好的例子
{
"intent": "deploy_config",
"risk_level": "high",
"missing_info": ["rollback_plan"],
"confidence": 0.72
}
基于代码的决策 vs. 仅模型决策
坏的例子
if model_says_yes:
deploy()
好的例子
if risk_level == "high" and not approved:
block()
确定性输出 vs. 猜测
坏的例子 – 猜测缺失值、尝试其他工具、 “继续执行”。
好的例子
status = "FAIL"
reason = "Insufficient information"
沉默或模糊永远不等于授权。
禁止的直接调用
绝不可在没有明确人工监督的情况下让代理调用以下任何函数:
trade()deploy()delete()write_prod_config()
代理应当 提出 动作;人类必须 批准 高风险动作。
人工 / 策略否决要求
- 对高风险动作设置人工批准步骤。
- 记录 谁 批准以及 何时 批准。
- 使批准步骤不可被绕过。
如果没有人能够说 “我批准了这个”,请自问:
“我能在明天使用相同的输入重新得到这个决定吗?”
如果答案是 否,则该代理不具备生产安全性。可重现性胜过可解释性。
可重现性检查清单
- 我能立即停止代理吗?
- 我能精确重放它的最后一次决策吗?
- 我能指向批准该决策的具体人吗?
- 我能证明它再次会做同样的事吗?
只要有任意一项回答为 否,就 不要 授予执行权限。
受控代理的价值
即使有这些限制,代理仍然极具价值,可用于:
- 语义解析
- 风险检测
- 工作流协同
- 减轻人类认知负荷
未来属于 受控 代理,而不是完全自主的代理。代理越聪明,稳健的安全防护就越关键。
最后思考
生产系统的失败并非因为 AI 本身薄弱。
如果你想让你的代理在演示之外生存下来,把方向盘收回,装上真正的刹车。