上一篇讲了野行 Y 的地基,是一个模型驱动的循环。这篇把这块单独拎出来,讲清楚它在代码里到底怎么转,我又是怎么写的。
先看这个循环的骨架,简单到有点不像话:
只要还没排完:把现在知道的一切喂给模型,它决定下一步调哪个工具,执行那个工具,把结果塞回去,回到开头。
模型每一轮只做一个决定:就现在这些信息,下一步该干嘛。可能是搜目的地,可能是反问你几天,可能是估这段路开多久,也可能是行程排好了、该出报告。工具的结果回到上下文里,它看到结果,再决定下一步。这就是野行 Y 的核心,代码在 loop.py 的主循环里。它不关心「第几步该做什么」,就是反复地喂上下文、拿动作、执行、再喂回去,直到模型自己调 submit_plan 提交行程。
很多人第一次做「AI 规划行程」,第一反应是搭一条流水线:提取目的地,查机票,查酒店,排每天,拼成行程,输出。这条线能跑,demo 里跑得还挺顺。可一放到真人面前,它一碰就碎。
碎在真实的规划过程,从来就不是一条直线。有人跟你说想去高原自驾,你得先问他几天、几个人、开什么车,可也许他一句话就说全了,那就不该问。你查到稻城亚丁回成都要开八个多小时,一天开不完,你得回头,把这天拆成两天,中间加个住宿点。你查机票时发现某个地方压根没有直飞,你得换个思路。用户聊到一半突然改主意,说不去高原了换海岛,整条线得重来,可之前确认过的东西又不能全丢。
回头,换路,重来。流水线处理不了这三件事。你只能往里塞 if-else,塞到最后变成一坨谁都不敢碰的状态机,改一个分支,三个地方冒 bug。
循环换了个思路。它里面没有「第几步」的概念,只有「当前状态」和「下一步决定」。用户改主意,新消息进上下文,模型下一轮自然照新意图走。驾时太长要拆天,模型看到那段路返回八小时,自己决定加个住宿点。某个地方没直飞,工具返回无数据,它看到就换策略。规则从代码里,搬到了模型的判断里。我不再维护一个庞大的状态机,我维护的是:给模型什么工具、什么上下文、什么约束。

讲到这,听着像是把活全交给模型,它自己就搞定了。真跑起来你会发现,事情没这么美。
一个裸的 while 循环,会出两类事故。一类是它不收敛,一直搜一直查,绕圈子,就是不提交,你在旁边等得冒火。另一类是它跑偏,用户明明说了怕高反,它排个四千七的垭口还连着长途;用户带着老人,它给你排一天开八小时。
所以野行 Y 那个 loop,真实的样子一点都不优雅。它有很大一部分代码,是在兜模型的底。我挑几个真实的护栏说说。
它想拿一大段文字把行程糊弄过去、不调工具?拦下来。代码里有个计数器盯着,还没出报告就吐一大段文字,回注一句「别用纯文字,必须调 submit_plan 出正式报告」,逼它规规矩矩出结构化的东西。弱一点的模型最爱这么偷懒。
它查资料查上瘾,搜了三四次还在翻游记、迟迟不进正题?直接把搜索工具从它眼前撤掉。看不见搜索工具,它就只能往下走去排线。这一手比光靠文字提示管用,工具不在手里,它想绕也绕不了。
它想直接出报告?不行。出报告之前必须先把主线骨架摆给你确认一次,人得在环里。代码里强制着:submit_plan 之前如果一次确认都没走过,打回去,先摆给你看再说。
而且在摆给你看之前,还有一道换脑子的核对。模型刚排完主线,我不敢让它自己检查自己。它上下文里全是「我为什么这么排」的理由,让它自查,它容易自我确认,觉得排得挺好。所以另开一个干净的子 Agent,只拿着你的原始要求和这版主线,逐条核对有没有硬伤:怕高反却上了高海拔?带着老人却单日暴走?三个人里有一个人的必去点被漏了?揪出硬伤就打回重排。它接在你看到主线之前,所以有问题的版本你根本看不到,已经被拦下来重排了。
自驾的行程,出报告前还必须先算一遍每天的驾车时长。不然弱模型爱跳过这步,给你排出一天开十二个小时、一千多公里的鬼路线。代码里同样是强制的:没算过驾时就想提交,打回。
最后还有一道墙钟闸。步数上限这道护栏,在慢模型下形同虚设,一步就可能等一百多秒,撑不到步数用完,外部早超时了。所以我另加一个计时器:跑满五分钟还没出报告,不管它到哪一步,逼它用手上已经核实过的真实地名收尾。宁可行程短一天,也别转圈转到超时,给用户一个白屏。

你发现没有,做一个 agentic loop,最花力气的地方,不在「让模型自由决定」那句漂亮话,在后面这一堆「别让它自由过头」的护栏。让它自由是一行 while,兜住它乱来是几百行。做一个 agentic loop,力气主要就花在这圈护栏上。模型再聪明,也有犯浑的时候,系统得在那些时刻还能体面、还能收场。

这就是野行 Y 的循环:一个模型驱动的主循环,加一圈护栏兜着。它是整个 Agent 的引擎,后面每一块都挂在它上面转。
而循环里,模型每一轮能调的那些动作,搜目的地、估驾时、查机酒、提交行程,它们有个统一的名字,叫工具。工具的集合,划定了这个 Agent 能干什么、不能干什么。下一篇,就讲工具怎么设计。