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

# Task • AI Agent SDK

> Task: A unit of work that can be executed by an Agent or a custom handler function.

# Task

> Defined in the [**task**](https://praison.ai/docs/sdk/reference/praisonaiagents/modules/task.md) module.

AI Agent

A unit of work that can be executed by an Agent or a custom handler function.

Task is the unified abstraction for both AgentManager tasks and Workflow steps.
It supports all features from the legacy Task class.

Simple Usage:
task = Task(description="Research AI trends")

With action alias (from Task):
task = Task(action="Write a blog post about \{\{topic}}")

With custom handler function:
task = Task(
name="process\_data",
action="Process the input",
handler=my\_custom\_function
)

With loop iteration:
task = Task(
action="Process \{\{item}}",
loop\_over="items",
loop\_var="item"
)

## Constructor

**description** `Optional[str]`

No description available.

**expected\_output** `Optional[str]`

No description available.

**agent** `Optional[Agent]`

No description available.

**name** `Optional[str]`

No description available.

**tools** `Optional`

No description available.

**context** `Optional`

No description available.

**depends\_on** `Optional`

No description available.

**async\_execution** `Optional[bool]` (default: False)

No description available.

**config** `Optional`

No description available.

**output\_file** `Optional[str]`

No description available.

**output\_json** `Optional`

No description available.

**output\_pydantic** `Optional`

No description available.

**callback** `Optional`

No description available.

**on\_task\_complete** `Optional`

No description available.

**status** `str` (default: 'not started')

No description available.

**result** `Optional[TaskOutput]`

No description available.

**create\_directory** `Optional[bool]` (default: False)

No description available.

**id** `Optional[int]`

No description available.

**images** `Optional`

No description available.

**next\_tasks** `Optional`

No description available.

**task\_type** `str` (default: 'task')

No description available.

**human\_input** `bool` (default: False)

No description available.

**human\_review\_prompt** `Optional[str]`

No description available.

**condition** `Optional`

No description available.

**is\_start** `bool` (default: False)

No description available.

**loop\_state** `Optional`

No description available.

**memory** `Any`

No description available.

**quality\_check** `Any` (default: True)

No description available.

**input\_file** `Optional[str]`

No description available.

**rerun** `bool` (default: False)

No description available.

**retain\_full\_context** `bool` (default: False)

No description available.

**guardrail** `Optional`

No description available.

**guardrails** `Optional`

No description available.

**max\_retries** `int` (default: 3)

No description available.

**retry\_count** `int` (default: 0)

No description available.

**agent\_config** `Optional`

No description available.

**variables** `Optional`

No description available.

**skip\_on\_failure** `bool` (default: False)

No description available.

**retry\_delay** `float` (default: 0.0)

No description available.

**on\_error** `str` (default: 'stop')

No description available.

**action** `Optional[str]`

No description available.

**handler** `Optional[Callable]`

No description available.

**should\_run** `Optional[Callable]`

No description available.

**loop\_over** `Optional[str]`

No description available.

**loop\_var** `str` (default: 'item')

No description available.

**execution** `Optional`

No description available.

**routing** `Optional`

No description available.

**output\_config** `Optional`

No description available.

**output** `Optional`

No description available.

**when** `Optional[str]`

No description available.

**then\_task** `Optional[str]`

No description available.

**else\_task** `Optional[str]`

No description available.

**autonomy** `Optional`

No description available.

**knowledge** `Optional`

No description available.

**web** `Optional`

No description available.

**reflection** `Optional`

No description available.

**planning** `Optional`

No description available.

**hooks** `Optional`

No description available.

**caching** `Optional`

No description available.

**output\_variable** `Optional[str]`

No description available.

**fail\_on\_callback\_error** `bool` (default: False)

No description available.

**fail\_on\_memory\_error** `bool` (default: False)

No description available.

## Methods

> [card] [depends\_on()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/Task-depends_on.md)
>
> Alias for context - returns the list of dependent tasks.

> [card] [depends\_on()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/Task-depends_on.md)
>
> Alias for context - sets the list of dependent tasks.

> [card] [set\_status()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/Task-set_status.md)
>
> Set task status with transition validation.

> [card] [initialize\_memory()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/Task-initialize_memory.md)
>
> Synchronous memory initialization with thread-safe locking

> [card] [initialize\_memory\_async()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/Task-initialize_memory_async.md)
>
> Async-safe memory initialization with asyncio coordination

> [card] [store\_in\_memory()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/Task-store_in_memory.md)
>
> Store content in memory with metadata

> [card] [execute\_callback()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/Task-execute_callback.md)
>
> Execute callback and store quality metrics if enabled

> [card] [execute\_callback\_sync()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/Task-execute_callback_sync.md)
>
> Synchronous wrapper that properly awaits execute\_callback instead of

> [card] [evaluate\_when()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/Task-evaluate_when.md)
>
> Evaluate the 'when' condition against the given context.

> [card] [get\_next\_task()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/Task-get_next_task.md)
>
> Get the next task name based on the 'when' condition evaluation.

> [accordion] Internal & Generic Methods
>
> * **to\_dict**: Serialize the Task to a dictionary.

## Source

> [card] [View on GitHub](https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/task/task.py#L21)
>
> `praisonaiagents/task/task.py` at line 21

***

## Related Documentation

> [card] [Tasks Concept](https://praison.ai/docs/docs/concepts/tasks)

> [card] [Task Configuration](https://praison.ai/docs/docs/configuration/task-config)

> [card] [Task Validation](https://praison.ai/docs/docs/features/task-validation-feedback)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.