Skip to content

Development Guide

Getting Started with Development

Amico is written in Rust. Before you begin developing with Amico, you should have:

  • Basic knowledge of Rust programming language
  • Familiarity with command-line interfaces

Installing Rust

To install Rust, we recommend using rustup, the Rust toolchain installer:

Terminal
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Follow the on-screen instructions to complete the installation. After installation, you can verify your Rust installation with:

Terminal
rustc --version

This will display the installed Rust version.

Building and Running Amico

Cloning the Repository

First, clone the Amico repository from GitHub:

Terminal
git clone https://github.com/AIMOverse/amico
cd amico

Repository Structure

The Amico repository is organized as a Cargo workspace consisting of several modules:

  • amico: The main executable application
  • amico-core: Core functionality for agent task scheduling
  • amico-hal: Hardware Abstraction Layer for embedded devices
  • amico-sdk: SDK for development with AI functionalities
  • amico-mods: Modules for implementing and extending agent features

For more detailed information about each module, refer to the Modules Overview.

Building Amico

Once you have cloned the repository, you can build Amico using Cargo, Rust's package manager and build system:

Terminal
cargo build -p amico

This command compiles the Amico package and its dependencies. The compiled binary will be available in the target/debug directory.

Running Amico

To build and run Amico in a single step, use:

Terminal
cargo run -p amico

Setting Up Environment Variables

Amico may require certain environment variables to function properly. If you encounter errors about missing environment variables like OPENAI_API_KEY, you'll need to set them in your terminal:

Terminal
export OPENAI_API_KEY="your-api-key-here"

Next Steps

SDK Guide

To develop your own specific-purpose AI agents, check out the SDK Guide.

Contribution Directions

Once you have Amico up and running, here are some ways you can contribute to the project:

  1. Add dynamic module loading / configuration features to the amico runtime
    Learn more: Amico Runtime Development

  2. Extend the framework's features with modules
    Learn more: Modules Development

  3. Improve core / SDK interfaces and features
    Learn more: Core and SDK Development

  4. Contribute to the project
    Please read our Contribution Guidelines to understand our development process, coding standards, and how to submit pull requests. For more information, see our Contributing page.

Join Our Community

Connect with other Amico developers and users: