Skip to content

GENESIS: A distributed AI agent framework built on RTI Connext DDS. Enables multi-agent systems with automatic function discovery, real-time monitoring, and seamless agent-to-agent communication over DDS.

License

Notifications You must be signed in to change notification settings

rticommunity/rti-genesis

Repository files navigation

GENESIS - Distributed AI Agent Framework

Python 3.10 RTI Connext DDS License Status Wiki

GENESIS (Generative Networked System for Intelligent Services) is a Python framework for building distributed AI agent networks with the robustness and reliability required for production deployments.


πŸ“‘ Table of Contents


🎯 What You Get

Zero-Configuration Discovery

Agents and services find each other automaticallyβ€”no IP addresses, no ports, no configuration files:

# Terminal 1: Start a service
service = CalculatorService()
await service.run()

# Terminal 2: Start an agent (on any machine)
agent = MathAgent()
# Agent instantly discovers Calculatorβ€”no config needed

Works across machines, networks, and even cloud regions. Just start your components and they find each other.

Production-Grade Reliability

Built on RTI Connext DDSβ€”the same middleware powering:

  • ✈️ Flight control systems and unmanned vehicles
  • πŸ₯ FDA-cleared surgical robots
  • πŸš— Autonomous vehicle sensor fusion
  • ⚑ Power grid SCADA systems
  • 🏭 Factory automation at scale

When your AI system needs to work every time, GENESIS inherits battle-tested infrastructure from domains where failure is not an option.

Intelligent Function Windowing

Don't overwhelm your LLM with 200 functionsβ€”classifiers automatically select the 5-10 relevant ones:

# System discovers 200+ functions
# Classifier windows to relevant subset
classifier.classify_functions(
    query="calculate compound interest",
    functions=all_discovered_functions
)
# LLM sees only: [calculate_interest, compound_rate, ...]

Result: 90%+ reduction in LLM tokens, faster responses, better accuracy.

Fine-Grained Control

Configure exactly how your data flows:

  • Reliability: Best-effort (fast) or guaranteed delivery
  • Durability: Volatile or persistent data (survives restarts)
  • Content Filtering: Subscribers get only what they need
  • Security: Authentication, encryption, access control (via DDS Security pluginsβ€”planned)

True Peer-to-Peer

No central broker to become a bottleneck or single point of failure. Agents communicate directly with sub-millisecond latency.


✨ Key Features

Feature Description
πŸ” DDS-Based Discovery Automatic discovery inherited from DDSβ€”no configuration
πŸ“Š Intelligent Windowing Classifiers reduce LLM token usage by 90%+
πŸ’Ύ Memory Management Context preservation with token limit awareness
πŸ€– Multi-LLM Support OpenAI, Anthropicβ€”add new providers in ~150 lines
πŸ”— Agent-as-Tool Pattern Agents call other agents via LLM tool interface
πŸ› οΈ Decorator-Based Development @genesis_tool and @genesis_function decorators
⚑ Real-Time Performance Sub-millisecond DDS communication
🌐 Peer-to-Peer Architecture No central brokerβ€”DDS handles routing
πŸ” Security-Ready DDS Security plugin support (planned)
πŸ“‘ Pub/Sub Control Content filtering and QoS policies via DDS

🎯 Quick Example

Create a Service (30 seconds)

from genesis_lib.monitored_service import MonitoredService
from genesis_lib.decorators import genesis_function

class CalculatorService(MonitoredService):
    def __init__(self):
        super().__init__("Calculator", capabilities=["math"])
        self._advertise_functions()
    
    @genesis_function()
    async def add(self, x: float, y: float) -> dict:
        """Add two numbers."""
        return {"result": x + y}

# Run itβ€”DDS handles discovery
service = CalculatorService()
await service.run()

Create an Agent (30 seconds)

Option 1: Cloud-based (OpenAI)

from genesis_lib.openai_genesis_agent import OpenAIGenesisAgent

class MathAgent(OpenAIGenesisAgent):
    def __init__(self):
        super().__init__(
            model_name="gpt-4o",
            agent_name="MathAssistant"
        )

# Run itβ€”agent discovers services, classifiers window relevant functions
agent = MathAgent()
response = await agent.process_message("What is 2 + 2?")
# Classifier determines Calculator.add is relevant
# Agent calls function via DDS

Option 2: Local inference (Ollama)

from genesis_lib.local_genesis_agent import LocalGenesisAgent

class LocalMathAgent(LocalGenesisAgent):
    def __init__(self):
        super().__init__(
            model_name="llama3.2:3b",  # Or any Ollama model
            agent_name="LocalMathAssistant"
        )

# Run itβ€”completely local, no API costs, full privacy
agent = LocalMathAgent()
response = await agent.process_message("What is 2 + 2?")
# Works identically to OpenAI version, but runs locally

πŸ“¦ Installation

Prerequisites

  1. Python 3.10 (required)
  2. RTI Connext DDS 7.3.0+ (see below)
  3. API Keys (OpenAI or Anthropic)

Getting RTI Connext DDS

GENESIS requires RTI Connext DDS. RTI offers several free options:

License Type Best For Limits
60-Day Evaluation Exploring GENESIS, building prototypes Unlimited scale, time-limited
Connext Express Small deployments, getting started Free forever, participant-limited
University Program Researchers, academics, classrooms Perpetual research licenses

πŸ’‘ Recommendation: Start with the 60-day evaluation for full functionality. If you're building networks with multiple agents/services, avoid the Express license (participant-limited). Researchers should apply for the University Program for perpetual access.

Quick Install

# Clone repository (or download release)
cd Genesis_LIB

# Automated setup (recommended)
./setup.sh

# Manual setup alternative
python3.10 -m venv venv
source venv/bin/activate
pip install -e .

Environment Setup

# RTI Connext DDS
export NDDSHOME="/path/to/rti_connext_dds-7.3.0"

# API Keys
export OPENAI_API_KEY="your_openai_key"
export ANTHROPIC_API_KEY="your_anthropic_key"

πŸ“– Detailed instructions: See INSTALL.md and QUICKSTART.md


🎬 Try the Demo

Experience GENESIS capabilities with a multi-agent example:

# Run the MultiAgent demo
cd examples/MultiAgent
./run_interactive_demo.sh

What you'll see:

  • βœ… DDS-based automatic discovery
  • βœ… Agent-to-agent delegation (PersonalAssistant β†’ WeatherAgent)
  • βœ… Function classification and windowing
  • βœ… Real API integration (OpenWeatherMap)
  • βœ… Real-time monitoring via DDS topics

πŸ—οΈ Architecture

GENESIS uses a three-layer architecture that separates concerns and enables multi-provider support:

Genesis Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ ProviderAgent (OpenAI, Anthropic, etc.)                β”‚
β”‚ - Provider-specific API calls                          β”‚
β”‚ - Message format conversion                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          β–²
                          β”‚ inherits
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ MonitoredAgent                                          β”‚
β”‚ - State management (DISCOVERING β†’ READY β†’ BUSY)        β”‚
β”‚ - Graph topology publishing                            β”‚
β”‚ - Event tracking and monitoring                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          β–²
                          β”‚ inherits
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ GenesisAgent                                            β”‚
β”‚ - Provider-agnostic discovery                          β”‚
β”‚ - Tool routing and execution                           β”‚
β”‚ - Multi-turn orchestration                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

DDS Communication Layer provides:

  • Automatic discovery via Advertisement topic
  • Request/Reply for RPC calls
  • Pub/Sub for monitoring and events
  • QoS-configurable reliability and performance

πŸ“– Full documentation: docs/


πŸ“š Documentation

Document Description
Wiki Comprehensive guides, API reference, and FAQ
QUICKSTART.md Get up and running in 5 minutes
INSTALL.md Detailed installation instructions
docs/ Technical documentation (architecture, internals)

πŸ“– Start here: Wiki Home for guides and tutorials


πŸŽ“ Examples

Example Description Location
Hello World Minimal agent + service + interface examples/HelloWorld/
MultiAgent Agent-as-tool pattern with real APIs examples/MultiAgent/
Graph Interface Chat + real-time network visualization examples/GraphInterface/
Standalone Graph Viewer Pure network visualization server examples/StandaloneGraphViewer/
Example Interface Basic interface patterns examples/ExampleInterface/

🌟 Use Cases

Critical Infrastructure AI

Leverage DDS's proven reliability for AI systems requiring high availability and determinism.

Distributed AI Pipelines

Chain agents and services across machines using DDS's scalable pub/sub architecture.

Real-Time AI Applications

Sub-millisecond DDS communication for robotics, IoT, and edge AI requiring low latency.

Enterprise AI Integration

Connect legacy systems with AI agents using DDS's platform-independent middleware.

Large-Scale Agent Networks

Deploy hundreds of agents with DDS's proven scalability (tested in systems with thousands of nodes).


🀝 Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Make your changes
  4. Run tests: ./tests/run_all_tests.sh
  5. Submit a pull request

πŸ“– Testing guide: tests/README.md

Development Setup

# Clone and setup (or download release)
cd Genesis_LIB
./setup.sh

# Activate environment
source venv/bin/activate

# Install in editable mode
pip install -e .

# Run tests
cd tests && ./run_all_tests.sh

πŸ› οΈ Technical Requirements

Component Requirement
Python 3.10 (required)
RTI Connext DDS 7.3.0 or greater
Operating System macOS, Linux, Windows
LLM APIs OpenAI and/or Anthropic

πŸ“ž Support

Need help? We're here for you.

Email: genesis@rti.com

When contacting support, please include:

  • Subject line: "Genesis: [brief description]"
  • Environment: OS, Python version, RTI Connext version
  • Description: What you're trying to do and what's happening
  • Logs/errors: Any relevant error messages or stack traces

For bug reports, you can also open a GitHub Issue.


πŸ“„ License

GENESIS is released under the RTI License. See LICENSE for details.


Built with ❀️ by the GENESIS Team

Wiki β€’ Documentation β€’ Examples β€’ Report Issues


(c) 2025 Copyright, Real-Time Innovations, Inc. (RTI) All rights reserved.

RTI grants Licensee a license to use, modify, compile, and create derivative works of the Software. Licensee has the right to distribute object form only for use with RTI products. The Software is provided "as is", with no warranty of any type, including any warranty for fitness for any purpose. RTI is under no obligation to maintain or support the Software. RTI shall not be liable for any incidental or consequential damages arising out of the use or inability to use the software.

About

GENESIS: A distributed AI agent framework built on RTI Connext DDS. Enables multi-agent systems with automatic function discovery, real-time monitoring, and seamless agent-to-agent communication over DDS.

https://www.rti.com

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors