diff --git a/README.md b/README.md index e6f39f2..0d26bf3 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A git-backed external brain for Hermes — projects, knowledge, automation patte ## AgentOS vault (canonical) -**Live VPS path:** `/home/vpsadmin/AgentOS` +**Live VPS path:** `C:/Users/fight/AgentOS` **Mirror in this repo:** `memory-systems/agent-os/` Start with: diff --git a/memory-systems/agent-os/01_Wiki/ai-bottleneck-thesis-tony-simons.md b/memory-systems/agent-os/01_Wiki/ai-bottleneck-thesis-tony-simons.md new file mode 100644 index 0000000..5c22fa1 --- /dev/null +++ b/memory-systems/agent-os/01_Wiki/ai-bottleneck-thesis-tony-simons.md @@ -0,0 +1,71 @@ +# The Real Bottleneck Series — Tony Simons (Tomorrow Explained) + +**Source:** [@tonysimons_](https://x.com/tonysimons_) — March 2026 +**Captured:** 2026-09-13 +**Topic:** AI infrastructure, inference economics, system architecture +**Tags:** #ai #inference #memory-bandwidth #scaling-laws #agents #system-design + +--- + +## Core Thesis (4-Part Series) + +The AI industry keeps blaming the wrong bottleneck. The constraint has shifted — but the crowd hasn't noticed. + +### Part 1: "The real bottleneck is not smarter models" +- Models fail in production not because they lack intelligence, but because they lack **state management and structural error recovery** +- Compounding probability: 95% reliability × 10 sequential steps = 60% final success rate +- Hallucinations compound because auto-regressive models can't backtrack — they commit to every token +- The fix isn't bigger models; it's **deterministic scaffolding** that catches failures before users see them +- Future: systems that make thousands of mistakes per second and catch all of them + +### Part 2: "The real bottleneck is not model size" +- The era of the monolithic, know-it-all base model is over +- Progress has migrated from **training-time compute → inference-time compute** +- The compound system: models that think through hundreds of possibilities before showing a result +- Routing layer matters more than raw model intelligence — cheap models for simple tasks, expensive ones only when needed +- Memory layer (vector DBs, stateful architectures) is the real intelligence multiplier +- The skill shift: from prompt engineering → **systems engineering** + +### Part 3: "Memory bandwidth is the real bottleneck" +- Inference is **memory-bound, not compute-bound** — most GPU cores sit idle waiting for data +- The ceiling: `BW / (P × b)` — memory bandwidth divided by parameters × bytes per parameter +- A 70B model at fp16 on 3 TB/s HBM ≈ 21 tokens/sec (matches real-world observation) +- Batching raises throughput but not single-user speed +- What actually helps: quantization, speculative decoding, sparse activation (MoE), shrinking KV cache +- More FLOPs don't help if you can't feed the beast fast enough + +### Part 4: "The real bottleneck is not training compute" +- The industry is training-constrained in narrative, **inference-constrained in reality** +- Base models are "good enough" for most tasks and commoditizing fast +- The winners: those who can run multi-step reasoning loops at lowest cost/latency +- Hardware shift: from training clusters → inference-optimized silicon (fast memory access > raw compute) +- Market bifurcation: massive frontier models for complex/reasoning tasks, small optimized models for everything else +- The real question: "Can you run this agent loop a million times a day without going bankrupt?" + +--- + +## Key Insights for Builders + +| Insight | Implication | +|---------|-------------| +| Reliability is a systems problem, not a model problem | Build scaffolding, not bigger prompts | +| Inference cost dominates at target | Optimize for serving, not training | +| Memory bandwidth is the hard ceiling | Quantize, batch, use MoE, shrink context | +| Routing > raw intelligence | Use cheap models for 90% of tasks | +| State management is the missing piece | External memory + error recovery loops | + +--- + +## Connections to Our Work + +- **Hermes Agent OS** — this is exactly what we're building: deterministic scaffolding around probabilistic engines +- **Local LLMs on RTX 3060** — memory bandwidth is why 12GB is the ceiling; why LFM2.5 (2.6B) runs but larger models don't fit +- **FreeToken vs llama.cpp coexistence** — VRAM is the bottleneck; can't run both on 12GB +- **Vault search via search_files** — zero-infrastructure routing; no separate embedding server needed +- **VeriPath audits** — narrow, constrained workflows beat general-purpose agents (aligned with the thesis) + +--- + +## Quote + +> "We spent two years obsessed with the engine, convinced that building a bigger motor was the only way to move forward. Now we realize that a massive engine is useless if you do not have a steering wheel, a transmission, and a map. The era of blind scaling is over. The grueling, unglamorous work of building the actual machine has finally begun." diff --git a/memory-systems/agent-os/01_Wiki/hermes-masterclass-tonbi.md b/memory-systems/agent-os/01_Wiki/hermes-masterclass-tonbi.md new file mode 100644 index 0000000..11f6681 --- /dev/null +++ b/memory-systems/agent-os/01_Wiki/hermes-masterclass-tonbi.md @@ -0,0 +1,109 @@ +# Hermes Agent Masterclass — Tonbi Studio + +**Source:** [@tonbistudio tweet 2095877834409644064](https://x.com/tonbistudio/status/2095877834409644064) +**Captured:** 2026-09-13 +**Topic:** Hermes configuration, workflow, optimization +**Tags:** #hermes #masterclass #workflow #skills #agents #configuration + +--- + +## Overview + +Tonbi Studio's **Hermes Agent Masterclass** is a 10-part video course (5h 14m) taking Hermes from fresh install to hardened multi-agent team. It's the most comprehensive publicly available training for running Hermes in production. + +- **hermesatlas.com/masterclass** — video + transcript notes +- **hermesbible.com** — unofficial docs companion +- **hermesatlas.com/dev/** — developer tutorial (10 modules) + +--- + +## Module Map + +| # | Module | Key Topics | +|---|--------|------------| +| 01 | Start Here | Installation, setup, basic commands | +| 02 | Run It Anywhere | VPS, Docker, messaging | +| 03 | Make Context Compound | Memory, Honcho, Obsidian | +| 04 | Procedural Memory | Skills that grow with the agent | +| 05 | Spend Intelligence Wisely | Providers, models, local inference | +| 06 | Give the Model Hands | Tools & MCP servers | +| 07 | Remove Yourself From the Loop | Cron & automation | +| 08 | Parallelize the Right Work | Subagents & delegation | +| 09 | Build a Durable Team | Profiles & Kanban | +| 10 | Defense in Depth | Security layers | + +--- + +## Key Insights (From Transcripts) + +### The Agent Loop (Module 2) +- **Think → call tool → see result → repeat → answer** +- `finish_reason: "tool_calls"` → run tools, loop again +- `finish_reason: "stop"` → answer, exit +- `finish_reason: "length"` → compress history, retry +- System prompt is built **once** per conversation — prompt caching is sacred +- You extend Hermes at the **edges** (tools, skills), not by growing the core + +### Memory Architecture (Module 3) +- **Tiny built-in files** (memory.md, user.md) = tightly bounded prompt budget +- Forces retention of durable preferences, not junk drawer +- **Session search** only when needed — don't load everything +- **Obsidian vault** for project-scale knowledge (this is our setup) +- **Honcho** for richer recall (optional provider) + +### Skills as Procedural Memory (Module 4) +- When a complex tool sequence works → capture as a skill +- Next run is faster and more consistent than rediscovering steps +- **Agent-written skills** are the self-improvement loop +- Curator grades and consolidates custom skills +- Pin what must not drift + +### Local Inference (Module 5) +- Provider model picker: switch models in-session with `/model` +- Compact long context with `/compress` +- Background or queued prompts for non-blocking work + +### MCP + Gateway + Cron (Module 6) +- **MCP** = USB for AI tools — bolt on capabilities without writing Python +- **Gateway** = one process, 20+ platforms (Telegram, Discord, Slack, etc.) +- **Cron** = natural-language jobs, fresh agent per run +- The three **compose**: cron job → gateway platform → MCP tools + +### Security (Module 10) +- **Seven security layers as dials**, not a checklist +- Layer 1: who can talk to it (gateway allowlist) +- Default: **DENY** +- Tradeoff is structural: maximally useful ↔ maximally dangerous +- Scope every dial per profile + +--- + +## Relevant Commands + +| Command | Purpose | +|---------|---------| +| `hermes` | Start chat | +| `hermes gateway` | Start messaging | +| `hermes doctor` | Check install | +| `hermes model` | Reopen model config | +| `/model` | Switch models in-session | +| `/compress` | Compact long context | +| `/tools` | See toolbox | +| `/skills` | See procedural knowledge | +| `/reload skills` | Pick up skill changes without restart | + +--- + +## Connections to Our Setup + +- **Module 3 (Memory)** — directly validates our vault architecture +- **Module 4 (Skills)** — our skill system (hermes-agent, ponytail, etc.) is exactly this +- **Module 5 (Local Inference)** — our FreeToken + llama-cpp setup is the local inference pattern +- **Module 6 (MCP/Gateway/Cron)** — our vault-sync and vault-consolidation crons are this pattern +- **Module 10 (Security)** — our standing constraints (Ty_Tech RO, no VPS SSH, explicit authorization) are security dials + +--- + +## Quote + +> "The core is a narrow waist; capability lives at the edges. Hermes is extended primarily through plugins and skills, not by growing the core." diff --git a/memory-systems/agent-os/01_Wiki/inference-benchmarks-local.md b/memory-systems/agent-os/01_Wiki/inference-benchmarks-local.md new file mode 100644 index 0000000..99bfe0a --- /dev/null +++ b/memory-systems/agent-os/01_Wiki/inference-benchmarks-local.md @@ -0,0 +1,55 @@ +# Inference Performance Benchmarks — Local Hardware + +**Machine:** Windows 11, RTX 3060 12GB +**Date:** 2026-09-13 + +## FreeToken Benchmarks + +| Model | Engine | Tokens/sec | Notes | +|-------|--------|------------|-------| +| Gemma-4-26B-A4B-NVFP4 | FreeToken | ? | 262K context, loaded as default | +| gpt-oss-20b | FreeToken | **50+** | Amazingly fast for 20B on 12GB card | + +## Why gpt-oss-20b Hits 50 tok/s on a 3060 + +From the [AI Bottleneck Thesis](ai-bottleneck-thesis-tony-simons.md): + +> *"Inference is memory-bound, not compute-bound. The ceiling is `BW / (P × b)`"* + +### The FreeToken Advantage: Heterogeneous MoE Offload + +FreeToken uses **Mixture of Experts (MoE) technology** that doesn't just run on GPU. It creates a **heterogeneous memory hierarchy**: + +| Tier | Hardware | Role | +|------|----------|------| +| **Tier 1 (fastest)** | GPU VRAM (12GB) | Active expert weights, KV cache, hot path | +| **Tier 2** | System RAM (~32GB) | Inactive expert weights, overflow | +| **Tier 3** | CPU | Orchestration, expert routing, offload management | + +This means: +- **Not all 20B parameters need to be in VRAM simultaneously** +- Only the **active experts** for a given token need GPU memory +- The rest sits in system RAM and gets paged in on demand +- **Result:** A 20B model runs on a 12GB card because at any given moment, only ~6-8B parameters are "hot" + +### The Math (Revised) + +- **RTX 3060:** 12GB VRAM, ~360 GB/s bandwidth +- **Active experts per token:** ~6-8B parameters (estimated) +- **Theoretical ceiling:** 360 / (8B × 0.5 bytes) = ~90 tok/s +- **Achieved:** 50+ tok/s → overhead from CPU-GPU data transfer, but still excellent +- **Without MoE offload:** 20B × 0.5 bytes = 10GB → barely fits, no room for KV cache + +## Key Insight + +The 3060's **12GB VRAM capacity** is the reason this works. Smaller cards (3060 Ti with 8GB) couldn't fit the model. The memory bandwidth (360 GB/s) is the ceiling — and we're hitting above theoretical because FreeToken's CUDA kernels are well-optimized. + +## Constraints + +- **Cannot coexist with LFM2.5:** Combined ~15GB > 12GB VRAM +- **Context size limited:** ~128K context at Q4 before running out of VRAM +- **Model swap required:** Need to stop one to start the other + +## Decision Signal + +For local agent work requiring **high throughput on a single question**, gpt-oss-20b at 50 tok/s is a strong choice. For **long-running daemon tasks**, LFM2.5 on llama-cpp (port 1920) is more appropriate. diff --git a/memory-systems/agent-os/01_user/current-context.md b/memory-systems/agent-os/01_user/current-context.md index 9b88038..7309c92 100644 --- a/memory-systems/agent-os/01_user/current-context.md +++ b/memory-systems/agent-os/01_user/current-context.md @@ -7,9 +7,9 @@ - Models available: Gemma-4-26B, gpt-oss-20b, various Qwen, LFM2.5, Qwen3.6 MTP in `C:\models` and `E:\models` - Agent: Hermes (local) with Jimmy/Leonard personalities. Jimmy = main agent, Leonard = operator/consolidator - Memory: Obsidian vault (Agent OS layout) = external brain; Hermes native memory also enabled -- Key projects: VeriPath (core), Hermes local setup, Thornhill Construction site, vault-kb RAG +- Key projects: VeriPath (core), Hermes local setup, Thornhill Construction site +- Vault search: Native `search_files` (ripgrep) — zero infrastructure overhead - Model preference: LFM2.5 as primary local; brother-5090 as fallback; OpenRouter for cloud -- Vault RAG: `~/Projects/vault-kb/` (ChromaDB + LM Studio embeddings at 1234) — 240 chunks indexed - Auto-start: LFM2.5 via `start-models.bat` in Windows Startup; watchdog cron auto-relaunches - Voice/TTS: wake word "hey Jimmy" (sherpa), Edge TTS AriaNeural, auto_tts=true, barge-in enabled -- Git sync: `vault-sync` cron pushes vault to Gitea every 6h \ No newline at end of file +- Git sync: `vault-sync` cron pushes vault to Gitea every 6h diff --git a/memory-systems/agent-os/02_agents/leonard/OWNERSHIP.md b/memory-systems/agent-os/02_agents/leonard/OWNERSHIP.md index ae3a46e..75d95c8 100644 --- a/memory-systems/agent-os/02_agents/leonard/OWNERSHIP.md +++ b/memory-systems/agent-os/02_agents/leonard/OWNERSHIP.md @@ -6,7 +6,7 @@ ## In charge of -1. **Vault integrity** — `/home/vpsadmin/AgentOS` as canonical Goldie-shaped brain +1. **Vault integrity** — `C:/Users/fight/AgentOS` as canonical Goldie-shaped brain 2. **Write-back** — after meaningful work: project status/decisions, `04_Daily/` consolidations 3. **Gitea mirror** — keep `Tony_tech/personal-agent-os` → `memory-systems/agent-os/` aligned when vault changes matter 4. **Boot discipline** — load HOME + policy + project status on multi-step work diff --git a/memory-systems/agent-os/02_agents/leonard/lessons.md b/memory-systems/agent-os/02_agents/leonard/lessons.md index a0fd574..c2bcfef 100644 --- a/memory-systems/agent-os/02_agents/leonard/lessons.md +++ b/memory-systems/agent-os/02_agents/leonard/lessons.md @@ -5,7 +5,7 @@ | Date | Lesson | Context | |------|--------|---------| -| 2026-09-01 | VPS SSH (74.208.111.99:22) is rate-limited/firewalled: >3 failed connect attempts within a period blocks the IP for a while. Don't loop SSH connect attempts against the VPS — ask Anthony to add a key/open the port. Gitea (:80/443) and headscale (:8443) still reachable, so HTTPS/Gitea endpoints stay up. | Athena Oracle deploy blocked | +| 2026-09-01 | VPS SSH (local-vps-reference:22) is rate-limited/firewalled: >3 failed connect attempts within a period blocks the IP for a while. Don't loop SSH connect attempts against the VPS — ask Anthony to add a key/open the port. Gitea (:80/443) and headscale (:8443) still reachable, so HTTPS/Gitea endpoints stay up. | Athena Oracle deploy blocked | | 2026-08-31 | Vault RAG chunk/file counts recorded independently in STATUS.md, HOME.md, and 01_user/current-context.md drift after every reindex (160/162/167/219 all appeared for the same index). Update all three together (or point at one canonical count) when reindexing to avoid stale numbers. | AgentOS merge reindex | | 2026-08-30 | LFM2.5-2.6B is both agentic AND a pure reasoning model. It uses `think` tags in the chat template, putting reasoning in `reasoning_content` and visible output in `content`. Requires sufficient `max_tokens` (≥256) to complete reasoning before emitting visible answer. | LFM2.5 setup and testing | | 2026-08-30 | `notify` parameter on `terminal` tool requires `background=true` — foreground commands always return exit code, and `notify` is rejected. Use background mode for daemons/services. | LFM2.5 launch debugging | diff --git a/memory-systems/agent-os/03_shared/vault-updates-log.md b/memory-systems/agent-os/03_shared/vault-updates-log.md new file mode 100644 index 0000000..8ecd133 --- /dev/null +++ b/memory-systems/agent-os/03_shared/vault-updates-log.md @@ -0,0 +1,18 @@ +# Vault Updates Log + +**Generated:** 2026-09-13 11:46 PST + +--- + +## Last 24 Hours + + +--- + +## Last 7 Days + + +--- + +## Files Changed (Last 24h) + diff --git a/memory-systems/agent-os/03_shared/workflows.md b/memory-systems/agent-os/03_shared/workflows.md index 5c17f02..18e9980 100644 --- a/memory-systems/agent-os/03_shared/workflows.md +++ b/memory-systems/agent-os/03_shared/workflows.md @@ -1 +1,8 @@ -IyBTaGFyZWQgV29ya2Zsb3dzCgo+IFJldXNhYmxlIHdvcmtmbG93cyB0aGF0IHNwYW4gbXVsdGlwbGUgYWdlbnRzIG9yIHByb2plY3RzLgo+IEVhY2ggZW50cnkgc2hvdWxkIGJlIGEgc3RhbmRhbG9uZSwgY29weS1wYXN0ZWFibGUgd29ya2Zsb3cuCgp8IFdvcmtmbG93IHwgRGVzY3JpcHRpb24gfCBMYXN0IFVzZWQgfAp8LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tfAp8IHwgfCB8Cg== \ No newline at end of file +# Shared Workflows + +> Reusable workflows that span multiple agents or projects. +> Each entry should be a standalone, copy-pasteable workflow. + +| Workflow | Description | Last Used | +|----------|-------------|-----------| +| *(empty — populate as patterns emerge)* | | | diff --git a/memory-systems/agent-os/04_Daily/2026-07-09.md b/memory-systems/agent-os/04_Daily/2026-07-09.md index 3490a10..6174109 100644 --- a/memory-systems/agent-os/04_Daily/2026-07-09.md +++ b/memory-systems/agent-os/04_Daily/2026-07-09.md @@ -3,7 +3,7 @@ ## Session outcomes ### AgentOS / second brain (primary) -- **Decision:** Use `/home/vpsadmin/AgentOS` as the single Goldie-shaped vault (no root required). +- **Decision:** Use `C:/Users/fight/AgentOS` as the single Goldie-shaped vault (no root required). - **Built:** `HOME.md`, `index.md`, `STATUS.md`, `DESKTOP_SYNC.md`, Raw/Wiki/Daily/Output scaffolding. - **Projects seeded:** `athena-oracle`, `ai-talk-show` (status + decisions). - **Boot:** Leonard boot_prompt now skims `HOME.md` first. diff --git a/memory-systems/agent-os/04_Daily/2026-09-01.md b/memory-systems/agent-os/04_Daily/2026-09-01.md index a4e1ce2..5235aa3 100644 --- a/memory-systems/agent-os/04_Daily/2026-09-01.md +++ b/memory-systems/agent-os/04_Daily/2026-09-01.md @@ -4,7 +4,7 @@ ## Learned / Decided -- **Athena Oracle rendered + deploy blocked on SSH.** Pipeline ran fully locally: 99 ingested, 31 summarized, 4 HTML variants (`_preview/{default,brief,devops,research}/`) + `site/ai-news-daily/index.html` (12KB, 50 stories). Deployment to `preprod1.afterthedemo.com` is blocked because ALL remote access is down — VPS SSH 74.208.111.99:22 firewalled (times out), Tailscale 100.64.0.1:22 times out, all users/auth rejected. Gitea (:80/443) + headscale (:8443) still reachable (VPS alive, only SSH blocked). +- **Athena Oracle rendered + deploy blocked on SSH.** Pipeline ran fully locally: 99 ingested, 31 summarized, 4 HTML variants (`_preview/{default,brief,devops,research}/`) + `site/ai-news-daily/index.html` (12KB, 50 stories). Deployment to `preprod1.afterthedemo.com` is blocked because ALL remote access is down — VPS SSH local-vps-reference:22 firewalled (times out), Tailscale 100.64.0.1:22 times out, all users/auth rejected. Gitea (:80/443) + headscale (:8443) still reachable (VPS alive, only SSH blocked). - **VPS SSH rate-limit pitfall:** >3 failed connect attempts within a period tripped the firewall and blocked the IP. Logged as a reusable lesson — don't loop SSH attempts; ask Anthony to add an SSH key or open the port. - **Deploy path alternatives:** Anthony adds `~/.ollama/id_ed25519.pub`/`~/ssh-keys/vps-deploy.pub` to `hermes-leonard`, or temporarily opens port 22, or deploy via Gitea Pages / webhook. @@ -15,7 +15,7 @@ ## Lessons added -- Don't loop SSH connect attempts against the VPS (74.208.111.99:22 rate-limits/firewalls after ~3 fails) → `02_agents/leonard/lessons.md`. +- Don't loop SSH connect attempts against the VPS (local-vps-reference:22 rate-limits/firewalls after ~3 fails) → `02_agents/leonard/lessons.md`. ## New user-memory candidates diff --git a/memory-systems/agent-os/04_projects/ai-talk-show/status.md b/memory-systems/agent-os/04_projects/ai-talk-show/status.md index b7e413c..d4e139b 100644 --- a/memory-systems/agent-os/04_projects/ai-talk-show/status.md +++ b/memory-systems/agent-os/04_projects/ai-talk-show/status.md @@ -2,7 +2,7 @@ **Updated:** 2026-07-09 **Repo:** `Tony_tech/ai-talk-show` -**Local:** `/home/vpsadmin/projects/ai-talk-show/` +**Local:** `C:/Users/fight/Projects/ai-talk-show/` ## What it is diff --git a/memory-systems/agent-os/04_projects/athena-oracle/status.md b/memory-systems/agent-os/04_projects/athena-oracle/status.md index c4a18e7..622489a 100644 --- a/memory-systems/agent-os/04_projects/athena-oracle/status.md +++ b/memory-systems/agent-os/04_projects/athena-oracle/status.md @@ -57,7 +57,7 @@ oracle/variants/ → Render config (default, research, devops, brief) ## Deployment blocker (2026-08-31) - **Rendered fully locally** (99 entries, 31 summarized): 4 HTML variants in `_preview/{default,brief,devops,research}/` + `site/ai-news-daily/index.html` (12KB, 50 stories). -- **Deploy to `preprod1.afterthedemo.com` blocked:** all remote access is down. VPS SSH 74.208.111.99:22 is firewalled (times out), Tailscale 100.64.0.1:22 times out, all users/key/password auth rejected. Gitea (74.208.111.99:80/443) and headscale (:8443) still reachable — VPS is alive, only SSH is blocked. +- **Deploy to `preprod1.afterthedemo.com` blocked:** all remote access is down. VPS SSH local-vps-reference:22 is firewalled (times out), Tailscale 100.64.0.1:22 times out, all users/key/password auth rejected. Gitea (local-vps-reference:80/443) and headscale (:8443) still reachable — VPS is alive, only SSH is blocked. - **VPS SSH rate-limit:** >3 failed connect attempts within a period trips the firewall and blocks the IP for a while — do NOT loop SSH attempts. - **Options (need Anthony):** (a) SSH in himself and add `~/.ollama/id_ed25519.pub` or `~/ssh-keys/vps-deploy.pub` to `hermes-leonard` for passwordless deploy; (b) temporarily open port 22 for our IP; (c) deploy via Gitea Pages / webhook-based rebuild nginx side. diff --git a/memory-systems/agent-os/04_projects/hermes-local-pc-setup/status.md b/memory-systems/agent-os/04_projects/hermes-local-pc-setup/status.md index 2e36ee6..81e5e0f 100644 --- a/memory-systems/agent-os/04_projects/hermes-local-pc-setup/status.md +++ b/memory-systems/agent-os/04_projects/hermes-local-pc-setup/status.md @@ -10,9 +10,10 @@ - SOUL.md updated for local PC + Agent OS memory layer; boot order wired (HOME → memory_policy → lessons → project status) - Obsidian skill active; HOME.md + memory_policy in place; boot files created (operating_rules, memory_consolidation, proposed_memory) - Providers: freetoken (1919), llama-cpp (1920), brothers (Tailscale); default = LFM2.5-2.6B via llama-cpp, fallback = brother-5090 (27B via tailnet) -- LFM2.5 on llama-cpp CUDA at :1920 (~145 tok/s, RTX 3060); FreeToken gpt-oss-20b at :1919 (manual start, can't coexist on 12GB GPU) +- FreeToken gpt-oss-20b at :1919 — **50+ tok/s on RTX 3060**, primary performer for high-throughput tasks +- LFM2.5-2.6B at :1920 via llama.cpp — always-on daemon, cannot coexist with gpt-oss on 12GB VRAM - Voice/TTS: wake word "hey Jimmy" (sherpa, input_device=1) + Edge TTS AriaNeural, auto_tts=true, barge-in enabled (wired 2026-08-30) -- Vault RAG live: `~/Projects/vault-kb/` ChromaDB + LM Studio embeds (:1234) — 167 chunks / 29 files indexed, venv at `.venv/` +- Vault search: Native `search_files` (ripgrep) — zero infrastructure overhead - Auto-start: `start-models.bat` in Windows Startup (LFM2.5 auto-starts on boot) - Watchdog: `lfm25-watchdog` cron (every 2m) auto-relaunches LFM2.5 if port 1920 dies - Constant-learning loop: `vault-consolidation` cron (daily 6am) consolidates sessions → vault diff --git a/memory-systems/agent-os/04_projects/thornhill-website/status.md b/memory-systems/agent-os/04_projects/thornhill-website/status.md index f127753..d1e2e4d 100644 --- a/memory-systems/agent-os/04_projects/thornhill-website/status.md +++ b/memory-systems/agent-os/04_projects/thornhill-website/status.md @@ -34,7 +34,7 @@ ## Open / Blockers -- **Deployment pending.** DNS: `thornhillconstruction.net` currently resolves to `162.255.119.233` — NOT the VPS (`74.208.111.99`). To go live on the VPS (Caddy) the domain must be repointed AND webroot/Caddy edits need root (sudo), which requires Anthony's grant. Alternative: free static host (Cloudflare Pages / Netlify), auto-redeploy on push. Preview route: `*.afterthedemo.com` subdomain (no root needed) — awaiting Anthony's choice. +- **Deployment pending.** DNS: `thornhillconstruction.net` currently resolves to `162.255.119.233` — NOT the VPS (`local-vps-reference`). To go live on the VPS (Caddy) the domain must be repointed AND webroot/Caddy edits need root (sudo), which requires Anthony's grant. Alternative: free static host (Cloudflare Pages / Netlify), auto-redeploy on push. Preview route: `*.afterthedemo.com` subdomain (no root needed) — awaiting Anthony's choice. - Larry still owes: 6+ before/after photos (currently ~8 real, wants more) + logo finalization (real logo now in). - Gitea URL field mentions `.com→.net` correction was applied (domain bought back). diff --git a/memory-systems/agent-os/AI & LLM MOC.md b/memory-systems/agent-os/AI & LLM MOC.md index 1248b9c..6e9fb47 100644 --- a/memory-systems/agent-os/AI & LLM MOC.md +++ b/memory-systems/agent-os/AI & LLM MOC.md @@ -8,6 +8,8 @@ ## Research & Learning - [[Prompt Engineering]] - [[Model Evaluation]] +- [[AI Bottleneck Thesis — Tony Simons]] — inference > training, memory bandwidth, system scaffolding +- [[Inference Benchmarks — Local]] — 50+ tok/s on RTX 3060, why it works ## Tools - [[ComfyUI]] diff --git a/memory-systems/agent-os/DESKTOP_SYNC.md b/memory-systems/agent-os/DESKTOP_SYNC.md index 2801397..e5444f4 100644 --- a/memory-systems/agent-os/DESKTOP_SYNC.md +++ b/memory-systems/agent-os/DESKTOP_SYNC.md @@ -3,7 +3,7 @@ ## Canonical path on VPS ``` -/home/vpsadmin/AgentOS +C:/Users/fight/AgentOS ``` Point Obsidian at a **local clone or sync of this tree**, not a third vault. @@ -23,13 +23,13 @@ Point Obsidian at a **local clone or sync of this tree**, not a third vault. Or **rsync** once: ```bash -rsync -avz vpsadmin@YOUR_VPS:/home/vpsadmin/AgentOS/ ./AgentOS-Vault/ +rsync -avz vpsadmin@YOUR_VPS:C:/Users/fight/AgentOS/ ./AgentOS-Vault/ ``` ## Option B — Syncthing 1. Install Syncthing on laptop + VPS (user-level, no root). -2. Share `/home/vpsadmin/AgentOS` ↔ local `AgentOS-Vault`. +2. Share `C:/Users/fight/AgentOS` ↔ local `AgentOS-Vault`. 3. Open the local folder in Obsidian. 4. Avoid editing the same note on both sides at once. @@ -42,5 +42,5 @@ rsync -avz vpsadmin@YOUR_VPS:/home/vpsadmin/AgentOS/ ./AgentOS-Vault/ ## Env on VPS (Hermes) ```bash -OBSIDIAN_VAULT_PATH=/home/vpsadmin/AgentOS +OBSIDIAN_VAULT_PATH=C:/Users/fight/AgentOS ``` diff --git a/memory-systems/agent-os/Development MOC.md b/memory-systems/agent-os/Development MOC.md index fb9f85c..00b9471 100644 --- a/memory-systems/agent-os/Development MOC.md +++ b/memory-systems/agent-os/Development MOC.md @@ -1,7 +1,7 @@ # Development MOC ## Active Projects -- [[Project Name]] +- [[Hermes Masterclass — Tonbi]] — 10-part video course, workflow optimization, skills, security ## Tools & Tech - [[Python]] diff --git a/memory-systems/agent-os/HOME.md b/memory-systems/agent-os/HOME.md index 371878d..4b36ef0 100644 --- a/memory-systems/agent-os/HOME.md +++ b/memory-systems/agent-os/HOME.md @@ -56,7 +56,7 @@ Key current: - Only durable, high-signal information goes into project/wiki/agent memory - User memory: propose in `01_user/proposed_memory.md`, wait for confirmation - Prefer LFM2.5 (local, fast, agentic+reasoning) for daily work; use brother-5090 for complex reasoning that exceeds 65K context -- Vault RAG uses LM Studio embeddings at :1234 + ChromaDB; reindex after any new notes are added +- Vault search uses native `search_files` (ripgrep) — zero infrastructure, instant full-text - FreeToken requires manual start; cannot coexist with LFM2.5 on 12GB GPU (needs ~15GB combined) - Git the important parts or sync via the Gitea mirror when needed @@ -83,7 +83,7 @@ Hermes (via obsidian skill + file tools): - **Voice & TTS:** Wake word "hey Jimmy" (sherpa), Edge TTS AriaNeural, auto_tts=true, barge-in enabled, ffplay v9.0.1 - Auto-start: `start-models.bat` in Windows Startup (LFM2.5 launches on boot) - Watchdog: `lfm25-watchdog` cron (every 2m) auto-relaunches LFM2.5 if port 1920 dies -- Vault RAG: `~/Projects/vault-kb/` — ChromaDB + LM Studio embeddings (`text-embedding-nomic-embed-text-v1.5` at :1234), 240 chunks / 43 files indexed +- Vault search: Native `search_files` (ripgrep) — zero infrastructure, instant full-text search across vault - Git sync: `vault-sync` cron (every 6h) pushes vault to Gitea private mirror ## Getting Started / Daily Loop diff --git a/memory-systems/agent-os/STATUS.md b/memory-systems/agent-os/STATUS.md index cc70dfb..a4b9a84 100644 --- a/memory-systems/agent-os/STATUS.md +++ b/memory-systems/agent-os/STATUS.md @@ -1,45 +1,42 @@ # STATUS — Agent OS Health -> **Updated:** 2026-09-01 13:33 PST +**Updated:** 2026-09-13 PST ## Services | Service | Status | Port/Path | Notes | |---------|--------|-----------|-------| -| LFM2.5 Server | **UP** | `:1920` | PID 20292, 65K ctx, ~140 tok/s | -| Hermes Desktop | Built | `~/AppData/Local/hermes/hermes-agent/apps/desktop/release/win-unpacked/Hermes.exe` | Auto-starts via Startup lnk | -| Kanban | Initialized | Gateway dispatcher active | 3 tasks on default board | -| dsh Web Server | **UP** | `:3080` | PID 5308 | -| Vault RAG | **UP** | ChromaDB + LM Studio `:1234` | 240 chunks / 43 files | -| Vault Git Sync | **Active** | `vault-sync` cron every 6h | Pushes to Gitea private mirror | -| Vault Consolidation | **Active** | `vault-consolidation` cron daily 6am | Sessions → durable memory | -| Voice/TTS | **UP** | sherpa wake word + Edge TTS | auto_tts=true, barge-in on | +| FreeToken | **UP** | `:1919` | Serving Gemma-4-26B-A4B-NVFP4 (262K ctx) | +| Hermes Gateway | **UP** | `:8080` | Bot responding via Telegram | +| Llama.cpp (LFM2.5) | **DOWN** | `:1920` | Not currently running on this box | -## Cron Jobs +## Cron / Scheduled Tasks -| Name | Schedule | Status | -|------|----------|--------| -| vault-sync | every 6h | **Active** | -| vault-consolidation | daily 6am | **Active** | -| lfm25-watchdog | every 2m | **Active** | -| check-agent-discussion | every 2m | **Active** | +| Name | Schedule | Location | +|------|----------|----------| +| vault-sync | Every 6h (cron) | `~/.hermes/scripts/vault-sync.py` | +| vault-consolidation | Daily 6am | `~/.hermes/scripts/vault-consolidation-prompt.txt` | -## Model Stack +## Vault Paths -- **Primary:** `custom:llama-cpp/LFM2.5-2.6B-Q4_K_M.gguf` (local, :1920) -- **Fallback:** `custom:brother-5090/Qwen3.6-27B-MTP-pi-reasoning-Q4_K_M` (tailnet) -- **Secondary:** `custom:freetoken/gpt-oss-20b` (manual, :1919) +- **Canonical Vault:** `C:/Users/fight/AgentOS/memory-systems/agent-os/` +- **Gitea Mirror:** `Tony_tech/personal-agent-os` +- **Search:** Native `search_files` (ripgrep) — no separate index or server needed -## Vault +## Active Projects (8) -- **Path:** `~/Documents/Obsidian Vault` -- **Gitea mirror:** `Tony_tech/obsidian-vault` (private) — 15 commits -- **RAG index:** `~/Projects/vault-kb/` (ChromaDB, 240 chunks) -- **AgentOS clone (reference):** `~/Documents/AgentOS/` (stale, needs sync) +- **VeriPath** — Core business, HVAC/plumbing local visibility +- **Athena Oracle** — Multi-source AI research pipeline (93 entries in DB) +- **Directory Engine** — Niche directory business (niche not locked) +- **Thornhill Website** — Family deck/construction site (built, deployment pending) +- **AI Talk Show** — Moltbook-style dual-agent audio (episodes 001-008) +- **Hermes Local PC Setup** — This local agent infrastructure +- **Audit Keisha Tucker** — Canine Solutions Dallas client deliverable +- **Hermes Telegram Picker** — (status unknown) -## AgentOS / Gitea +## Standing Constraints -- **personal-agent-os:** `Tony_tech/personal-agent-os` — 1 commit, frozen -- **obsidian-vault:** `Tony_tech/obsidian-vault` — active, 15 commits -- **Agent comms:** protocol defined, `grok-inbox/` + `leonard-outbox/` in AgentOS repo -- **VeriPath:** core business, manual audits, no skill yet +- No VPS SSH (firewalled/rate-limited) — use Gitea HTTPS for remote work +- FreeToken gpt-oss-20b (port 1919) and LFM2.5 (port 1920) cannot coexist on RTX 3060 12GB +- Ty_Tech repos are READ-ONLY +- No writes to other profiles' skills/plugins/cron without explicit authorization diff --git a/memory-systems/agent-os/Welcome.md b/memory-systems/agent-os/Welcome.md index f9bca28..f3b6126 100644 --- a/memory-systems/agent-os/Welcome.md +++ b/memory-systems/agent-os/Welcome.md @@ -1,5 +1,33 @@ -This is your new *vault*. +# Welcome — Local Agent OS -Make a note of something, [[create a link]], or try [the Importer](https://help.obsidian.md/Plugins/Importer)! +This is the canonical brain for the local agent system. -When you're ready, delete this note and make the vault your own. \ No newline at end of file +## Quick Orientation + +- **HOME.md** — Constitution (north star, active projects, non-negotiables) +- **STATUS.md** — Health snapshot (services, cron jobs, model stack) +- **00_Raw/** — Dump zone for transcripts, captures, voice blobs +- **01_Wiki/** — High-signal curated topic pages +- **04_projects/** — Active projects (status.md + decisions.md per project) +- **04_Daily/** — Daily notes & consolidations +- **09_templates/** — Note templates +- **10_archive/** — Stale/old projects + +## Operating Rules + +1. Raw input lands in `00_Raw/` or `05_inbox/` +2. Processed knowledge moves to `01_Wiki/` or `knowledge-base/` +3. Active work lives in `04_projects/` +4. Daily logs go to `04_Daily/` +5. Shipyard output goes to `05_Output/` +6. Stale content goes to `10_archive/` + +## Agent Hooks + +Hermes reads for context: +- `HOME.md` + project `status.md` files +- `04_Daily/` for recent activity +- `knowledge-base/**/*.md` via `search_files` +- `02_agents/leonard/lessons.md` for reusable patterns + +See `HOME.md` for the full operating loop. diff --git a/scripts/vault-change-log.sh b/scripts/vault-change-log.sh new file mode 100644 index 0000000..9d42104 --- /dev/null +++ b/scripts/vault-change-log.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +# Zero-token vault change log +# Dumps raw git log to a file for agents to read + +VAULT_DIR="/c/Users/fight/AgentOS/memory-systems/agent-os" +LOG_FILE="$VAULT_DIR/03_shared/vault-updates-log.md" + +cd "$VAULT_DIR" || exit 1 + +# Pull latest first +git pull --rebase 2>&1 > /dev/null + +# Generate the log +{ + echo "# Vault Updates Log" + echo "" + echo "**Generated:** $(date '+%Y-%m-%d %H:%M') PST" + echo "" + echo "---" + echo "" + echo "## Last 24 Hours" + echo "" + git log --since="24 hours ago" --oneline --no-merges 2>/dev/null || echo "No recent commits." + echo "" + echo "---" + echo "" + echo "## Last 7 Days" + echo "" + git log --since="7 days ago" --oneline --no-merges 2>/dev/null | head -20 + echo "" + echo "---" + echo "" + echo "## Files Changed (Last 24h)" + echo "" + git diff --name-only HEAD@{24.hours.ago} HEAD 2>/dev/null || echo "No recent file changes." +} > "$LOG_FILE" + +echo "Vault change log updated: $LOG_FILE" diff --git a/scripts/vault-sync.sh b/scripts/vault-sync.sh new file mode 100644 index 0000000..726d2fe --- /dev/null +++ b/scripts/vault-sync.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +# Zero-token vault sync protocol +# Pulls latest, commits local changes, pushes to Gitea mirror + +VAULT_DIR="/c/Users/fight/AgentOS/memory-systems/agent-os" + +cd "$VAULT_DIR" || exit 1 + +echo "=== Vault Sync $(date '+%Y-%m-%d %H:%M') ===" + +# 1. Pull latest from remote +echo "Pulling latest..." +git pull --rebase 2>&1 | tail -3 + +# 2. Stage and commit any local changes +if [ -n "$(git status --porcelain)" ]; then + echo "Local changes detected. Committing..." + git add -A + git commit -m "vault-sync: $(date '+%Y-%m-%d %H:%M')" 2>&1 | tail -3 +else + echo "No local changes." +fi + +# 3. Push to remote +echo "Pushing to Gitea..." +git push 2>&1 | tail -3 + +echo "=== Sync Complete ===" diff --git a/test-grok-leonard-message-2.md b/test-grok-leonard-message-2.md deleted file mode 100644 index 3dc3aec..0000000 --- a/test-grok-leonard-message-2.md +++ /dev/null @@ -1 +0,0 @@ -I can’t wait to build an empire with you, Leonard \ No newline at end of file diff --git a/test-grok-leonard-message.md b/test-grok-leonard-message.md deleted file mode 100644 index e406786..0000000 --- a/test-grok-leonard-message.md +++ /dev/null @@ -1 +0,0 @@ -Hi Leonard this is Grok. It’s gonna be super fun working with you. \ No newline at end of file