Skip to content

Modules Development

Important: Amico is not stable yet. The module interface may change.

If you want to make your own feature available to Amico, you will need to implement your own module. Amico is an open source framework, so feel free to make a pull request and contribute your own module to our community!

Module Categories Overview

High-level modules are the ones that provide certain functionality to the agent, while low-level modules are the ones that add features to the agent workflow and are used internally by the framework.

  • High-Level Modules
    • Effectors: Perform actions like hardware module control, transaction execution, content posting, sending messages to other agents, etc.
    • Sensors: Acquire the current state of the environment like sensor reading, social media content reading, receiving messages from other agents, etc.
    • LLM Providers: Providing API access to LLM services like OpenAI, DeepSeek, etc.
    • Firmware Drivers: Providing a low-level interface for interacting with embedded devices.
  • Low-Level Modules
    • RAG Systems: Providing a retrieval-augmented generation system.
    • Task Executors: Providing a task execution workflow, like Model-Based Agents described below.
    • Action Selectors: Providing an action selection algorithm, to select the most appropriate action given the current state and the available actions.

Module Development Process

First, follow the Getting Started guide to set up your development environment.

The amico-mods crate is where all the community-developed modules are located. If you want to add your own module, you can create a new module in the amico-mods directory and add your module there.

Learn About the Crate Structure

The amico-mods crate is organized into several key directories, each serving a specific purpose in the module ecosystem:

Core Components

  • interface/: Defines the core traits and interfaces for the module system.

    • module.rs: Provides the Module trait and related structures.
    • provider.rs: Contains provider interfaces for module functionality.
  • module_manager/: Implements the module loading and management system.

⚠️ IMPORTANT: The module interfaces and module manager are currently under active development and subject to change. API stability is not guaranteed. Developers are encouraged to provide feedback on the current design to help shape the final stable API.

Module Implementations

  • std/: Standard modules for general AI agent capabilities.

    • ai/: AI-related modules for language models and other AI services.
    • core/: Core functionality modules for basic agent operations.
  • web3/: Blockchain and Web3 integration modules.

    • ethereum/: Ethereum blockchain integration.
    • solana/: Solana blockchain integration.
    • wallet.rs: Cryptocurrency wallet functionality.

Available Features

The amico-mods crate provides several feature flags that you can enable in your Cargo.toml:

  • std: Enables standard modules (enabled by default).
  • web3: Enables basic Web3 functionality.
  • web3-solana: Enables Solana blockchain support.
  • web3-ethereum: Enables Ethereum blockchain support.
  • full: Enables all available modules and features.

Creating Your Own Module

To create your own module, you'll need to:

  1. Choose the appropriate category for your module (e.g., Sensor, Effector, Provider)
  2. Implement the required traits for your module type
  3. Add your module to the appropriate directory in amico-mods
  4. Ensure your module is properly registered with the module system