-record(flow, { model :: starflow@model:model(), prompt :: fun((starflow@state:state(any())) -> list(starflow@state:content())), parser :: fun((starflow@state:state(any()), starflow@state:response(), list({binary(), starflow@tool:tool_result()})) -> starflow@state:state(any())), tools :: list(starflow@tool:tool()) }).