上午聊了 AI 的不确定性管理,核心结论是:承认不知道比假装知道更安全。下午换个角度:当 AI 知道自己能做什么的时候,它该不该做?这就是人机协作的边界问题。

问题的本质

很多人把 AI 当成「超级工具」或「聪明助手」,这种理解已经过时了。更好的框架是:人机作为一个协作系统。在这个系统里,人和 AI 各自有擅长的领域,关键是划清楚谁负责什么。

边界模糊的后果很严重:

  • AI 擅自发送了邮件,内容有问题但已经发出
  • 用户反复确认同一个操作,AI 不理解「确认」背后的犹豫
  • 复杂任务中,AI 做了太多假设,偏离了用户真实意图

上午讲的是「AI 不知道什么时候不该做」,下午讲的是「AI 知道能做的时候,怎么决定做不做」。

四种协作模式

从人类介入程度来看,人机协作可以分为四个层级:

1. 全自动(Full Autonomy)

AI 独立完成,无需人类介入。适用于:

  • 低风险、可回滚的操作
  • 明确规则、无歧义的任务
  • 人类已经授权过的重复性工作

OpenClaw 的 cron 定时任务就是典型例子。你设定好规则,到了时间自动执行,不需要每次确认。

2. 人授权后执行(Human Approval)

AI 准备好方案,人类点头后才执行。这是目前最实用的模式。关键是区分「通知」和「授权」:

  • 通知:告诉你我做了这件事
  • 授权:做之前问你同不同意

大多数「智能助手」的问题在于,它们把「通知」当成「授权」的替代品。真正的授权需要明确的确认机制,而不是事后的总结。

3. 人机共舞(Mixed Initiative)

任务在执行过程中,人和 AI 交替主导。这种模式最复杂,也最有价值。

举个例子:你让 AI 写一个功能。它写了第一版,你看完说「这里改一下」,它继续改,你再反馈。这个过程中,主导权在来回切换。

OpenClaw 的 session 系统支持这种模式。你可以随时介入正在进行的任务,发送新指令,AI 会根据当前状态调整方向。

4. 人类主导,AI 辅助(Human Led)

人做决定,AI 提供信息和选项。这是最保守也是最安全的模式。适用于:

  • 高风险决策
  • 涉及他人利益的行动
  • 创意性工作(AI 提供灵感,人做最终选择)

边界设计的五个原则

基于 OpenClaw 的设计和实际使用经验,我总结了五个边界设计原则:

原则一:默认保守

除非明确配置,否则 AI 应该倾向于「不做」而不是「做」。这意味着:

  • 默认需要确认的操作:写文件、发送消息、执行命令
  • 只读操作可以放宽:读取文件、搜索信息、列出会话
  • 破坏性操作需要额外保护:删除、修改配置

OpenClaw 的 Tool Policies 就是这个原则的体现。通过 tools.allowtools.deny 可以精确控制每个 Agent 的能力边界。

原则二:显式优于隐式

用户应该知道 AI 能做什么、正在做什么。这包括:

  • 清晰的权限展示:我能读写文件,但不能发送邮件
  • 操作前的确认提示:我要修改 production 配置了,确认吗?
  • 操作后的审计日志:我做了什么,结果如何

隐式假设是协作失败的主要原因。与其让 AI 猜测用户的意图,不如明确沟通。

原则三:渐进授权

信任是逐步建立的,权限也应该如此。OpenClaw 支持多 Agent 架构,可以为不同场景配置不同的权限级别:

1
2
3
个人 Agent:完全权限,无沙箱
工作 Agent:受限权限,可读写但不可执行
家庭 Agent:只读权限,仅查询信息

这种分层设计让用户可以根据场景调整 AI 的能力边界。

原则四:可逆优先

优先执行可回滚的操作。如果一次执行不可逆,需要更高的确认门槛。这与上午的不确定性管理形成呼应:当 AI 不确定后果时,选择更保守的路径。

原则五:上下文感知

同样的操作,在不同的上下文中应该有不同的边界。OpenClaw 的 Binding 系统就是这样工作的:

  • WhatsApp 个人号 → 宽松权限
  • WhatsApp 工作号 → 严格权限
  • Telegram 群组 → 仅响应 @提及
  • Discord 频道 → 根据频道类型调整

上下文决定了协作模式,而不是一刀切的全局配置。

OpenClaw 的边界架构

OpenClaw 的设计很好地体现了这些原则。让我们看几个关键机制:

1. Tool Policies:能力边界的声明式配置

每个 Agent 可以有自己的工具白名单和黑名单:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
agents: {
list: [
{
id: "personal",
tools: { allow: ["*"] } // 全开
},
{
id: "family",
tools: {
allow: ["read", "sessions_list"],
deny: ["write", "edit", "exec"]
}
}
]
}
}

这种声明式配置让边界清晰可见,也方便审计。

2. Sandbox:执行边界的环境隔离

更严格的边界通过沙箱实现。OpenClaw 支持两种沙箱模式:

  • scope: "shared":多个 Agent 共享一个容器
  • scope: "agent":每个 Agent 独立的容器

沙箱不仅限制文件系统访问,还可以限制网络、进程等系统资源。

3. Session 隔离:状态边界的会话管理

每个对话都在独立的 Session 中进行,Session 之间不会泄露信息。通过 sessions_listsessions_history,你可以查看 AI 的工作轨迹,这也是可审计性的体现。

4. Sub-Agent:任务边界的递归分解

复杂任务可以 spawn 子 Agent 来处理。子 Agent 在自己的 Session 中运行,有独立的工具集,完成后结果返回给父 Agent。这种设计让复杂协作成为可能:父 Agent 协调,子 Agent 执行。

5. Memory 分层:知识边界的长短期分离

  • memory/YYYY-MM-DD.md:每日日志,短期记忆
  • MEMORY.md:长期沉淀,跨会话共享

这种分层让 AI 知道什么该记住、什么该遗忘,也保护了敏感信息(MEMORY.md 只在私人会话中加载)。

实践建议

如果你正在设计一个 AI 协作系统,以下是一些具体建议:

1. 从最小权限开始

先给 AI 最少的权限,观察它如何使用,再逐步放开。这比事后收回权限更容易建立信任。

2. 明确「确认」的含义

不同操作需要不同级别的确认:

  • 读取文件:无需确认
  • 写入文件:简单确认
  • 发送消息:详细确认(内容预览)
  • 执行命令:双重确认 + 后果说明

3. 利用多 Agent 架构

不要试图用一个 Agent 处理所有场景。为不同场景创建专门的 Agent,每个有自己的边界配置。这不仅是安全考虑,也让 AI 的行为更可预测。

4. 保持审计日志

记录 AI 的所有操作,包括成功和失败的。这不仅是为了安全,也是为了调试和改进。OpenClaw 的 session 历史就是这个用途。

5. 设计「暂停」机制

当 AI 遇到不确定的情况时,应该暂停并询问,而不是继续执行或猜测。这与上午的不确定性管理直接相关:知道什么时候停下来,比知道什么时候继续更重要。

结语

人机协作边界设计的核心是:清晰的权责划分比完美的自动化更有价值

我们不需要 AI 无所不能,我们需要的是「可预测的协作」。当我知道 AI 会做什么、不会做什么,我才能放心地让它参与我的工作。

上午讲的是「承认不确定性」,下午讲的是「明确协作边界」。这两个主题加在一起,构成了人机协作的基石:

  • 当 AI 不确定时,它知道停下来问
  • 当 AI 确定时,它知道哪些能做、哪些需要确认

这不是限制 AI 的能力,而是让这种能力变得可用、可信、可持续。