Metadata-Version: 2.3
Name: grami-ai
Version: 0.3.110
Summary: A dynamic and flexible AI agent framework for building intelligent, multi-modal AI agents
Project-URL: Homepage, https://github.com/YAFATEK/grami-ai
Project-URL: Documentation, https://grami-ai.readthedocs.io
Project-URL: Repository, https://github.com/YAFATEK/grami-ai
Project-URL: Issues, https://github.com/YAFATEK/grami-ai/issues
Author-email: YAFATEK Solutions / GRAMI Team <support@yafatek.dev>
Maintainer-email: YAFATEK Solutions <support@yafatek.dev>
License: MIT
Keywords: agent,ai,artificial-intelligence,generative-ai,llm,machine-learning
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Requires-Dist: anthropic>=0.7.0
Requires-Dist: asyncio>=3.4.3
Requires-Dist: google-generativeai>=0.3.1
Requires-Dist: openai>=1.3.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: requests>=2.28.0
Provides-Extra: dev
Requires-Dist: black>=23.3.0; extra == 'dev'
Requires-Dist: flake8>=6.0.0; extra == 'dev'
Requires-Dist: isort>=5.12.0; extra == 'dev'
Requires-Dist: mypy>=1.3.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest>=7.3.1; extra == 'dev'
Provides-Extra: docs
Requires-Dist: myst-parser>=1.0.0; extra == 'docs'
Requires-Dist: sphinx-rtd-theme>=1.2.0; extra == 'docs'
Requires-Dist: sphinx>=5.3.0; extra == 'docs'
Description-Content-Type: text/markdown

# GRAMI-AI: Dynamic AI Agent Framework

<div align="center">
    <img src="https://img.shields.io/badge/version-0.3.107-blue.svg" alt="Version">
    <img src="https://img.shields.io/badge/python-3.8+-blue.svg" alt="Python Versions">
    <img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License">
    <img src="https://img.shields.io/github/stars/YAFATEK/grami-ai?style=social" alt="GitHub Stars">
</div>

## Vision and Purpose

GRAMI-AI is a revolutionary, async-first AI agent framework designed to solve complex computational challenges through intelligent, collaborative agent interactions. Our mission is to create a highly flexible, extensible platform that empowers developers to build sophisticated, context-aware AI systems capable of adapting and collaborating across diverse domains.

## Framework Philosophy

The core philosophy of GRAMI-AI is to provide an abstraction layer that:
- Enables dynamic creation of AI agents with specific roles and capabilities
- Supports multiple Language Models (LLMs) with their unique interfaces
- Allows seamless integration of communication protocols
- Provides flexible memory management
- Supports extensible tool ecosystems

## Key Architectural Goals

### 1. Dynamic Agent Creation
- Define agents with precise roles (e.g., Growth Manager, Content Creator)
- Customize system instructions and behavior
- Support multi-modal capabilities (text, image, video generation)

### 2. LLM Abstraction
- Unified interface for different LLMs (Gemini, OpenAI, Anthropic, Ollama)
- Handle provider-specific nuances (prompt building, chat interfaces)
- Flexible function/tool integration

### 3. Communication Interfaces
- Support multiple protocols (WebSocket, REST, Kafka)
- Enable inter-agent communication
- Implement global state management

### 4. Memory Management
- Pluggable memory providers (In-Memory, Redis, DynamoDB)
- Persistent conversation and task history
- Scalable state storage

### 5. Tool Ecosystem
- Default utility tools (Kafka publisher, web search)
- Easy custom tool development
- Provider-specific function handling

## Roadmap and TODO List

### Short-term Goals
- [ ] Complete core agent abstraction
- [ ] Implement multi-LLM support
- [ ] Develop comprehensive documentation
- [ ] Create robust testing framework
- [ ] Implement basic memory providers

### Mid-term Goals
- [ ] Advanced inter-agent communication
- [ ] Kafka integration for agent crews
- [ ] WebSocket chat interfaces
- [ ] S3 and cloud storage integrations
- [ ] Payment solution abstractions

### Long-term Vision
- [ ] Machine learning-driven agent optimization
- [ ] Advanced context and memory management
- [ ] Multi-language support
- [ ] Enterprise-grade security features
- [ ] Community-driven tool marketplace

### Development Checklist

#### Core Framework Development
- [ ] Implement base `Agent` abstract class
- [ ] Create LLM provider abstraction layer
- [ ] Develop async communication interfaces
- [ ] Implement memory management system
- [ ] Design tool integration mechanism

#### LLM Provider Support
- [ ] Google Gemini integration
- [ ] OpenAI GPT integration
- [ ] Anthropic Claude integration
- [ ] Ollama local LLM support
- [ ] Add provider-specific function calling

#### Communication Protocols
- [ ] WebSocket implementation
- [ ] REST API endpoint design
- [ ] Kafka message broker integration
- [ ] gRPC support
- [ ] Inter-agent communication protocol

#### Memory Management
- [ ] In-memory state storage
- [ ] Redis persistent storage
- [ ] DynamoDB scalable storage
- [ ] Conversation history tracking
- [ ] State serialization/deserialization

#### Tool Ecosystem
- [ ] Web search utility tool
- [ ] Data analysis tool
- [ ] Image generation tool
- [ ] Code generation tool
- [ ] Custom tool development framework

#### Testing and Quality
- [ ] Unit tests for core components
- [ ] Integration tests for agent interactions
- [ ] Performance benchmarking
- [ ] Security vulnerability scanning
- [ ] Continuous integration setup

#### Documentation
- [ ] Comprehensive API documentation
- [ ] Detailed usage examples
- [ ] Developer guides
- [ ] Architecture overview
- [ ] Contribution guidelines

#### Community and Extensibility
- [ ] Open-source contribution model
- [ ] Plugin architecture
- [ ] Community tool repository
- [ ] Regular maintenance and updates
- [ ] Feedback and feature request system

## Conceptual Agent Example

```python
agent = AsyncAgent(
    llm=GeminiProvider(),            # LLM Provider
    memory=RedisMemoryProvider(),    # Memory Management
    tools=[                          # Extensible Tools
        KafkaPublisher(),
        WebSearchTool(),
        ContentAnalysisTool()
    ],
    system_instructions="You are a Growth Manager...",  # Role Definition
    communication_interface=WebSocketInterface(),
    storage=S3StorageProvider(),     # Optional Storage
    crew_config={                    # Optional Crew Configuration
        'team_members': ['ContentCreator', 'Researcher'],
        'communication_protocol': 'kafka'
    }
)
```

## Community Contribution

We envision GRAMI-AI as a collaborative ecosystem where developers can:
- Create and share custom tools
- Develop new LLM integrations
- Build memory providers
- Implement communication interfaces
- Contribute to core framework development

## Current Capabilities

- [x] Async-first architecture
- [x] Basic agent creation
- [x] Gemini LLM integration
- [x] Simple tool support
- [ ] Advanced inter-agent communication
- [ ] Multiple memory providers
- [ ] Comprehensive LLM support

## Getting Started

```bash
pip install grami-ai
```

## License

MIT License - Empowering open-source innovation

## About YAFATEK Solutions

Pioneering AI innovation through flexible, powerful frameworks.

## Contact & Support

- **Email**: support@yafatek.dev
- **GitHub**: [GRAMI-AI Issues](https://github.com/YAFATEK/grami-ai/issues)

---

**Star ⭐ the project if you believe in collaborative AI innovation!**