Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Thytu/Agentarium
open-source framework for creating and managing simulations populated with AI-powered agents. It provides an intuitive platform for designing complex, interactive environments where agents can act, learn, and evolve.
https://github.com/Thytu/Agentarium
Last synced: 14 days ago
JSON representation
open-source framework for creating and managing simulations populated with AI-powered agents. It provides an intuitive platform for designing complex, interactive environments where agents can act, learn, and evolve.
- Host: GitHub
- URL: https://github.com/Thytu/Agentarium
- Owner: Thytu
- License: apache-2.0
- Created: 2024-12-20T19:04:40.000Z (30 days ago)
- Default Branch: main
- Last Pushed: 2024-12-31T13:56:12.000Z (19 days ago)
- Last Synced: 2024-12-31T14:02:58.620Z (19 days ago)
- Language: Python
- Size: 57.6 KB
- Stars: 44
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - Thytu/Agentarium - open-source framework for creating and managing simulations populated with AI-powered agents. It provides an intuitive platform for designing complex, interactive environments where agents can act, learn, and evolve. (Python)
- awesome-LLM-resourses - Agentarium - source framework for creating and managing simulations populated with AI-powered agents. (ζΊθ½δ½ Agents)
- awesome-generative-ai-data-scientist - Agentarium - source framework for creating and managing simulations populated with AI-powered agents. It provides an intuitive platform for designing complex, interactive environments where agents can act, learn, and evolve. [GitHub](https://github.com/Thytu/Agentarium) (Agents and Tools (Build Your Own))
README
# πΏ Agentarium
[![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-yellow.svg)](https://opensource.org/licenses/Apache-2.0)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![PyPI version](https://badge.fury.io/py/agentarium.svg)](https://badge.fury.io/py/agentarium)A powerful Python framework for managing and orchestrating AI agents with ease. Agentarium provides a flexible and intuitive way to create, manage, and coordinate interactions between multiple AI agents in various environments.
[Installation](#installation) β’
[Quick Start](#quick-start) β’
[Features](#features) β’
[Examples](#examples) β’
[Documentation](#documentation) β’
[Contributing](#contributing)## π Installation
```bash
pip install agentarium
```## π― Quick Start
```python
from agentarium import Agent# Create agents
agent1 = Agent(name="agent1")
agent2 = Agent(name="agent2")# Direct communication between agents
alice.talk_to(bob, "Hello Bob! I heard you're working on some interesting ML projects.")# Agent autonomously decides its next action based on context
bob.act()
```## β¨ Features
- **π€ Advanced Agent Management**: Create and orchestrate multiple AI agents with different roles and capabilities
- **π Autonomous Decision Making**: Agents can make decisions and take actions based on their context
- **πΎ Checkpoint System**: Save and restore agent states and interactions for reproducibility
- **π Customizable Actions**: Define custom actions beyond the default talk/think capabilities
- **π§ Memory & Context**: Agents maintain memory of past interactions for contextual responses
- **β‘ AI Integration**: Seamless integration with various AI providers through aisuite
- **β‘ Performance Optimized**: Built for efficiency and scalability
- **π οΈ Extensible Architecture**: Easy to extend and customize for your specific needs## π Examples
### Basic Chat Example
Create a simple chat interaction between agents:```python
from agentarium import Agent# Create agents with specific characteristics
alice = Agent.create_agent(name="Alice", occupation="Software Engineer")
bob = Agent.create_agent(name="Bob", occupation="Data Scientist")# Direct communication
alice.talk_to(bob, "Hello Bob! I heard you're working on some interesting projects.")# Let Bob autonomously decide how to respond
bob.act()
```### Adding Custom Actions
Add new capabilities to your agents:```python
from agentarium import Agent, Action# Define a simple greeting action
def greet(name: str, **kwargs) -> str:
return f"Hello, {name}!"# Create an agent and add the greeting action
agent = Agent.create_agent(name="Alice")
agent.add_action(
Action(
name="GREET",
description="Greet someone by name",
parameters=["name"],
function=greet
)
)# Use the custom action
agent.execute_action("GREET", "Bob")
```### Using Checkpoints
Save and restore agent states:```python
from agentarium import Agent
from agentarium.CheckpointManager import CheckpointManager# Initialize checkpoint manager
checkpoint = CheckpointManager("demo")# Create and interact with agents
alice = Agent.create_agent(name="Alice")
bob = Agent.create_agent(name="Bob")alice.talk_to(bob, "What a beautiful day!")
checkpoint.update(step="interaction_1")# Save the current state
checkpoint.save()
```More examples can be found in the [examples/](examples/) directory.
## π Documentation
### Agent Creation
Create agents with custom characteristics:```python
agent = Agent.create_agent(
name="Alice",
age=28,
occupation="Software Engineer",
location="San Francisco",
bio="A passionate developer who loves AI"
)
```### LLM Configuration
Configure your LLM provider and credentials using a YAML file:```yaml
llm:
provider: "openai" # The LLM provider to use (any provider supported by aisuite)
model: "gpt-4" # The specific model to use from the provideraisuite: # (optional) Credentials for aisuite
openai: # Provider-specific configuration
api_key: "sk-..." # Your API key
```### Key Components
- **Agent**: Core class for creating AI agents with personalities and autonomous behavior
- **CheckpointManager**: Handles saving and loading of agent states and interactions
- **Action**: Base class for defining custom agent actions
- **AgentInteractionManager**: Manages and tracks all agent interactions## π€ Contributing
Contributions are welcome! Here's how you can help:
1. Fork the repository
2. Create a new branch (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Commit your changes (`git commit -m 'feat: add amazing feature'`)
5. Push to the branch (`git push origin feature/amazing-feature`)
6. Open a Pull Request## π License
This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details.
## π Acknowledgments
Thanks to all contributors who have helped shape Agentarium π«Ά