| title | Workflow |
|---|---|
| sidebarTitle | Workflow |
| mode | wide |
| Parameter | Type | Default | Description |
|---|---|---|---|
name |
Optional[str] |
None |
Workflow name |
id |
Optional[str] |
None |
Workflow ID (autogenerated if not set) |
description |
Optional[str] |
None |
Workflow description |
steps |
Optional[WorkflowSteps] |
None |
Workflow steps - can be a callable function, Steps object, or list of steps |
db |
Optional[BaseDb] |
None |
Database to use for this workflow |
session_id |
Optional[str] |
None |
Default session_id to use for this workflow (autogenerated if not set) |
user_id |
Optional[str] |
None |
Default user_id to use for this workflow |
session_state |
Optional[Dict[str, Any]] |
None |
Default session state (stored in the database to persist across runs) |
debug_mode |
Optional[bool] |
False |
If True, the workflow runs in debug mode |
stream |
Optional[bool] |
None |
Stream the response from the Workflow |
stream_events |
bool |
False |
Stream the intermediate steps from the Workflow |
stream_executor_events |
bool |
True |
Stream the events emitted by the Step executor (the agent/team events) together with the Workflow events |
store_events |
bool |
False |
Persist the events on the run response |
events_to_skip |
Optional[List[Union[WorkflowRunEvent, RunEvent, TeamRunEvent]]] |
None |
Events to skip when persisting the events on the run response |
store_executor_outputs |
bool |
True |
Control whether to store executor responses (agent/team responses) in flattened runs |
websocket_handler |
Optional[WebSocketHandler] |
None |
WebSocket handler for real-time communication |
input_schema |
Optional[Type[BaseModel]] |
None |
Input schema to validate the input to the workflow |
metadata |
Optional[Dict[str, Any]] |
None |
Metadata stored with this workflow |
add_workflow_history_to_steps |
bool |
False |
If True, add the workflow history to the steps |
num_history_runs |
int |
None |
Number of runs to include in the workflow history, if not provided, all history runs are included |
cache_session |
bool |
False |
If True, cache the current workflow session in memory for faster access |
telemetry |
bool |
True |
Log minimal telemetry for analytics |
Execute the workflow synchronously with optional streaming.
Parameters:
input(Optional[Union[str, Dict[str, Any], List[Any], BaseModel]]): The input to send to the workflowadditional_data(Optional[Dict[str, Any]]): Additional data to include with the inputuser_id(Optional[str]): User ID to usesession_id(Optional[str]): Session ID to usesession_state(Optional[Dict[str, Any]]): Session state to useaudio(Optional[List[Audio]]): Audio files to includeimages(Optional[List[Image]]): Image files to includevideos(Optional[List[Video]]): Video files to includefiles(Optional[List[File]]): Files to includestream(bool): Whether to stream the responsestream_events(Optional[bool]): Whether to stream intermediate steps
Returns:
Union[WorkflowRunOutput, Iterator[WorkflowRunOutputEvent]]: Either a WorkflowRunOutput or an iterator of WorkflowRunOutputEvents, depending on thestreamparameter
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 workflowadditional_data(Optional[Dict[str, Any]]): Additional data to include with the inputuser_id(Optional[str]): User ID to usesession_id(Optional[str]): Session ID to usesession_state(Optional[Dict[str, Any]]): Session state to useaudio(Optional[List[Audio]]): Audio files to includeimages(Optional[List[Image]]): Image files to includevideos(Optional[List[Video]]): Video files to includefiles(Optional[List[File]]): Files to includestream(bool): Whether to stream the responsestream_events(Optional[bool]): Whether to stream intermediate stepsbackground(Optional[bool]): Whether to run in backgroundwebsocket(Optional[WebSocket]): WebSocket for real-time communication
Returns:
Union[WorkflowRunOutput, AsyncIterator[WorkflowRunOutputEvent]]: Either a WorkflowRunOutput or an iterator of WorkflowRunOutputEvents, depending on thestreamparameter
Resume a paused workflow run after HITL requirements have been resolved. Used for both step-level and executor-level pauses. See HITL overview.
Parameters:
run_response(Optional[WorkflowRunOutput]): The pausedWorkflowRunOutputto continue. If not provided,run_idandsession_idmust be supplied to load it from the database.run_id(Optional[str]): The run_id of the paused run. Required ifrun_responseis not provided.session_id(Optional[str]): The session_id of the paused run. Required ifrun_responseis not provided.step_requirements(Optional[List[StepRequirement]]): Updated step requirements with confirmation status. Defaults to the requirements fromrun_response.stream(bool): Whether to stream the response. Defaults to the workflow's stream setting.stream_events(Optional[bool]): Whether to stream events. Defaults to the workflow'sstream_eventssetting.
Returns:
Union[WorkflowRunOutput, Iterator[WorkflowRunOutputEvent]]: AWorkflowRunOutputifstream=False, otherwise an iterator of events.
Raises:
ValueError: If neitherrun_responsenor (run_id+session_id) are provided, the run is not paused, or step requirements have not been resolved.
Asynchronous variant of continue_run. Required when the workflow's database is async. Same parameters and return shape as continue_run.
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 workflowadditional_data(Optional[Dict[str, Any]]): Additional data to include with the inputuser_id(Optional[str]): User ID to usesession_id(Optional[str]): Session ID to useaudio(Optional[List[Audio]]): Audio files to includeimages(Optional[List[Image]]): Image files to includevideos(Optional[List[Video]]): Video files to includefiles(Optional[List[File]]): Files to includestream(Optional[bool]): Whether to stream the response contentmarkdown(bool): Whether to render content as markdownshow_time(bool): Whether to show execution timeshow_step_details(bool): Whether to show individual step outputsconsole(Optional[Any]): Rich console instance (optional)
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 workflowadditional_data(Optional[Dict[str, Any]]): Additional data to include with the inputuser_id(Optional[str]): User ID to usesession_id(Optional[str]): Session ID to useaudio(Optional[List[Audio]]): Audio files to includeimages(Optional[List[Image]]): Image files to includevideos(Optional[List[Video]]): Video files to includefiles(Optional[List[File]]): Files to includestream(Optional[bool]): Whether to stream the response contentmarkdown(bool): Whether to render content as markdownshow_time(bool): Whether to show execution timeshow_step_details(bool): Whether to show individual step outputsconsole(Optional[Any]): Rich console instance (optional)
Run an interactive command-line interface to interact with the workflow.
Parameters:
input(Optional[str]): The input to send to the workflowsession_id(Optional[str]): Session ID to useuser_id(Optional[str]): User ID to useuser(str): Name for the user (default: "User")emoji(str): Emoji for the user (default: ":technologist:")stream(Optional[bool]): Whether to stream the response contentmarkdown(bool): Whether to render content as markdown (default: True)show_time(bool): Whether to show execution time (default: True)show_step_details(bool): Whether to show individual step outputs (default: True)exit_on(Optional[List[str]]): List of commands to exit the CLI**kwargs: Additional keyword arguments
Run an interactive command-line interface to interact with the workflow asynchronously.
Parameters:
input(Optional[str]): The input to send to the workflowsession_id(Optional[str]): Session ID to useuser_id(Optional[str]): User ID to useuser(str): Name for the user (default: "User")emoji(str): Emoji for the user (default: ":technologist:")stream(Optional[bool]): Whether to stream the response contentmarkdown(bool): Whether to render content as markdown (default: True)show_time(bool): Whether to show execution time (default: True)show_step_details(bool): Whether to show individual step outputs (default: True)exit_on(Optional[List[str]]): List of commands to exit the CLI**kwargs: Additional keyword arguments
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 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 a WorkflowRunOutput from the database.
Parameters:
run_id(str): The run IDsession_id(Optional[str]): Session ID to use
Returns:
Optional[WorkflowRunOutput]: The 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
Return a list of dictionaries containing the input and output for each run in the session.
Parameters:
session_id(Optional[str]): The session ID to get the chat history for. If not provided, the current cached session ID is usedlast_n_runs(Optional[int]): Number of recent runs to include. If None, all runs will be considered
Returns:
List[WorkflowChatInteraction]: A list of dictionaries containing the input and output for each run
Get the session for the given session ID.
Parameters:
session_id(Optional[str]): Session ID to use
Returns:
Optional[WorkflowSession]: The workflow session
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 the session name for the given session ID.
Parameters:
session_id(Optional[str]): Session ID to use
Returns:
str: The session name
Set the session name and save to storage.
Parameters:
session_id(Optional[str]): Session ID to useautogenerate(bool): Whether to autogenerate the namesession_name(Optional[str]): The name to set
Returns:
WorkflowSession: The updated session
Get the session metrics for the given session ID.
Parameters:
session_id(Optional[str]): Session ID to use
Returns:
Optional[SessionMetrics]: The session metrics
Delete a session.
Parameters:
session_id(str): Session ID to delete
Save the WorkflowSession to storage.
Parameters:
session(WorkflowSession): The session to save
Convert workflow to dictionary representation.
Returns:
Dict[str, Any]: Dictionary representation of the workflow