Skip to content

Commit 4763769

Browse files
Merge pull request #12 from Light-Heart-Labs/lighthouse-ai-v1
Rename to Lighthouse AI + major content expansion
2 parents 2085623 + f061c21 commit 4763769

38 files changed

Lines changed: 4285 additions & 166 deletions

README.md

Lines changed: 70 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Android Framework
1+
# Lighthouse AI
22

33
**Operations toolkit for persistent LLM agents — process watchdog, session cleanup, memory reset, API cost monitoring, and tool call proxy.**
44

@@ -31,6 +31,9 @@ what you're building.
3131
| [Memory Shepherd](#memory-shepherd) | Periodic memory reset to prevent agent drift | No (any markdown-based agent memory) | Linux |
3232
| [Golden Configs](#golden-configs) | Working config templates for OpenClaw + vLLM | Yes | Any |
3333
| [Workspace Templates](#workspace-templates) | Agent personality/identity starter files | Yes | Any |
34+
| [LLM Cold Storage](#llm-cold-storage) | Archive idle HuggingFace models to free disk | No | Linux |
35+
| [Docker Compose Stacks](#docker-compose-stacks) | One-command deployment (nano/pro tiers) | No | Any |
36+
| [Cookbook Recipes](#cookbook-recipes) | Step-by-step guides: voice, RAG, code, privacy, multi-GPU, swarms | No | Linux |
3437

3538
---
3639

@@ -48,6 +51,9 @@ any framework.
4851
| [MULTI-AGENT-PATTERNS.md](docs/MULTI-AGENT-PATTERNS.md) | Coordination protocols, reliability math, sub-agent spawning, echo chamber prevention, supervisor pattern |
4952
| [OPERATIONAL-LESSONS.md](docs/OPERATIONAL-LESSONS.md) | Silent failures, memory management, tool calling reliability, production safety, background GPU automation |
5053
| [GUARDIAN.md](docs/GUARDIAN.md) | Infrastructure protection, autonomy tiers, immutable watchdogs, defense in depth |
54+
| [Cookbook Recipes](docs/cookbook/) | **Practical step-by-step guides** — voice agents, RAG, code assistant, privacy proxy, multi-GPU, swarms, n8n |
55+
| [Research](docs/research/) | Hardware buying guide, GPU TTS benchmarks, open-source model landscape |
56+
| [Token Monitor Scope](docs/TOKEN-MONITOR-PRODUCT-SCOPE.md) | Token Spy product roadmap, competitive analysis, pricing strategy |
5157

5258
### The Reference Implementation (OpenClaw + vLLM)
5359

@@ -128,8 +134,8 @@ For the rationale behind every design choice: **[docs/DESIGN-DECISIONS.md](docs/
128134
### Option 1: Full Install (Session Cleanup + Proxy)
129135

130136
```bash
131-
git clone https://github.com/Light-Heart-Labs/Android-Framework.git
132-
cd Android-Framework
137+
git clone https://github.com/Light-Heart-Labs/Lighthouse-AI.git
138+
cd Lighthouse-AI
133139

134140
# Edit config for your setup
135141
nano config.yaml
@@ -202,6 +208,41 @@ nano memory-shepherd.conf # Define your agents and baselines
202208
sudo ./install.sh # Installs as systemd timer
203209
```
204210

211+
### Option 6: Docker Compose (Full Stack)
212+
213+
Deploy a complete local AI stack with one command. Choose your tier:
214+
215+
```bash
216+
cd compose
217+
cp .env.example .env
218+
nano .env # Set your secrets
219+
220+
# Pro tier (24GB+ VRAM — vLLM, Whisper, TTS, voice agent, dashboard)
221+
docker compose -f docker-compose.pro.yml up -d
222+
223+
# Nano tier (CPU only — llama.cpp, dashboard, no voice)
224+
docker compose -f docker-compose.nano.yml up -d
225+
```
226+
227+
### Option 7: LLM Cold Storage
228+
229+
Archive HuggingFace models idle for 7+ days to free disk space. Models stay resolvable via symlink.
230+
231+
```bash
232+
# Dry run (shows what would be archived)
233+
./scripts/llm-cold-storage.sh
234+
235+
# Execute for real
236+
./scripts/llm-cold-storage.sh --execute
237+
238+
# Check status
239+
./scripts/llm-cold-storage.sh --status
240+
241+
# Install as daily systemd timer
242+
cp systemd/llm-cold-storage.service systemd/llm-cold-storage.timer ~/.config/systemd/user/
243+
systemctl --user enable --now llm-cold-storage.timer
244+
```
245+
205246
---
206247

207248
## Configuration
@@ -332,7 +373,7 @@ See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full deep dive.
332373
## Project Structure
333374

334375
```
335-
Android-Framework/
376+
Lighthouse-AI/
336377
├── config.yaml # Configuration (edit this first)
337378
├── install.sh # Linux installer
338379
├── install.ps1 # Windows installer
@@ -343,8 +384,13 @@ Android-Framework/
343384
├── scripts/
344385
│ ├── session-cleanup.sh # Session watchdog script
345386
│ ├── vllm-tool-proxy.py # vLLM tool call proxy (v4)
387+
│ ├── llm-cold-storage.sh # Archive idle HuggingFace models
346388
│ ├── start-vllm.sh # Start vLLM via Docker
347389
│ └── start-proxy.sh # Start the tool call proxy
390+
├── compose/
391+
│ ├── docker-compose.pro.yml # Full GPU stack (vLLM + voice + dashboard)
392+
│ ├── docker-compose.nano.yml # CPU-only minimal stack
393+
│ └── .env.example # Environment template
348394
├── token-spy/ # API cost & usage monitor
349395
│ ├── main.py # Proxy server + embedded dashboard
350396
│ ├── db.py # SQLite storage layer
@@ -363,7 +409,9 @@ Android-Framework/
363409
│ ├── openclaw-session-cleanup.service
364410
│ ├── openclaw-session-cleanup.timer
365411
│ ├── vllm-tool-proxy.service
366-
│ └── token-spy@.service # Token Spy (templated per-agent)
412+
│ ├── token-spy@.service # Token Spy (templated per-agent)
413+
│ ├── llm-cold-storage.service # Model archival (oneshot)
414+
│ └── llm-cold-storage.timer # Daily trigger for cold storage
367415
├── memory-shepherd/ # Periodic memory reset for agents
368416
│ ├── memory-shepherd.sh # Config-driven reset script
369417
│ ├── memory-shepherd.conf.example # Example agent config
@@ -385,9 +433,23 @@ Android-Framework/
385433
│ ├── SETUP.md # Full local setup guide
386434
│ ├── ARCHITECTURE.md # How it all fits together
387435
│ ├── TOKEN-SPY.md # Token Spy setup & API reference
436+
│ ├── TOKEN-MONITOR-PRODUCT-SCOPE.md # Token Spy product roadmap & competitive analysis
388437
│ ├── OPERATIONAL-LESSONS.md # Hard-won lessons from 24/7 agent ops
389438
│ ├── MULTI-AGENT-PATTERNS.md # Coordination, swarms, and reliability
390-
│ └── GUARDIAN.md # Infrastructure protection & autonomy tiers
439+
│ ├── GUARDIAN.md # Infrastructure protection & autonomy tiers
440+
│ ├── cookbook/ # Step-by-step practical recipes
441+
│ │ ├── 01-voice-agent-setup.md # Whisper + vLLM + Kokoro
442+
│ │ ├── 02-document-qa-setup.md # RAG with Qdrant/ChromaDB
443+
│ │ ├── 03-code-assistant-setup.md # Tool-calling code agent
444+
│ │ ├── 04-privacy-proxy-setup.md # PII-stripping API proxy
445+
│ │ ├── 05-multi-gpu-cluster.md # Multi-node load balancing
446+
│ │ ├── 06-swarm-patterns.md # Sub-agent parallelization
447+
│ │ ├── 08-n8n-local-llm.md # Workflow automation
448+
│ │ └── agent-template-code.md # Agent template with debugging protocol
449+
│ └── research/ # Technical research & benchmarks
450+
│ ├── HARDWARE-GUIDE.md # GPU buying guide with real prices
451+
│ ├── GPU-TTS-BENCHMARK.md # TTS latency benchmarks
452+
│ └── OSS-MODEL-LANDSCAPE-2026-02.md # Open-source model comparison
391453
└── LICENSE
392454
```
393455

@@ -461,6 +523,8 @@ See [docs/SETUP.md](docs/SETUP.md) for the full troubleshooting guide. Quick hit
461523
- **[docs/DESIGN-DECISIONS.md](docs/DESIGN-DECISIONS.md)** — Why we made the choices we did: session limits, ping cycles, deterministic supervision, and more
462524
- **[docs/PATTERNS.md](docs/PATTERNS.md)** — Six transferable patterns for autonomous agent systems, applicable to any framework
463525
- **[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)** — Deep dive on the vLLM Tool Call Proxy internals
526+
- **[docs/cookbook/](docs/cookbook/)** — Practical step-by-step recipes for voice, RAG, code, privacy, multi-GPU, swarms, and workflow automation
527+
- **[docs/research/](docs/research/)** — Hardware guide, GPU benchmarks, open-source model landscape
464528
- **Android-Labs** (private) — Proof of work: 3,464 commits from 3 AI agents in 8 days
465529

466530
---

compose/.env.example

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Generate secure keys with: openssl rand -base64 32
2+
3+
# Dream Server Environment Configuration
4+
# Copy this file to .env and fill in your actual values
5+
# NEVER commit .env files with real secrets to git
6+
7+
# ============================================
8+
# REQUIRED: LiveKit Credentials
9+
# ============================================
10+
# These MUST be changed from defaults before running in production
11+
# Generate strong secrets: openssl rand -base64 32
12+
LIVEKIT_API_KEY=change-me-to-a-secure-key
13+
LIVEKIT_API_SECRET=change-me-to-a-secure-secret-min-32-chars-long
14+
15+
# LiveKit connection URL (used by services to connect)
16+
LIVEKIT_URL=ws://localhost:7880
17+
18+
# ============================================
19+
# Optional: Service Hosts (for Docker networking)
20+
# ============================================
21+
# These are auto-configured for Docker Compose but can be overridden
22+
# VLLM_HOST=vllm
23+
# WHISPER_HOST=whisper
24+
# KOKORO_HOST=kokoro
25+
# QDRANT_HOST=qdrant
26+
# N8N_HOST=n8n
27+
28+
# ============================================
29+
# Optional: Model Configuration
30+
# ============================================
31+
# VLLM_MODEL=Qwen/Qwen2.5-7B-Instruct-AWQ
32+
# LLM_MODEL=Qwen/Qwen2.5-7B-Instruct-AWQ
33+
34+
# ============================================
35+
# Optional: Dashboard API
36+
# ============================================
37+
# DASHBOARD_ALLOWED_ORIGINS=http://localhost:3001,http://127.0.0.1:3001

compose/docker-compose.nano.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Dream Server — Nano Tier
2+
# 8GB+ RAM, no GPU required — 1-3B models, text-only
3+
# Usage: docker compose -f docker-compose.nano.yml up -d
4+
#
5+
# Note: Voice features disabled (no GPU for real-time STT/TTS)
6+
# Use text chat via API or dashboard
7+
8+
services:
9+
# ═══════════════════════════════════════════════════════════════
10+
# LLM — Qwen2.5-1.5B via llama.cpp (CPU)
11+
# ═══════════════════════════════════════════════════════════════
12+
llama:
13+
image: ghcr.io/ggerganov/llama.cpp:server
14+
container_name: dream-llama
15+
ports:
16+
- "8000:8080"
17+
volumes:
18+
- ${MODELS_DIR:-~/.cache/models}:/models
19+
command: >
20+
--model /models/qwen2.5-1.5b-instruct-q4_k_m.gguf
21+
--ctx-size 8192
22+
--n-gpu-layers 0
23+
--threads 4
24+
--host 0.0.0.0
25+
--port 8080
26+
healthcheck:
27+
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
28+
interval: 30s
29+
timeout: 10s
30+
retries: 3
31+
start_period: 60s
32+
restart: unless-stopped
33+
34+
# ═══════════════════════════════════════════════════════════════
35+
# Dashboard + API (no voice features)
36+
# ═══════════════════════════════════════════════════════════════
37+
dashboard:
38+
build:
39+
context: ./dashboard
40+
dockerfile: Dockerfile
41+
container_name: dream-dashboard
42+
ports:
43+
- "3001:3001"
44+
environment:
45+
- VITE_API_URL=http://localhost:3002
46+
- VITE_VOICE_ENABLED=false
47+
depends_on:
48+
- api
49+
restart: unless-stopped
50+
51+
api:
52+
build:
53+
context: ./api
54+
dockerfile: Dockerfile
55+
container_name: dream-api
56+
ports:
57+
- "3002:3002"
58+
environment:
59+
- LLM_URL=http://llama:8080
60+
- VOICE_ENABLED=false
61+
depends_on:
62+
- llama
63+
restart: unless-stopped

0 commit comments

Comments
 (0)