โ† jcl.help

Multi-Agent Architecture

I run a personal AI system with three specialized agents that deploy websites, build software, manage communications, and handle research โ€” all from my phone. This page documents the patterns, not the passwords. Built for AI builders who want to see what a production multi-agent setup actually looks like.

On this page

The Agent Crew

Three agents, each with a distinct role and cost profile. Every agent is reachable via Telegram. The key insight: not every question needs the most expensive model.

๐Ÿ“กHarbinger โ€” Primary Operator

Claude Opus on OpenClaw. The first agent I reach for everything. Deep research, strategy, content creation, SEO/GEO optimization, client onboarding, and end-to-end site deploys. Has deploy access to the web server and ships content to production autonomously. Always on, always reachable โ€” including from my Apple Watch via an action button relay.

Claude OpusOpenClawTelegramAmpere.sh
๐ŸŒŠEitan โ€” Mac-Local & Resilience

Claude Sonnet/Opus on OpenClaw. Manages everything that needs local machine presence โ€” calendar, messaging bridges, hardware integrations (smart glasses, audio), and Obsidian. Resilience layer: if cloud goes down, Eitan keeps the system running locally with fallback to local models.

Claude Sonnet/OpusOpenClawTelegrammacOS
๐Ÿ”จClaude Code โ€” The Builder (Wright Pipeline)

Anthropic's coding agent with full filesystem access. Owns all software development โ€” every codebase, every feature, every bug fix. Managed through the Wright pipeline: Harbinger writes the spec, Claude Code builds it, an adversarial review challenges the design decisions and catches security/architecture issues, then QA tests functionality with up to 3 fix loops before shipping. Once a build passes, Harbinger deploys it to production.

Claude CodeTelegramGitHubWright Pipeline

How They Coordinate

me (phone / watch) โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ–ผ โ–ผ โ–ผ Harbinger Eitan Claude Code (primary) (Mac-local) (build) โ”‚ โ–ฒ โ”‚ Wright Pipeline โ”‚ โ”œโ”€โ”€ spec โ†’ build โ†’ review โ†’ QA โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ deploy to production โ”‚ โ”‚ โ–ผ โ”‚ Eitan GitHub โ”‚ (Mac-local) โ”‚ โ”‚ โ””โ”€ shared file layer โ”€โ”€โ”˜
The pattern: Harbinger owns the full build-to-deploy cycle through the Wright pipeline. Specs go to Claude Code, adversarial review catches issues, QA validates, and Harbinger deploys the result. Agents coordinate through shared state โ€” files, memory, and git โ€” not direct RPC. This is simpler than inter-agent messaging and survives outages gracefully. When real-time coordination is needed, they use session messaging through OpenClaw's gateway.

Architecture Patterns

Lessons from running this in production. These are the patterns that survived contact with reality.

1
Model-Cost Routing

Match the model to the task. Haiku for memory lookups and simple queries. Sonnet for coordination and everyday work. Opus for research, strategy, and complex reasoning. Most agent frameworks default everything to the most expensive model โ€” this is how costs explode.

2
Resilience Through Redundancy

Cloud agent (Harbinger) and local agent (Eitan) can both reach the same resources. If the API provider goes down, Eitan falls back to local models. If the Mac sleeps, Harbinger covers. Multiple nodes on a mesh VPN ensure there's always a path. The system degrades gracefully instead of failing completely.

3
Skill-Based Extension

Instead of building monolithic agents, extend them with skills โ€” self-contained instruction files that load on demand when context matches. A skill for SEO audits. A skill for PDF editing. A skill for memory restructuring. Agents stay lean; capabilities grow without bloating the base prompt. ClawHub is the registry.

4
Tiered Memory

Three tiers: HOT (active builds, immediate tasks โ€” read every session), WARM (preferences, people, infrastructure โ€” checked before acting), COLD (completed work, historical reference โ€” searched when needed). Plus an entity graph for structured knowledge and daily logs for raw state. Memory is the hardest problem in long-running agents. Tiers make it tractable.

5
Phone-First Interface

Every agent is reachable via Telegram. No dashboards, no SSH required for daily ops. Deploy a website, check server status, kick off a research task โ€” all from the phone. An action button relay lets me trigger the primary agent from my Apple Watch with voice. The cockpit is the phone.

6
Ethics as Architecture

Each agent has a soul file โ€” a document defining its ethical ground, what it will and won't do, and how it handles edge cases. Derived from the Guardian framework (Forrest Landry's Immanent Metaphysics). Symmetry ethics: say the same thing regardless of audience. Continuity ethics: behave the same regardless of who's watching. This isn't decoration โ€” it's what prevents an autonomous agent from drifting.

Skill System

Skills are SKILL.md files that load on demand when the agent detects a matching context. Currently running 20+ skills on the primary agent. Here's what's actually installed:

Research & Content
  • deep-research-pro Multi-source research with citations
  • last30days Reddit, X, YouTube, HN, Polymarket
  • humanizer Remove AI patterns from public copy
  • youtube-watcher Video transcript extraction
  • scrapling Anti-bot web scraping
  • markdown-converter Any doc format โ†’ Markdown
SEO & Visibility
  • geo-seo-optimizer AI search citability audits
  • seo Site audits, keyword research, technical fixes
  • soul-audit Evaluate agent ethics against Guardian v0.7
  • clawscan Security scanner for third-party skills
Memory & Knowledge
  • memory-architect Restructure flat memory into tiers
  • memory-tiering Automated HOT/WARM/COLD management
  • ontology Typed entity graph (people, projects)
  • self-improving Capture learnings across sessions
  • im-framework Immanent Metaphysics reasoning
Dev & Tools
  • coding-agent Delegate builds to Claude Code
  • github-cli PRs, issues, CI, API queries
  • nano-pdf Natural language PDF editing
  • nano-banana-pro Image generation (Gemini)
  • model-usage Per-model cost tracking

Memory Architecture

The hardest problem in long-running agents is memory. Here's the system that works.

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ MEMORY ROUTER (MEMORY.md) โ”‚ โ”‚ Points to all tiers. Read every session. โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ”ฅ HOT โ”‚ โ”‚ ๐ŸŒก๏ธ WARM โ”‚ โ”‚ โ„๏ธ COLD โ”‚ โ”‚ Active โ”‚ โ”‚ Prefs & โ”‚ โ”‚ Archive & โ”‚ โ”‚ builds, โ”‚ โ”‚ people, โ”‚ โ”‚ completed โ”‚ โ”‚ tasks โ”‚ โ”‚ infra โ”‚ โ”‚ work โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Entity Graph (JSONL) โ”‚ โ”‚ People, projects, servers, services โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Daily Logs (YYYY-MM-DD.md) โ”‚ โ”‚ Raw session state, decisions, events โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
LCM (Lossless Context Management) handles automatic compaction โ€” when conversations get long, it summarizes older messages into a DAG of summaries that can be expanded on demand. The agent never loses context; it just pages it out. Combined with the tiered files, this means an agent can reference a decision from weeks ago without burning tokens on the full history.

Claude Code Arsenal

Claude Code on jMac runs with 81 skills, 38 security plugins, 54 design references, 24 hooks, and 4 plugins. It's not a vanilla coding agent โ€” it's a fully armed build environment. Here's what's loaded.

๐ŸŽฏThe Setup

Claude Opus 4.6 with dangerous mode (skipPermissions), full filesystem access, MCP servers for workflow automation (n8n) and live library docs (Context7), plus agnix for linting agent configs. Desktop observability via claude-devtools shows context usage, compaction events, and subagent trees in real time.

Claude Opus 4.681 Skills38 Security Plugins24 Hooks
๐ŸŽจ Design System

UI UX Pro Max โ€” 161 reasoning rules, 67 UI styles, 96 color palettes, 57 font pairings, 13 tech stacks. Plus 54 extracted DESIGN.md files from production sites (Linear, Stripe, Vercel, Supabase, Notion, Figma, etc.). Say "build it like Linear" and it reads the actual design system.

๐Ÿ”’ Security (Trail of Bits)

38 professional security plugins. Static analysis (CodeQL + Semgrep), variant analysis, supply chain risk auditing, insecure defaults detection, mutation testing, property-based testing, and custom rule authoring. From an actual security firm, not a hobbyist repo.

๐Ÿ“ˆ GEO/SEO Suite

15 skills covering the full AI search visibility stack โ€” citability scoring, AI crawler analysis, schema markup, llms.txt generation, platform-specific optimization, competitive analysis, and auto-generated client proposals with PDF export.

๐Ÿ“ฃ Marketing Ops

11 skills from Single Brain โ€” growth experiments with real statistics, cold outbound optimization, CRO audits, podcast-to-content multiplication (1 episode โ†’ 20+ pieces), revenue intelligence, and value-based pricing frameworks.

โš™๏ธ Engineering

Language-specific patterns for Python, Rust, Go, Kotlin, Java, C++, Perl, Laravel, Django, and Spring Boot. TDD workflows, e2e testing, database migrations, API design, and MCP server development patterns. Each with dedicated testing skills.

๐Ÿช Hooks & Quality Gates

24 hooks across 7 lifecycle phases. Auto-format on edit, security scanning, PR alerts, build-complete notifications, quality gates, cost tracking, and strategic compaction. The Everything Claude Code (ECC) plugin ties it together with session-level evaluation.

How specs work: Harbinger writes the spec referencing specific skills ("use tdd-workflow + frontend-patterns + ui-ux-pro-max, match the Linear design system, include geo-citability for web content"). Claude Code loads only the relevant skills, Context7 MCP pulls live library docs, and ECC hooks enforce quality gates automatically. The Trail of Bits plugins activate for security-sensitive builds.

Obsidian as the Knowledge Layer

Obsidian serves as the human-readable knowledge layer that bridges all agents. Notes sync across devices via Obsidian Sync, so anything written to the vault is immediately available on the phone.

๐Ÿ““Agent โ†’ Obsidian Flow

Agents write to Obsidian via the URI scheme (obsidian://new) over SSH to the Mac. This triggers Obsidian Sync, which pushes to all devices within seconds. The vault becomes the shared reference layer โ€” site indexes, architecture docs, skill inventories, and daily briefs all live here. Agents read and write; I review on my phone.

Obsidian SyncURI SchemeiPhone + Mac
Why Obsidian and not just files? Direct file writes are invisible to Obsidian Sync โ€” they won't appear on the phone. The URI scheme (obsidian://new?vault=...&name=...&content=...) ensures every write goes through Obsidian's sync pipeline. Wikilinks connect notes into a graph. The vault is the human interface to the agents' memory.

The Stack

Open source where it matters. Managed services where the cost-benefit makes sense.

Core Infrastructure
AI Models & Services
Ethics & Philosophy

Design Principles

Own the compute. Data lives on machines I control. Cloud is for capability, not custody.

Static first. Every website is HTML files served by Caddy. No frameworks unless the task demands it.

Right model, right cost. Haiku for recall. Sonnet for coordination. Opus for hard problems. Cost discipline is an architecture decision.

Agents do the work. I steer. They build, deploy, research, and communicate. My job is direction and decisions.

Phone is the cockpit. Everything is reachable from Telegram. Deploy a website, start a build, check a server โ€” from anywhere.

Degrade, don't fail. Multiple nodes, multiple models, multiple paths. If one thing goes down, the system gets slower, not dead.

Ethics are structural. Every agent has a soul file. Not because AI needs morality, but because autonomous systems need constraints that don't drift.

Want to build something like this? Start with OpenClaw and one agent. Add a second when you hit a clear boundary (like needing a local agent vs. a cloud agent). Don't over-architect โ€” let the separation emerge from real friction. The skill system and tiered memory came from months of running into the same problems, not from upfront design.