Up to you!
By default, workflows are stateless, unless you decide to persist the context between runs
from llama_index.core.workflow.context_serializers import JsonSerializer, JsonPicklerSerializer
from llama_index.core.workflow import Context
# stateless
result = await workflow.run()
# saving the state
handler = workflow.run()
result = await handler
ctx_data = handler.ctx.to_dict(serializer=JsonPicklerSerializer())
# reloading the state
ctx = Context.from_dict(workflow, ctx_data, serializer=JsonPicklerSerializer())
result = await workflow.run(ctx=ctx)