# Tasks (https://www.agentenvframework.com/docs/tasks)

> What a task is, and the pages that take one from its steps to a stored, versioned task and its runs

A task is a run you can repeat: what to deploy, what to ask the agents and how to grade what they
did. It is a list of task steps in one JSON document, and the steps' `depends_on` fields make it a
directed acyclic graph (DAG). You store a task under an id, with a new version on every write, and
each run of it is a task instance, with its own id and its own record.

These pages follow one task, `reply-to-dana`: it deploys the `email` env from
[Environments](https://www.agentenvframework.com/docs/environments.md), loads Dana's email into it, deploys an agent, asks the agent to
reply and checks what it sent. Read them in order:

1. [What is a task step](https://www.agentenvframework.com/docs/tasks/task-steps.md): the unit a task is made of, how steps share one
   context and how `depends_on` orders them.
2. [Creating a task](https://www.agentenvframework.com/docs/tasks/creating.md): six example tasks as task.json, each with a
   play-by-play of its run, and how `task create` stores one.
3. [Running a task](https://www.agentenvframework.com/docs/tasks/running.md): run it, read its instance, run it many times and resume
   a run that failed.
4. [Important Task Steps](https://www.agentenvframework.com/docs/tasks/important-steps.md): the steps nearly every task uses, and
   their fields.
5. [More task steps](https://www.agentenvframework.com/docs/tasks/more-steps.md): every other built-in step, and how to add your own.