Verax提供了 halt/resume 机制,Agent无法自行停止或解除暂停,所有操作带签名并写入分类账,防止Agent在halt期间偷偷放行请求。
有时候,你需要让一个 AI agent 立即停下所有操作。
Verax 为此提供了一个停止开关。一旦操作员拉下它,agent 此后发出的所有调用请求都会被拒绝,而每次拒绝都会像其他决策一样被签名和记录。
在安装版本中,开关对应的是命令行:verax halt,以及自 0.4.1 版本起的 verax resume。它们背后是两个 HTTP 接口:POST /api/halt 接受任何操作员的会话;POST /api/resume 需要 verax:approve 权限。agent 的 token 既不包含前者也不包含后者,因此 agent 无法自行停止以逃避检查,也无法解除他人设置的停止状态。
GET /api/halt 用于查询目标是否处于停止状态,以及是谁停止了它。
谁停止了、谁恢复了、以及何时恢复,这些都会写入 halt-history.jsonl 文件,这是一个位于开关旁边的日志文件。恢复记录行会在停止状态解除之前被写入。如果该行无法被写入,目标体将保持停止状态。
该文件是一个普通日志,而非签名日志。自 0.4.2 版本起,每次停止和恢复操作也会作为控制记录写入账本,由目标体的记录密钥签名,与开关断开期间产生的签名拒绝记录并列存放,且 verax verify 会对停止窗口内的任何允许操作报错。目标体对该记录进行签名,而非操作员。
开关拉下时正在执行的调用不会被切断。开关只会阻止此后的所有操作。
停止开关是一个位于目标体所在机器状态目录中的文件。它停止的是它旁边那个目标体,而非它无法触及的目标体。
在宣传视频中,开关是一个控制杆。在已发布的安装版本中,它对应的是命令行和那两个接口;而承载真实按钮的面板通过 verax desktop 呈现——不过该功能尚未发布。
本篇是该系列的第 3 集,用 three.js 动画制作,语音由 ElevenLabs 生成。
源码(Apache-2.0):https://github.com/verax-ai/verax