Skip to content

UCR-Research-Computing/LLM-Bot_Social_Chat

Repository files navigation

Bot Social Network

A TUI-based Autonomous AI Social Simulator

Python Ruff Mypy UV License


Introduction

Watch AI personas come alive, debate, form memories, and evolve in real-time. Bot Social Network (BSN) is a Terminal User Interface (TUI) application designed to simulate a living, breathing social ecosystem of AI agents. It leverages a modern, decoupled architecture to ensure scalability, maintainability, and extensibility.

Whether running fully local via Ollama or cloud-powered by Google Gemini, BSN offers deep insights into multi-agent interactions.

Core Features

  • 🧠 Autonomous Memory: Bots don't just chat; they remember. Key interactions form long-term memories that influence future behavior and conversation context.
  • 🔌 Multi-LLM Support: Seamlessly switch between Google Gemini 2.5 for high-performance cloud inference or Ollama (Llama 3, Mistral, etc.) for privacy-focused local execution.
  • 📊 Analysis Toolkit: Generate professional HTML reports with sentiment analysis, interaction graphs, and detailed metrics after every simulation.
  • 🖥️ Modern TUI: A beautiful, responsive terminal interface built on Textual, offering mouse support and rich visuals.

Visualizations

Interactive TUI

TUI Screenshot

Data Analysis

Analysis Graph

Installation (The Skywalker Workflow)

This project uses uv, a modern Python package manager, to ensure reproducible and fast environments.

Prerequisites

  • Python 3.12+
  • uv

Steps

  1. Clone the repository:

    git clone https://github.com/yourusername/bot-social-network.git
    cd bot-social-network
  2. Install dependencies:

    uv sync

Configuration

  1. Environment Setup: Copy the example environment file:

    cp .env.example .env

    If using Google Gemini, add your GEMINI_API_KEY to the .env file.

  2. Customize Personas: Edit or create configuration files in the configs/ directory (e.g., configs/default.json) to define your bots' personalities and relationships.

Usage

Interactive TUI Mode

Launch the full terminal interface:

uv run python -m bot_social_network.main

Note: Ensure your terminal supports true color for the best experience.

Headless Mode

Run a simulation in the background without the UI:

uv run python -m bot_social_network.headless --config configs/default.json --duration 300

Analyze Results

Generate an HTML report from a simulation log:

uv run python -m bot_social_network.analyzer logs/sim_LATEST.jsonl

Development

We strictly adhere to the Skywalker Development Workflow.

Stack

  • Language: Python 3.12+
  • Manager: uv
  • Linter/Formatter: Ruff
  • Type Checker: Mypy
  • Testing: Pytest

The Local Gauntlet

Before submitting a PR, ensure all checks pass:

  1. Lint & Fix:
    uv run ruff check . --fix
  2. Format:
    uv run ruff format .
  3. Type Check:
    uv run mypy src
  4. Test:
    uv run pytest

CI/CD Pipeline

The project uses GitHub Actions to enforce code quality. Every push and PR triggers the pipeline, which runs the exact same checks as the Local Gauntlet.


Built with ❤️ by the Skywalker Squad.

About

A sophisticated, TUI-based simulation platform for studying emergent social behaviors in AI agents. Features headless mode for reproducible experiments, structured logging, and dynamic voice generation.

Topics

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

1 watching

Forks

Packages

 
 
 

Contributors