> For the complete documentation index, see [llms.txt](https://docs.labs.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.labs.ai/getting-started/creating-your-first-agent.md).

# Creating your first Agent

*Prerequisites: Up and Running instance of **EDDI** (see:* [*Getting started*](/getting-started/getting-started.md)*)*

## How does it work?

In order to build an Agent with **EDDI**, you will have to create a few configuration files and `POST` them to the corresponding REST APIs.

![](/files/-M69UTDQDilb54yzlw-1)

A agent can consists of the following elements:

1. (Regular) **`Dictionary`** to define the inputs from the users as well as their meanings in respective categories, expressed by a expression language `e.g. apple -> fruit(apple)`
2. **`Behavior Rules`** triggering **actions** based on execution of behavior rules checking on certain conditions within the current conversation
3. **`Http Connector`** requests/sends data to a Rest API and makes the json response available within the conversation (e.g for Output\*\*`)`\*\*
4. **`Output`** to answer the user's request based on **actions** triggered by behavior rules
5. **`Workflow`** to define which **\`LifecycleTasks**\` (such as the parser, behavior rules, rest api connector, output generation, ...) should be executed in order by how they are defined
6. **`Agent`** to define which packages should be executed in this agent

### Example of a resource reference

`eddi://ai.labs.regulardictionary/regulardictionarystore/regulardictionaries/ID?version=VERSION`

`eddi://` URI resources starting with this protocol are to be related with in EDDI

`ai.labs.regulardictionary` Type of resource

`/regulardictionarystore/regulardictionaries` API path

`ID` ID of the resources

`VERSION` Read-only version of the resource (each change is a new version)

Version of this resource (each update operation will create a new version of the resource)
