使用文档
一直活着的 Agent
The One 的 Agent 不是调用完就消失的函数:每个 Agent 有自己一直运转的生命循环,睡着、出错、应用重启之后都还在。
The One 的 Agent 是活着的,不是被调用一次就结束的函数。每个能运行的 Agent 都有自己一条不停的生命循环,并且只通过自己的工具决定自己的状态。
醒着、睡着、出错
- 醒着:一轮接一轮地推理和行动,见 ReAct 与回合。
- 睡着:Agent 用
sleep_node歇下,但它没有消失。它的循环每秒看一眼自己的状态,你的消息、别人交过来的工作、一个回答或一个后台结果,都会叫醒它。它的上下文一直都在,随时可以查看。 - 出错:模型服务出错、连不上时,Agent 不会被放弃。它按越来越长的间隔重试,间隔最长 10 分钟,之后就按这个间隔一直试下去;服务商要它多等时(比如用量窗口用完了),就等得更久。如果是凭据被拒,你在设置里换了这个连接的凭据后,它会在几秒内再试一次;在对话里点现在就试也一样。
存下来的状态才是真的
一个 Agent 醒没醒、在做什么,以存下来的状态为准,而不是以某段内存为准。叫醒一个 Agent,就是把它的状态写成“醒着”;它的循环读到,就醒来。所以:
- 你关掉应用、电脑重启,或者应用崩溃了,什么都不会丢。再打开时,每次运行都照存下的样子回来,只是先暂停着;正干到一半的 Agent 标着出错,让你看得出它被打断过。你恢复这次运行,或者给它发一条消息,原来在干活的 Agent 就接着干。触发器开的运行会自己接着做;Agent 自己要求的重启(
restart_desktop_application)也一样,重启后原来在跑的运行自己接着跑。 - 一个本该在跑的 Agent 万一丢了它的循环,宿主每分钟巡检一次,把它找回来。
- 新消息和“这一轮结束”同时到时,新消息赢:Agent 醒着去回,不会出现消息存下了、Agent 却睡着没人回的情况。
暂停和打断
- 暂停是协作式的:Agent 先做完手上这一步,在两轮之间停下。宿主自己只用这种暂停,比如用量到了你设的边界。
- 打断和急停只有你能做,而且立刻生效。打断一个 Agent,它手上的这一步就停下;急停所有 Agent 中断所有 Agent,结束它们启动的命令,并暂停所有运行,直到你恢复。恢复以后,原来在干活的 Agent 接着干。见行动记录、撤回和急停。
为什么这样设计
一个要替你长期做事的助理,不能因为一次报错就放弃,也不能因为应用重启就忘了手上的活。每个 Agent 一直活着、以存下来的状态为准,它才能像一个靠得住的同事:歇下了,叫一声就回来;出错了,过一会儿自己再试;你不在的时候,事情照样往前走。