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:
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:
rustc --version
This will display the installed Rust version.
Building and Running Amico
Cloning the Repository
First, clone the Amico repository from GitHub:
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 applicationamico-core
: Core functionality for agent task schedulingamico-hal
: Hardware Abstraction Layer for embedded devicesamico-sdk
: SDK for development with AI functionalitiesamico-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:
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:
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:
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:
-
Add dynamic module loading / configuration features to the
amico
runtime
Learn more: Amico Runtime Development -
Extend the framework's features with modules
Learn more: Modules Development -
Improve core / SDK interfaces and features
Learn more: Core and SDK Development -
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:
- Twitter: Twitter Link
- Telegram Group: Telegram Group Link
- GitHub: GitHub Link