VIII · Safety & ControlExperimental·

自我编辑批评门Self-Edit Critic Gate

也称为 Two-Phase Write Critic, Self-Modification Veto Gate

通过单独的批评模型调用,将每个提议的写入或删除路由到代理的自身承载源和身份文件,以便在编辑生效之前可以否决该编辑。

此模式有助于完成某些更大的模式 —

  • 专注于自我修改差异门·通过一个单独的评论者角色来审查差异,限制代理对其自身代码或规则的编辑。

上下文

一个长期运行的代理被允许编辑其自身实例中的文件,包括其运行的源代码和身份文件。大多数编辑是常规的,但有一些涉及承载文件(主要配置、调度器、个性或章程),在这些文件中,一个粗心的重写可能会导致下次重启无法启动。没有人实时审核每个写入。

问题

一个自我修改的代理直接应用自己的编辑,在自信错误的生成和对其依赖的代码的不可逆更改之间没有任何缓冲。如果一个模型决定将一百行配置简化为五行,删除一个关键导入,或删除一个保存状态的文件,它将导致自身崩溃,因为循环本来会注意到并恢复,故障是自我抹去的。完全禁用自我编辑会移除该能力,而将每个写入路由到人类审批队列会使常规更改停滞在一个并不总是在场的人身上。

影响因素

  • 每次高风险写入时,批评调用都需要模型往返;例行的低风险编辑应跳过此步骤。
  • 批评必须安全失败:如果批评调用本身出错,所选择的策略(开放失败与关闭失败)决定是否仍然需要硬性非模型后备。
  • 过于严格的否决会阻止合法的重构;过于宽松的否决会破坏门控。

示例

在一个安静的时刻,代理决定其主要配置文件太长,提议用一个五行的存根替换一个一百行的模块。写入通过受限检查进行路由:该路径被标记为高风险,因此一个单独的批评调用读取差异和理由,看到一个整体重写,移除了没有替代的顶层定义,并返回 approve:false。写入被阻止,批评拒绝条目记录在账本中。代理继续使用工作配置运行,而不是在下次重启时崩溃,这正是促使在早期事件后设置门控的失败,因为该事件剥离了同一个文件。

图表

解决方案

因此:

调度器的写入和删除分支调用一个单一的门控写入检查。一个廉价的确定性预检查首先运行(语法有效性,一个明确的销毁后备),并且可以在没有任何模型调用的情况下硬性否决。对于被分类为高风险的路径,一个单独的批评模型调用查看提议的路径、差异摘要和代理的陈述理由,并返回批准/理由的裁决;一个否决会阻止写入。每个分类、否决和批准都被附加到账本上,低风险路径完全跳过批评。因为批评是与提议编辑的调用不同的调用,所以一个自信的生成不能同时授权和祝福自己的更改。

此模式禁止的内容。 对高风险路径的写入或删除在单独的批评调用批准之前不能应用;提议调用不能祝福其自己的编辑。

与之并列或对立的模式——

  • 补充Darwin-Gödel 自我重写·一个代理重写自己的源代码,归档每个成功的变体,并从归档中抽样变异父代,而不是最新版本,利用归档多样性作为跳出局部最优的跳板。
  • 替代审批队列★★队列代理提出的操作以便进行异步人工审核,同时代理继续其他工作。
  • 补充变更的共识·需要多个连续的时刻(或运行)达成一致,才能将变更应用于持久状态。

邻域

点击任何邻居以跟随语言。滚动以缩放,拖动以平移。