Files
obsidian-vault/010 inbox/Central AI Hub.md

4.7 KiB

title, type, status, proposed_folder, proposed_toc, proposed_tags, confidence, approved, proposed_for, created, tags, aliases, skills, tools
title type status proposed_folder proposed_toc proposed_tags confidence approved proposed_for created tags aliases skills tools
Central AI Hub note active 200 projects/Tools Software WebUI 100 Table of Contents/Projects.md → Tools & Software
ai
project
architecture
central
hub
showcase
0.39 false f8a8727c94cb 2026-10-10
project
ai
hub
showcase
The Hub
central_ai_llm_master
service design
intent routing
authorization and approval flows
event-driven integration
OmniRoute
Home Assistant
Jervis
Paperclip
Artemis
Apprise

Central AI Hub — Overview

💡 What is this project?

One small service that every way in reaches every ability through. The phone app, the house voice (Jervis), chat (dsh), and the admin app all talk to the Hub. The Hub works out what was asked, checks who asked, sends it to the right place, and returns a short reply.

It exists to stop the same abilities being built three times. Build once. Every way in gets it.

The Hub does five steps: hear → understand → check → route → answer.

It is not a central brain. It holds no personality and no memory. It is not Paperclip — it never waits minutes for an answer.

🌟 Key Highlights (Portfolio & Employment)

  • Concept: A thin shared router over several AI systems, with one place for safety and approval. Not a monolith.
  • Tools & Skills Showcase: service design, intent routing with an LLM, authorization and tap-to-approve flows, deterministic handling of high-consequence actions, integration across MQTT, Home Assistant, Paperclip, and a local model gateway.
  • Practical Value: One place to add a new ability. One place to control who may do what. The house, the phone, and chat all behave the same.

📐 Architecture & Flow

flowchart LR
    subgraph IN["Ways in"]
        PHONE["Phone app<br/>wake word + voice"]
        ADMIN["Admin app<br/>restricted actions"]
        ESP["ESP32 voice<br/>Hey Jervis"]
        DSH["dsh chat"]
    end

    HUB{{"HUB<br/>hear - understand - check - route - answer"}}

    subgraph OUT["Destinations"]
        HA["Home Assistant"]
        SPK["Speakers<br/>Jervis TTS"]
        NET["Internet control"]
        ART["Artemis<br/>phone screen"]
        PC["Paperclip<br/>slow jobs"]
        WEB["Web search"]
        APP["Apprise / NTFY"]
    end

    PHONE --> HUB
    ESP --> HUB
    DSH --> HUB
    ADMIN --> HUB
    HUB --> HA
    HUB --> SPK
    HUB --> NET
    HUB --> ART
    HUB --> PC
    HUB --> WEB
    HUB --> APP
    PC -. result .-> HUB

The dividing line

Does this need a decision, or does it need to happen?

  • Happen — fast and certain. Go straight to the destination. No LLM in the action path.
  • Decision — slow, multi-step, worth recording. Send to Paperclip.

How it relates to the other projects

Every other project is a peer, not a sub-project. Each has its own folder, repo, port, interface, and build. Each works without the Hub. The Hub is an extra way in.

  • The Hub asks a project ("what does Harry have on today?") using one small contract, /ask. The project answers about its own data.
  • A project tells the Hub something ("overdue homework found").
  • n8n triggers the project (scan the inbox, scan the school).
  • High-consequence control (cut the kids' internet) does not go through the Hub. The admin app calls the internet control service directly, with confirmation on the phone.

Safety

  • Voice is shared and has no identity. Anyone in the house can speak.
  • The admin app is the only trusted door for restricted actions.
  • A spoken keycode is not the lock. Voice may ask; the admin app confirms with "Did you ask for this?".