跳转到内容

正在加载搜索…

Agentic control

大多数语言模型 agent 一次只走一步:观察,选择一个动作或一次工具调用,再观察。模型处在控制回路之内,所以每一步都要等它,每一步都要花一次调用。

Agentic control 把模型移出这个回路。模型改为编写控制器:会感知、行动并检查自身结果的程序,把任务交给学习型策略的决定,以及在每个控制步上运行的反射。控制器独立运行;只有在决策点才会再次询问模型:一个程序结束时,某件事越过了它下面的所有层时,或者下一步取决于尚未看到的东西时。这样一个 episode 只需要寥寥几次模型调用,模型之下的任何东西都从不等待模型调用。

层 编写者 运行时机 作用
语言模型 你配置的任何模型 在决策点,以秒计 规划,编写下一个程序,读取其结果
程序与学习型策略 模型(程序);训练(策略) 每次 skill 调用 组合 skill 和工具;在代码力有不及之处把整个任务交给学习型策略
反应层 模型 每个控制步 guard 和控制器,负责保持、停止或纠正,并发出事件
安全层(shield) harness,固定不变 每条指令 不会被学习、也不会被改写的限制,不管指令是谁写的

每一层以自己的速度处理它能处理的,只把处理不了的向上传:触发的 guard 向程序发出事件,失败的程序带着错误结束,只有到这时模型才会查看。episode 运行时给出每一层的细节;程序与决策点解释模型如何决定写什么,以及何时把任务交给学习型策略。

代码能行的地方用代码,不行的地方用策略

Section titled “代码能行的地方用代码,不行的地方用策略”

程序擅长能写下来的东西:找到名称或标签所指的物体,在自由空间中移动,检查结果并重试。学习型策略擅长写不下来的东西:每秒多次的熟练接触,来自它所受的训练。在任务开始时,模型阅读每个策略的描述,并决定由谁来做这个任务。策略学过的任务整个交给它;策略做不了的部分由程序保留。

harness 只通过观测和指令与环境打交道。同一个 agent 可以在 benchmark 的官方环境上运行(安装在你的机器上),也可以在来自 The Simulator 的任务上运行;语言模型、学习型策略和工具各自只是一行配置。Skill 和服务与环境描述能力如何接入。

每次运行都记录一个 lock 和一个 identity:提示词、skill、模型,以及决定其计算内容的每一项设置。模型在哪里运行不属于 identity,因此同一个 agent 在更大或更小的机器上仍是同一个 agent。配置与 identity。