Back to Agno

Fork Session

cookbook/02_agents/21_fork_session/README.md

2.6.191.1 KB
Original Source

Fork Session

agent.fork_session() deep-copies an entire session into a new, independent session — every run is copied with a fresh run_id, under a fresh session_id. The source session is untouched. Use it to branch a whole conversation thread and explore a different direction without mutating the original.

This is the session-level sibling of run-level fork (see ../20_time_travel/):

fork=Truefork_session()
GranularityRunSession
Resultnew sibling run, same sessionnew session with copies of every run
EndpointPOST /runs/{run_id}/continuePOST /sessions/{session_id}/fork
Lineage fieldrun.forked_from_run_idrun.forked_from_session_id

The verb is consistent across both: fork = diverge a copy; the suffix tells you what you're copying.

ExampleWhat it shows
01_fork_session.pyfork_session() / afork_session() and the forked_from_session_id lineage across nested forks.
bash
.venvs/demo/bin/python cookbook/02_agents/21_fork_session/01_fork_session.py