mirror of
https://github.com/ThearchyHelios/AgentLab.git
synced 2026-11-15 06:02:01 +00:00
9d375f8f1c
「测试 1」按校验提示改好之后仍然跑不完:while 循环配了 1005 轮,每轮是"循环节点 + 循环体"两步,而整次运行的步数上限(max_graph_steps)是 200——跑到 100 轮上下 LangGraph 抛 GraphRecursionError,报错是一段英文,叫人去调一个界面上碰不到的 recursion_limit。 图没写错,是平台自己的两个上限在打架:校验通过,跑到一半才死。 全局上限防的是没人把关的环;loop 节点的 max_iterations 是作者明说的轮数上限。现在循环 按自己的轮数另记一份预算(schema.loop_steps),加在全局上限之上,子图同理。取上界: 一个节点最多跑 Π(包住它的各层循环 max_iterations + 1) 次,嵌套相乘;done 出口之后的 节点只跑一次,不按轮数记账,否则预算虚高、等于没有上限。 没有 loop 节点把关的环(分支连回上游)照旧由全局上限拦住,报错改成中文、说清预算怎么 来的、该怎么改;子图里撞上限报子图自己的名字和步数——以前那段英文会被外层包进 NodeError 原样带出来。 实测:「测试 1」照提示改完,在真沙箱里 1000 轮跑满,25 秒,结果 501500(= 2+3+…+1001)。 测试:test_step_budget 8 条——预算的上界、嵌套相乘、done 之后不记账;全局上限压到 20 步 时循环照样跑满 30 轮;空转的环中文报错;子图里的循环有自己的预算、空转的子图报它自己的 名字。把 runner / 子图的预算换成 0,对应用例确实失败。README 补了常见问题,测试数更新为 470。