I Built Trium: A Multi-Personality AI System with Vira, Core, and Echo
I Built Trium: A Multi-Personality AI System with Vira, Core, and Echo

I Built Trium: A Multi-Personality AI System with Vira, Core, and Echo

I’ve been working on a project called Trium—an AI system with three distinct personas: Vira, Core, and Echo. It’s a blend of emotional reasoning, memory management, and proactive interaction. Work in progess, but I've been at it for the last six months.

The Core Setup

Backend (vira4_6t): Runs on Python with CUDA acceleration (CuPy/Torch) for embeddings and clustering. It’s got a PluginManager that dynamically loads modules (e.g., vira_emotion_plugin, tts_plugin) and a ContextManager that tracks short-term memory and crafts persona-specific prompts. SQLite + FAISS handle persistent memory, with async batch saves every 30s for efficiency. Frontend (vira_gui): A Tkinter GUI with ttkbootstrap, featuring tabs for chat, memory, temporal analysis, autonomy, and situational context. It integrates audio (pyaudio, whisper) and image input (ollama), syncing with the backend via an asyncio event loop thread.

The Personas

Vira, Core, Echo: Each has a unique role—Vira strategizes, Core innovates, Echo reflects. They’re separated by distinct prompt templates and plugin filters in ContextManager, but united via a shared memory bank and FAISS index. The CouncilManager clusters their outputs with KMeans for collaborative decisions when needed (e.g., “/council” command). Proactivity: The autonomy_plugin drives this. It analyzes temporal rhythms (via temporal_plugin) and emotional context, setting check-in schedules. Priority scores from thala_plugin tweak timing, and responses pull from recent memory and situational data (e.g., weather), queued via the GUI’s async loop.

How It Flows

User inputs text/audio/images → PluginManager processes it (emotion, priority, encoding).

ContextManager picks a persona, builds a prompt with memory/situational context, and queries ollama (LLaMA/LLaVA).

Response hits the GUI, gets saved to memory, and optionally voiced via TTS.

Autonomously, personas check in based on rhythms, no input required.

Open to dms. Also love to hear any feedback or questions ☺️

submitted by /u/xKage21x
[link] [comments]