

history = [task]
while True:
step = model(history, tools)
if step.is_final:
break
out = tools[step.tool](**step.args)
history.append(out)# Cell 3:模型上一轮写的代码
pages = [fetch(u) for u in urls]
notes = summarize(pages)
# 调用模型,只带挑好的上下文;
# 它用 set_next_cell_code 写出 Cell 4
call_me(input=f"继续任务:{notes}")简化示意;示例函数仅作说明。
| 维度 | 常见 ReAct 实现 | Fibona Agent |
|---|---|---|
| 谁写循环 | 模型逐个 Cell 写出 | ReAct:开发者,写在宿主里 |
| 一步是什么 | 一段完整的 Python | ReAct:一次工具调用 |
| 能力边界 | 两个宿主工具加上整个解释器 | ReAct:预先注册的工具清单 |
| 上下文 | 只带代码挑选的内容 | ReAct:全部历史逐轮累积 |
| 出错时 | 恢复 Cell 连续失败三次才停止 | ReAct:错误作为观察交回模型 |
| 何时结束 | 只在用户要求时退出 | ReAct:模型给出最终答案 |