MCPcopy Index your code
hub / github.com/Thytu/Agentarium

github.com/Thytu/Agentarium @v0.3.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.1 ↗ · + Follow
102 symbols 374 edges 19 files 95 documented · 93%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

🌿 Agentarium

License: Apache 2.0 Python 3.10+ PyPI version

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.

InstallationQuick StartFeaturesExamplesDocumentationContributing

🚀 Installation

pip install agentarium

🎯 Quick Start

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:

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:

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:

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/ directory.

📖 Documentation

Agent Creation

Create agents with custom characteristics:

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:

llm:
  provider: "openai"  # The LLM provider to use (any provider supported by aisuite)
  model: "gpt-4"      # The specific model to use from the provider

aisuite:              # (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 file for details.

🙏 Acknowledgments

Thanks to all contributors who have helped shape Agentarium 🫶

Core symbols most depended-on inside this repo

get_interactions
called by 13
agentarium/Agent.py
create_agent
called by 11
agentarium/Agent.py
talk_to
called by 10
agentarium/Agent.py
record_interaction
called by 10
agentarium/AgentInteractionManager.py
reset
called by 8
agentarium/Agent.py
execute_action
called by 7
agentarium/Agent.py
think
called by 7
agentarium/Agent.py
get_agent_interactions
called by 6
agentarium/AgentInteractionManager.py

Shape

Function 48
Method 47
Class 7

Languages

Python100%

Modules by API surface

agentarium/Agent.py24 symbols
tests/test_agent.py11 symbols
agentarium/AgentInteractionManager.py9 symbols
tests/test_interaction_manager.py8 symbols
agentarium/Config.py8 symbols
tests/test_action.py7 symbols
agentarium/actions/Action.py7 symbols
tests/test_checkpoint_manager.py5 symbols
tests/conftest.py5 symbols
agentarium/CheckpointManager.py5 symbols
agentarium/Interaction.py4 symbols
examples/3_adding_a_custom_action/demo.py3 symbols

For agents

$ claude mcp add Agentarium \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact