# ai-agents
This repository is a Rust library designed for building and managing generative AI agents, leveraging the capabilities of large language models (LLMs), such as ChatGPT. The aim of this project is to provide a robust and scalable framework that is adaptable to a wide range of scenarios.
`ai-agents` is at **a very early stage** of development.
## Features
- **Structured Data Flow**: Leverage `PipelineNet` for organized and efficient data flow between processing units, enabling complex data transformation and decision-making capabilities.
- **Flexible Architectures**: Utilize dynamic flow control within `PipelineNet` to adapt AI agent behaviors.
- **Extendibility**: Easily extend core functionalities with custom unit implementations.
- **Contextual Grouping**: Organize units into coherent groups for focused execution, simplifying task management and enhancing processing clarity.
- **Asynchronous Support**
## Crates
- `ai-agent-macro`
- `sllm-rs`: A crate dedicated to interfacing with Large Language Models (LLMs), including utilities for sending requests and processing responses.
## Examples
The following examples are simulations of limited situations, demonstrating the application of `ai-agents` to specific scenarios:
### Run Examples
To run the examples, you need to set an environment variable `OPEN_API_KEY` with your API key. This can be done by creating a `.env` file in the root of the project.
```
OPEN_API_KEY=your_api_key_here
```
- **Find Treasure**: A game simulation where the player's goal is to find treasure in a dynamically generated scenario by interacting with NPCs.
- **Ecommerce Chat Assistant**: A limited simulation agent that, based on customer inputs (such as name and order ID), explains the current state of an order.