Skip to main content

Parameters

ParameterTypeDefaultDescription
nameOptional[str]NoneWorkflow name
idOptional[str]NoneWorkflow ID (autogenerated if not set)
descriptionOptional[str]NoneWorkflow description
stepsOptional[WorkflowSteps]NoneWorkflow steps - can be a callable function, Steps object, or list of steps
dbOptional[BaseDb]NoneDatabase to use for this workflow
session_idOptional[str]NoneDefault session_id to use for this workflow (autogenerated if not set)
user_idOptional[str]NoneDefault user_id to use for this workflow
session_stateOptional[Dict[str, Any]]NoneDefault session state (stored in the database to persist across runs)
debug_modeOptional[bool]FalseIf True, the workflow runs in debug mode
streamOptional[bool]NoneStream the response from the Workflow
stream_intermediate_stepsboolFalseStream the intermediate steps from the Workflow
stream_executor_eventsboolTrueStream the events emitted by the Step executor (the agent/team events) together with the Workflow events
store_eventsboolFalsePersist the events on the run response
events_to_skipOptional[List[Union[WorkflowRunEvent, RunEvent, TeamRunEvent]]]NoneEvents to skip when persisting the events on the run response
store_executor_outputsboolTrueControl whether to store executor responses (agent/team responses) in flattened runs
websocket_handlerOptional[WebSocketHandler]NoneWebSocket handler for real-time communication
input_schemaOptional[Type[BaseModel]]NoneInput schema to validate the input to the workflow
metadataOptional[Dict[str, Any]]NoneMetadata stored with this workflow
add_workflow_history_to_stepsboolFalseIf True, add the workflow history to the steps
num_history_runsintNoneNumber of runs to include in the workflow history, if not provided, all history runs are included
cache_sessionboolFalseIf True, cache the current workflow session in memory for faster access
telemetryboolTrueLog minimal telemetry for analytics

Functions

run

Execute the workflow synchronously with optional streaming. Parameters:
  • input (Optional[Union[str, Dict[str, Any], List[Any], BaseModel]]): The input to send to the workflow
  • additional_data (Optional[Dict[str, Any]]): Additional data to include with the input
  • user_id (Optional[str]): User ID to use
  • session_id (Optional[str]): Session ID to use
  • session_state (Optional[Dict[str, Any]]): Session state to use
  • audio (Optional[List[Audio]]): Audio files to include
  • images (Optional[List[Image]]): Image files to include
  • videos (Optional[List[Video]]): Video files to include
  • files (Optional[List[File]]): Files to include
  • stream (bool): Whether to stream the response
  • stream_intermediate_steps (Optional[bool]): Whether to stream intermediate steps
Returns:
  • Union[WorkflowRunOutput, Iterator[WorkflowRunOutputEvent]]: Either a WorkflowRunOutput or an iterator of WorkflowRunOutputEvents, depending on the stream parameter

arun

Execute the workflow asynchronously with optional streaming. Parameters:
  • input (Optional[Union[str, Dict[str, Any], List[Any], BaseModel, List[Message]]]): The input to send to the workflow
  • additional_data (Optional[Dict[str, Any]]): Additional data to include with the input
  • user_id (Optional[str]): User ID to use
  • session_id (Optional[str]): Session ID to use
  • session_state (Optional[Dict[str, Any]]): Session state to use
  • audio (Optional[List[Audio]]): Audio files to include
  • images (Optional[List[Image]]): Image files to include
  • videos (Optional[List[Video]]): Video files to include
  • files (Optional[List[File]]): Files to include
  • stream (bool): Whether to stream the response
  • stream_intermediate_steps (Optional[bool]): Whether to stream intermediate steps
  • background (Optional[bool]): Whether to run in background
  • websocket (Optional[WebSocket]): WebSocket for real-time communication
Returns:
  • Union[WorkflowRunOutput, AsyncIterator[WorkflowRunOutputEvent]]: Either a WorkflowRunOutput or an iterator of WorkflowRunOutputEvents, depending on the stream parameter
Print workflow execution with rich formatting and optional streaming. Parameters:
  • input (Union[str, Dict[str, Any], List[Any], BaseModel, List[Message]]): The input to send to the workflow
  • additional_data (Optional[Dict[str, Any]]): Additional data to include with the input
  • user_id (Optional[str]): User ID to use
  • session_id (Optional[str]): Session ID to use
  • audio (Optional[List[Audio]]): Audio files to include
  • images (Optional[List[Image]]): Image files to include
  • videos (Optional[List[Video]]): Video files to include
  • files (Optional[List[File]]): Files to include
  • stream (Optional[bool]): Whether to stream the response content
  • stream_intermediate_steps (Optional[bool]): Whether to stream intermediate steps
  • markdown (bool): Whether to render content as markdown
  • show_time (bool): Whether to show execution time
  • show_step_details (bool): Whether to show individual step outputs
  • console (Optional[Any]): Rich console instance (optional)

aprint_response

Print workflow execution with rich formatting and optional streaming asynchronously. Parameters:
  • input (Union[str, Dict[str, Any], List[Any], BaseModel, List[Message]]): The input to send to the workflow
  • additional_data (Optional[Dict[str, Any]]): Additional data to include with the input
  • user_id (Optional[str]): User ID to use
  • session_id (Optional[str]): Session ID to use
  • audio (Optional[List[Audio]]): Audio files to include
  • images (Optional[List[Image]]): Image files to include
  • videos (Optional[List[Video]]): Video files to include
  • files (Optional[List[File]]): Files to include
  • stream (Optional[bool]): Whether to stream the response content
  • stream_intermediate_steps (Optional[bool]): Whether to stream intermediate steps
  • markdown (bool): Whether to render content as markdown
  • show_time (bool): Whether to show execution time
  • show_step_details (bool): Whether to show individual step outputs
  • console (Optional[Any]): Rich console instance (optional)

cancel_run

Cancel a running workflow execution. Parameters:
  • run_id (str): The run_id to cancel
Returns:
  • bool: True if the run was found and marked for cancellation, False otherwise

get_run

Get the status and details of a background workflow run. Parameters:
  • run_id (str): The run ID to get
Returns:
  • Optional[WorkflowRunOutput]: The workflow run output if found

get_run_output

Get a WorkflowRunOutput from the database. Parameters:
  • run_id (str): The run ID
  • session_id (Optional[str]): Session ID to use
Returns:
  • Optional[WorkflowRunOutput]: The run output

get_last_run_output

Get the last run response from the database for the given session ID. Parameters:
  • session_id (Optional[str]): Session ID to use
Returns:
  • Optional[WorkflowRunOutput]: The last run output

get_session

Get the session for the given session ID. Parameters:
  • session_id (Optional[str]): Session ID to use
Returns:
  • Optional[WorkflowSession]: The workflow session

get_session_state

Get the session state for the given session ID. Parameters:
  • session_id (Optional[str]): Session ID to use
Returns:
  • Dict[str, Any]: The session state

get_session_name

Get the session name for the given session ID. Parameters:
  • session_id (Optional[str]): Session ID to use
Returns:
  • str: The session name

set_session_name

Set the session name and save to storage. Parameters:
  • session_id (Optional[str]): Session ID to use
  • autogenerate (bool): Whether to autogenerate the name
  • session_name (Optional[str]): The name to set
Returns:
  • WorkflowSession: The updated session

get_session_metrics

Get the session metrics for the given session ID. Parameters:
  • session_id (Optional[str]): Session ID to use
Returns:
  • Optional[Metrics]: The session metrics

delete_session

Delete a session. Parameters:
  • session_id (str): Session ID to delete

save_session

Save the WorkflowSession to storage. Parameters:
  • session (WorkflowSession): The session to save

to_dict

Convert workflow to dictionary representation. Returns:
  • Dict[str, Any]: Dictionary representation of the workflow
I