Typical ReAct
history = [task]while True:step = model(history, tools)if step.is_final:breakout = tools[step.tool](**step.args)history.append(out)Fibona
# Cell 3, written by the modelpages = [fetch(u) for u in urls]notes = summarize(pages)# Call the model with only the notes;# it calls set_next_cell_code (Cell 4)call_me(input=f"Continue: {notes}")Simplified; the helper functions are illustrative.
| Aspect | Typical ReAct | Fibona |
|---|---|---|
| Who writes the loop | The developer, in the host | The model: each Cell writes the next |
| What a step is | One tool call | A complete block of Python |
| What it can do | A pre-registered list of tools | Two host tools + the whole interpreter |
| Context | All history, growing every turn | Chosen by the code; history on request |
| On error | The error goes back as an observation | A recovery Cell; stops after three failures in a row |
| When it ends | The model gives a final answer | Only on quit(), when the user asks |