PA Agent Platform
Multi-agent microservices runtime: 15+ specialized agents sharing Redis + Postgres.

TL;DR
- 15+ specialized agent services, each on its own port.
- Gateway routes intents by agent name; auth lives in a separate service.
- Shared Redis for sessions, shared PostgreSQL for persistence.
- Docker Compose for one-command local up.
- Sub-agent hierarchy (entrepreneur, music-teacher, etc.) under their domain parent.
Architecture
Microservice topology. Gateway routes by agent name. Each agent isolated.
Screens
Gateway · agent registry
Concept dashboard view. Gateway on port 9000 routes intents to 15 specialized agents — each on its own port (8001–8015). Real-time status per agent, two-second refresh.
Agent · /converse endpoint
Each agent service exposes a /converse HTTP surface. Intent parsing happens inside the agent using OpenAI. Tool calls are typed and logged. Sessions persist in Redis.
Domain · sub-agent tree
Some agents own a tree of sub-agents. entrepreneur dispatches to business-mentor, financial-expert, legal, logistics, manager, sales, marketing — based on intent. The tree is part of the agent's prompt, not hardcoded in the gateway.
Problem
A 'personal AI' that's actually 15 different specialists — todo, email, planner, health, software-builder, QA, UX, language-teacher — each with their own intent surface and persistent state. One monolithic LLM call won't do; you need a runtime where agents are isolated, addressable, and observable.
Approach
Each agent is its own Express service on a dedicated port (8001–8015), behind a gateway (9000) and auth service (7000). Shared Redis for session state. Shared PostgreSQL for persistence (Prisma ORM). Docker Compose ties the whole thing together for local dev. Intent parsing happens per-agent using OpenAI. Each service has a thin /converse HTTP surface — the gateway routes by agent name.
Deep dive
Why one process per agent
Same reason real microservices exist: isolation. If the language-teacher agent ships a new prompt and starts looping, it doesn't take down todo. The gateway routes by name, agents don't know about each other, and you can deploy or roll back a single agent without touching the rest. The cost — 15 Node processes, 15 ports, 15 Dockerfiles — is paid once at setup.
Sub-agents under a domain parent
entrepreneur owns business-mentor, financial-expert, legal, logistics, manager, sales, marketing. music-teacher owns guitar, piano, singing. The parent agent handles routing within its domain — 'help me with my pitch' goes to entrepreneur → marketing. That tree is part of the agent's prompt, not hardcoded in the gateway. Reorg by editing one file.
Status today
Each service has a minimal /converse endpoint and a stub public/chat.html. No production UI on top yet — JANE (the personal AI OS) is the next-gen attempt that addresses that gap with a real operator surface and audit log.
Outcome
Prototype platform with 15 active agents and sub-agents (entrepreneur → business-mentor, financial-expert, legal, logistics, manager, sales, marketing; music-teacher → guitar, piano, singing). The microservice topology is the headline — it lets you swap, upgrade, or replace a single agent without touching the rest.
Related


