Extensions are the building blocks of EDDI bots. In EDDI's composable architecture, bots are not monolithic applications but rather assemblies of extensions, each providing a specific capability. Extensions are referenced by packages, and packages are combined to form complete bots.
Each extension type corresponds to a lifecycle task or resource that the bot can use:
Extension Type
Purpose
Lifecycle Role
ai.labs.parser
Input parsing and normalization
Transforms raw user input into structured expressions
ai.labs.parser.dictionaries.*
Define vocabularies and entities
Used by parser to recognize intents and entities
ai.labs.behavior
Define IF-THEN rules
Decides what actions to take based on conditions
ai.labs.httpcalls
Configure external API calls
Executes HTTP requests to external services
ai.labs.langchain
Configure LLM integrations
Sends requests to LLM APIs (OpenAI, Claude, etc.)
ai.labs.output
Define output templates
Formats responses using conversation data
ai.labs.property
Extract and store data
Manages conversation memory properties
EDDI Resource URIs
All EDDI's resources start with eddi://, which is used to distinguish EDDI-specific extensions from other resources. This URI scheme allows:
Version control: Each extension can have multiple versions
Reusability: The same extension can be used by multiple packages/bots
Clear references: Explicit URIs make configuration transparent
Example URI:
Extension Discovery
In this article we will talk about EDDI's extensions.
EDDI's extensions are the features that your current instance of EDDI is supporting, the latter are used in the process of configuring/developing a Chatbot.
The list of extensions will allow you to have an overview of what is enabled in your current instance of EDDI, the list can be retrieved by calling the API endpoint below.
Extensions REST API Endpoint
Element
Value
HTTP Method
GET
API Endpoint
/extensionstore/extensions
Model
Description of the model
Element
Value
type
(String) The type of the extension
displayName
(String) A given name to the extension
configs
(Object) Configuration of the extension
extensions
(Object) Extensions of the extension
Example
More about regular dictionaries can be found here.
Request URL
GET http://localhost:7070/extensionstore/extensions