> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agno.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Workflow Tools

> Expose a workflow to an Agent or Team through the run_workflow tool.

Give a workflow to an Agent or Team to execute using `WorkflowTools`.

## Example

```python theme={null}
from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.tools.workflow import WorkflowTools
from agno.workflow import Step, Workflow, StepInput, StepOutput


def create_outline(step_input: StepInput) -> StepOutput:
    return StepOutput(content=f"Outline for: {step_input.input}")


blog_post_workflow = Workflow(
    name="blog_post_workflow",
    steps=[Step(name="create_outline", executor=create_outline)],
)

workflow_tools = WorkflowTools(
    workflow=blog_post_workflow,
)

agent = Agent(
    model=OpenAIResponses(id="gpt-5.2"),
    tools=[workflow_tools],
)

agent.print_response("Create a blog post on the topic: AI trends in 2024", stream=True)
```

`WorkflowTools` enables `run_workflow` by default.

| Option                | Default | Effect                               |
| --------------------- | ------- | ------------------------------------ |
| `enable_run_workflow` | `True`  | Register the workflow execution tool |
| `enable_think`        | `False` | Register the optional `think` tool   |
| `enable_analyze`      | `False` | Register the optional `analyze` tool |
| `all`                 | `False` | Register all three tools             |
| `async_mode`          | `False` | Register async tool implementations  |

See [Workflow Tools](/tools/reasoning_tools/workflow-tools) for configuration and async usage.
