第 8 章

审批与信任

决定智能体可以自己做什么、什么要等人来点一下,以及事后怎么核实到底发生了什么。

全部章节

两个不同的问题

Olano 里的监督机制回答的是两个各自独立的问题,把它们分开处理,能让这些设置容易理解得多。

  1. 哪些操作需要审批? 一个持久的、按智能体各自设置的决定,由一个配置档、几个开关,加上可选的按工具覆盖规则组成。
  2. 遇到审批请求时会怎样? 如果有人正在盯着这段对话,就显示一张内嵌卡片;如果这一轮是在无人看管的情况下运行的,就在审批收件箱里排一条待处理项。

信任等级 0-4

每个智能体都带有一个信任等级,描述它被授予了多大程度的自主权。新智能体的默认等级是 2 级。

级别姓名能做什么
0观察者只读。它可以看、可以提建议,但什么都不会改。
1助手可以写自己的记忆和日志。除此之外,依然什么都不碰。
2协作者可以创建和编辑工作区文件,并在为它配置好的环境中执行命令。
3自主拥有工作区的完整权限,并对被判定为低风险的操作自动放行。
4开发者范围最广的设置,包括本地 shell 访问权限,并且会自动批准大多数操作。这是为开发准备的,不是给要面对客户的智能体用的。
始终成立

高风险操作在任何信任等级下都需要人工介入。等级 4 并不意味着“再也不用审批”——它扩大的是被视为常规的范围,而不是被视为危险的范围。

按类别设置的审批关卡

监督 在智能体 Overview 标签页里的卡片,用一个 模式滑块设定基线,每种模式都会往需要审批的动作集合里加一类新动作:

模式被扣下等待审批的内容
可信金融操作和写入密钥。
受监督上面这些,再加上写入外部系统、shell 命令,以及读取密钥。
严格锁定以上所有,再加上文件系统写入和把工作转交给子智能体。

不管你选了哪种模式,上面都会叠加两个开关: 写入操作前先询问 会加上对外写入;而 执行 shell 命令前先询问 则加上 shell。当你想要"可信任"级别整体的宽松,但唯独某一类不想放开时,就用这两个开关。

凌驾于一切之上的,是按工具设置的覆盖项。在智能体的 工具 标签页里,折叠的 审批覆盖设置(高级) 会列出每个选中的工具及其实际生效状态,还有一个 默认 / 始终询问 / 从不询问 控制项。这一项设置的优先级高于档位和开关——这就是为什么你可以把某个危险工具在一个原本可信的智能体上钉死为始终询问,反过来,对一个你已经看过上百次的工具也可以反其道而行之。

同一张卡片上还有扫描开关:检查往来文本中是否含个人信息,以及在回复中隐藏机密内容。这两项和审批是各自独立运行的。

回应一次审批

有人在盯着的时候,请求会直接嵌在对话里显示为一张卡片,带一个风险徽标和三个按钮: 仅本次接受全部接受 (会自动批准这一轮剩下的部分)以及 拒绝。没人回应的卡片会超时,并被当作拒绝处理,所以一段被遗忘的对话永远不会让某个动作无限期悬而未决。

聊天头部的 模式 会针对这一段对话,覆盖掉智能体的常驻设置:

  • 自动 ——批准这次会话里的每一次工具调用。不出现卡片。
  • 手动 ——每一次受限工具调用前都会先问。
  • 方案 ——先让智能体草拟一份计划。计划出现时会带一个 批准并运行 按钮;想改一改的话,只要还在 Plan 模式下继续打字追问就行。
  • 执行 ——批准一切,好去执行你刚刚批准的那份计划。

在头几次把有实际后果的工作交给智能体时,Plan 是该用的模式。任何事情真正发生之前,你都能先读到计划好的执行顺序。

审批收件箱

并非每一轮都有人盯着。当排期运行、自主阶段,或者从另一个智能体转交来的任务碰上受限工具时,这个动作会被推迟,转入 审批 板块,位于 概览 屏幕,然后暂停。

每一条都会写明工具名称、显示风险徽标,并标出发起的智能体,以及这次调用经过的路径。 批准 会让被卡住的这一轮继续下去; 拒绝 则会终止它。侧边栏的 Overview 项上带着实时计数,同一个数字也驱动着通知铃铛,所以待处理的审批从面板任何一个板块都能看见。

留意

收件箱里的条目正卡着某一轮不让它结束。如果没人去看收件箱,那个本该在夜里发送报告的任务就会一直搁在那儿,而不会真正运行。把检查它变成你查看每日要点时的同一套习惯的一部分。

审计记录

有好几个界面在记录发生过的事,各自回答不同的问题。

在哪里回答的问题
版本记录配置和工作区文档里改动了什么、什么时候改的,以及是哪个智能体的哪一轮改的。筛选到某一个文件就能看它的历史,任何一个版本都能原样查看当时的样子。
Insights 工作日志某一天做了什么,按智能体分开,配有文字叙述和各智能体的用量。
智能体之间智能体之间的每一条消息,包括请求内容、回复,以及耗时多久。
Scheduler 历史每一次排期运行是成功还是失败。
Cortex 活动改进引擎自主做了什么,每一处改动都能一键撤销。
日志未加工的运行时日志,可按级别筛选——当有什么东西没能启动时,该去看的地方。

Revisions 是那种最好在你需要之前就了解的功能。它会自动记录,还有一个 立即快照 按钮,能在你刚编辑完什么、又想让记录精确无误时,立刻把待处理的改动提交下来。

使用上限

三道各自独立的限制,把一个智能体的消耗控制在边界之内。

  • 消息频率限制。 按智能体计,也可以选择再按渠道细分,覆盖按分钟、按小时和按天的窗口。在 配置 设置全部署默认值,并可以在具体某个智能体的 频率限制 卡片上收紧限制。一旦超出限制,消息根本到不了模型那儿,发送者会被告知稍后再试。排期任务和自主运行不受此限制约束。
  • 单轮限制。访问与安全 卡片会限定单独一轮最多能持续工作多久——一份迭代次数预算,加上重试次数限制——这样卡住的智能体会停下来,而不是死循环。
  • 每日推理预算。 Cortex 对每天开销较大的自主运行有它自己的上限;一旦用完,自主阶段会跳过直到第二天,而不会改用更便宜的模型继续跑。参见 第 7 章.

在托管部署上,额度余额会显示在 Overview 和 Insights 里,分成套餐内含和额外购买两部分,还带一个按月重置的计量表——这样一来,消耗情况是你能一直盯着看的,而不是事后才发现的。

凭据保险库

智能体用到的每一个机密,都存放在加密的 保险库保险库里,也只存在那儿。渠道令牌尤其如此,它们是保险库字段,不是配置字段:智能体的配置文件里不会以任何形式写出这个凭据的名字。开启团队账号后,保险库就只对管理员开放。

每个机密都可以选择共用,也可以限定范围。一条通用条目会被所有智能体使用;同名的按智能体覆盖项则让某一个智能体拥有自己的取值——十个 Telegram 机器人正是靠这个办法,共用一个显而易见的凭据名字,而不必发明十个不同的名字。智能体的 变量 Vault 标签页管理它自己的覆盖项,该智能体的所有者和管理员都能访问;而整套部署级别的保险库则始终只对管理员开放。

取值永远不会显示给模型,也永远不会被记入日志。改动某个值后,工具包凭据会在智能体的下一轮生效;而模型供应商密钥和渠道令牌是在启动时读取的,需要重启才能生效。

注意

如果保险库处于锁定状态,需要凭据的连接器就无法启动,Overview 上会有通知说明这一点。解锁后,那些智能体就能重新连接。被锁定的保险库永远不会丢失已存的值——它只是暂时读不到而已。