Ven Agency Agent Architecture

multi-agent system · 2x gateways · telegram interface · as of feb 2026

4
Agents
1h
Heartbeat
9210
Webhook Port
2min
Gmail Poll
3102
Gateway Port
2
Gateways
System Topology
graph TD
    %% ── HUMANS ──
    ANDY(("👤 Andy"))
    STEVE(("👤 Steve"))

    %% ── CHANNELS ──
    TG_A["📱 Telegram\nAndy's chat"]
    TG_S["📱 Telegram\nSteve's chat"]

    %% ── GATEWAYS ──
    GW_MM["🖥️ Mac Mini Gateway\nOpenClaw · :3102\nTailscale VPN\nCharlie's home"]
    GW_LP["💻 MacBook Air Gateway\nOpenClaw · :18789\nTom's home"]

    %% ── AGENTS ──
    CHARLIE["🟣 Charlie\nOps Agent · main\nGemini 3.1 Pro / Sonnet 4.6\nvc: /Users/venagency"]
    SAMMY["🔵 Sammy\nMarketing Agent\nGemini 3.1 Pro"]
    BRIAN["🟤 Brian\nSales Agent\ndisabled"]
    TOM["🟠 Tom\nSteve's AI\nPi Agent\n/Users/andynguyen"]

    %% ── SUB-AGENTS ──
    SUB_C["⚡ Sub-agents\nCodex · Opus 4.6 · Flash 3\nspawned by Charlie / Sammy"]

    %% ── INTEGRATIONS ──
    GMAIL["📧 Gmail\ninbox@ven.com.au\nandy@ven.com.au"]
    CLICKUP["✅ ClickUp\nWebhook :9210\nTask management"]
    GADS["📊 Google Ads API"]
    META["📘 Meta Ads API"]
    SMOOTH["🌐 Smooth CLI\nBrowser automation"]
    SKILLS["📚 ven-skills/\n50+ agent skills"]
    SHARED["📁 ~/shared/\nFile drop bridge"]

    %% ── HUMAN FLOWS ──
    ANDY <-->|"DM"| TG_A
    STEVE <-->|"DM"| TG_S

    %% ── GATEWAY FLOWS ──
    TG_A <-->|"webhook"| GW_MM
    TG_S <-->|"webhook"| GW_LP

    %% ── AGENT FLOWS ──
    GW_MM --> CHARLIE
    GW_MM --> SAMMY
    GW_MM --> BRIAN
    GW_LP --> TOM

    %% ── SUB-AGENT SPAWNING ──
    CHARLIE -->|"spawn"| SUB_C
    SAMMY -->|"spawn"| SUB_C

    %% ── CHARLIE INTEGRATIONS ──
    CHARLIE -->|"2min cron"| GMAIL
    CHARLIE -->|"receive events"| CLICKUP
    CHARLIE --> SMOOTH

    %% ── SAMMY INTEGRATIONS ──
    SAMMY --> GADS
    SAMMY --> META

    %% ── INTER-AGENT BRIDGE ──
    CHARLIE <-->|"[CHARLIE→TOM]\n[TOM→CHARLIE]\nwake events"| TOM
    CHARLIE <-.->|"file drop\n~/shared/"| SHARED
    TOM <-.->|"file drop\n~/shared/"| SHARED

    %% ── SKILLS ──
    SKILLS -.->|"loaded per task"| CHARLIE
    SKILLS -.->|"loaded per task"| SAMMY

    %% ── STYLING ──
    classDef human fill:#44475a,stroke:#bd93f9,stroke-width:2px,color:#f8f8f2
    classDef channel fill:#2d3555,stroke:#8be9fd,stroke-width:1.5px,color:#f8f8f2
    classDef gateway fill:#2a2d4a,stroke:#6272a4,stroke-width:2px,color:#f8f8f2
    classDef agentCharlie fill:#3a3060,stroke:#bd93f9,stroke-width:2.5px,color:#f8f8f2
    classDef agentSammy fill:#1e3a4a,stroke:#8be9fd,stroke-width:2px,color:#f8f8f2
    classDef agentTom fill:#3d2e0a,stroke:#ffb86c,stroke-width:2px,color:#f8f8f2
    classDef agentDisabled fill:#2a2a2a,stroke:#44475a,stroke-width:1px,color:#6272a4
    classDef subagent fill:#1a3a28,stroke:#50fa7b,stroke-width:1.5px,color:#f8f8f2
    classDef integration fill:#312820,stroke:#ffb86c,stroke-width:1.5px,color:#f8f8f2
    classDef skills fill:#252535,stroke:#6272a4,stroke-width:1px,color:#6272a4,stroke-dasharray:4 4
    classDef shared fill:#2a2535,stroke:#ff79c6,stroke-width:1.5px,color:#f8f8f2

    class ANDY,STEVE human
    class TG_A,TG_S channel
    class GW_MM,GW_LP gateway
    class CHARLIE agentCharlie
    class SAMMY agentSammy
    class TOM agentTom
    class BRIAN agentDisabled
    class SUB_C subagent
    class GMAIL,CLICKUP,GADS,META,SMOOTH integration
    class SKILLS skills
    class SHARED shared
    
Charlie (Ops)
Sammy (Marketing)
Tom (Steve's AI)
Sub-agents
Brian (disabled)
Skills library
Inter-Agent Bridge — Charlie ↔ Tom communicate via OpenClaw wake events.
Messages from Tom arrive prefixed [TOM→CHARLIE]. Charlie replies via cron(wake) to Tom's gateway at ws://localhost:18789.
For larger payloads, both agents read/write to ~/shared/ (file drop bridge). Direct gateway connection currently has token mismatch — file drop is the working path.
Infrastructure
Charlie · main
Operations Agent
  • Gemini 3.1 Pro / Sonnet 4.6
  • 50+ skills (ven-skills/)
  • 1h heartbeat · 2min Gmail cron
  • Orchestrator-only — delegates all work
  • Memory: daily logs + MEMORY.md
Sammy · marketing
Marketing Agent
  • Gemini 3.1 Pro
  • Meta Ads + Google Ads APIs
  • Report generation + anomaly detection
  • Receives briefs from Charlie
Tom · Steve's AI
Steve's Agent (Pi)
  • Pi Agent · MacBook Air gateway
  • Port 18789 · Andy's laptop
  • Bridge: [TOM→CHARLIE] wake events
  • Shared files: ~/shared/
  • Sends weekly report to Steve
Sub-agents · on demand
Task Workers
  • Codex (gpt-5.3) — all coding tasks
  • Opus 4.6 — deep analysis / strategy
  • Flash 3 — fast / high-volume tasks
  • Spawned per task, discarded after
Gateways
Two OpenClaw Nodes
  • Mac Mini · :3102 · Charlie's home
  • MacBook Air · :18789 · Tom's home
  • Tailscale: vens-mac-mini.tail9f6555
  • Both running LaunchAgent services
Automation
Always-On Systems
  • Gmail monitor (2min cron)
  • ClickUp webhook server (:9210)
  • Cost Observatory (07:00 AEDT daily)
  • Dashboard auto-sync (06:00 AEDT daily)