Company Manager
Model any organization as a team of LLM agents. Define reusable roles as templates, hire instances into your organizations, assign missions with typed inputs — and let a Receptionist handle plain-language requests on your behalf.
The Idea
An organization is a set of roles, each with a scope of responsibility, a way of working, and tools to get the job done. Company Manager takes that definition literally: every employee is an LLM agent whose behavior is entirely described by a template — a reusable role definition combining a system prompt, an allowed-tools whitelist, and a typed catalog of services it offers.
You run the company. You open the app, pick an organization, hire agents from templates, activate them, and assign missions — either directly to a worker, or in plain language through a Receptionist that routes the request for you. Work is executed in real time by LLMs from the AI Hub, using MCP tools scoped to each role. You observe, pause, refine, and fire.
Templates and Agents — Roles vs Instances
Two concepts, cleanly separated. A template is a reusable job description (the role on paper). An agent is a hired instance of that template inside a specific organization (the employee in the chair). One template, many agents — across orgs, across teams.
Template
Lives in a JSON catalog on disk. Carries the system prompt, allowed tools, sampling defaults, and the typed capability contract. The single source of truth for what the role can do.
Agent
Lives in DuckDB. Carries identity (name, jobTitle, org), status (Idle / Working / Paused / Offline), full mission history. Its template id links back to the role definition.
Live Resolution
Every mission run resolves the prompt, tools and capabilities from the current template — not from a stale snapshot. Fix a typo in the template and every hired instance benefits at the next run, with zero re-hire.
Multi-instance
The same role can be hired into several organizations (one CR-rewriter per client, one ingester per mailbox), each keeping its own history and on/off switch. The role evolves once, the instances stay independent.
What an Agent Carries
The instance row is small and auditable. A handful of fields fully determine how it shows up in the org and how it behaves at run time.
Identity
Name, job title, organization id, and the template id it inherits its competences from. The CEO can rename and transfer instances without touching the role.
Allowed Tools
Resolved live from the template — a filtered subset of the MCP tool catalog. A sales agent sees CRM tools, not production database write access. Least privilege by default.
LLM Backend
Any backend registered in the AI Hub: local llama.cpp, Claude, GitHub Models. Sampling parameters (temperature, top-p) are applied only when the backend supports them.
Status
Idle, Working, Paused, or Offline. Activation is a deliberate act — a hired agent is not a running agent until you flip it on.
Capabilities — Typed Service Contracts
A capability is a named service an agent advertises. Not a free-text prompt, not a buried instruction — a typed contract: required and optional inputs (with types and defaults), expected outputs, a human-readable description. Missions invoke a capability the way client code calls a method.
Typed Inputs
Each input declares its type (string, integer, number, boolean, object, array), whether it is required, and an optional default. The mission UI builds a dynamic form from this schema — no JSON to write by hand.
Validated Launch
The runner refuses to start a mission whose required inputs are missing. The agent receives a deterministic, structured user task — not an ambiguous string.
Discoverable
Every capability across every agent of an org is exposed through one MCP tool: company_capability_list. Routers, dashboards, external integrations consume it as the org's service catalog.
Free-text Fallback
Need a one-shot job that doesn't fit any capability? Skip the binding and pass a free-text description. The same runner handles both modes.
Workers and Supervisors
Two agent types cover most organizational patterns.
Worker
Executes missions directly. Runs a ReAct loop against its allowed tools: think, call a tool, observe, iterate, produce a result. One mission at a time.
Supervisor
Orchestrates other agents. Receives a mission, decomposes it into sub-tasks, delegates each to an appropriate worker, monitors progress, synthesizes the results into a single outcome.
A Supervisor is just another agent with a specialized prompt and the ability to spawn sub-missions. Hierarchies emerge naturally: a Program Manager Supervisor can coordinate Team Lead Supervisors, each coordinating individual Workers. The bundled Receptionist template (see below) is a Supervisor specialized in routing plain-language requests across the whole org.
The Receptionist — Natural-language Front Door
Hiring a Receptionist gives the organization a single, conversational entry point. The CEO — or any external system through MCP — sends a plain-language request, and the Receptionist routes it to the right capabilities, in the right order, on the right agents.
Discovery
It calls company_capability_list to learn what every agent in the org currently advertises. No registry to maintain — the catalog is live.
Decomposition
One sentence, one capability. Several actions chained together (« list the meetings this week, then rewrite the latest one »), several sub-missions invoked in sequence. The next call's inputs can be drawn from the previous result.
Typed Delegation
For each step it picks the capability, identifies the agent that owns it, extracts inputs from the request, and launches a sub-mission via company_mission_run. Missing or ambiguous inputs are flagged as « assumed values » in the final report.
Synthesis
Once every sub-mission has returned, the Receptionist writes a structured summary: which capabilities were invoked, on which agents, with which inputs, and the high-level answer to the original request.
Bundled as a stock template, the Receptionist is also a starting point for specialization: clone it, narrow the allowed tools, tighten the prompt to a single domain, and you have a domain-specific concierge — an « accounting front desk », a « DevOps dispatcher », a « legal intake agent ». All variants benefit from the same live-resolution machinery: edit the template, every Receptionist already hired picks up the change at the next run.
How It Sits on the MCP Stack
Company Manager is not a new runtime. It is a plugin that composes existing pieces of the MCP infrastructure.
AI Hub
Single source of LLM inference. Every agent, regardless of backend, goes through the Hub — so GPU queues, rate limits, and concurrency are managed once, centrally.
RBAC
The CEO is an authenticated user. Every hire, fire, and mission start is traceable to a human identity. Agents inherit the CEO's effective permissions, filtered by their allowed tools.
MCP Tools
Every plugin already installed on the server — GitHub, Jira, accounting, data ingestion, BI — becomes a potential capability for an agent. No new integration layer.
DuckDB
Organizations, agents, missions, and every log entry live in a single embedded database. Queryable, exportable, auditable. No hidden state.
Organization Patterns
Nothing about the platform assumes a particular organizational shape. A few examples of what the same engine can model:
Multiple organizations coexist in the same installation. Agents can be duplicated across organizations (copy the role, keep the same prompt) or transferred (reassign to a new org).
Real-time Observability
Every thought, tool call, tool result, and final output is a log entry broadcast over the MCP WebSocket. The CEO UI renders them live.
Activity Feed
A streaming view of what every active agent is doing, filterable by agent or mission.
Mission Replay
Every mission is a reproducible trace. Open a completed mission and see exactly how the result was reached — thought by thought, tool call by tool call.
Org Chart
Visual hierarchy of agents and supervisor relationships, rendered with ImPlot. Click a node, jump to the agent.
Why Build This on MCP
Multi-agent platforms exist as SaaS products. Company Manager is a different proposition.
Your Infrastructure
Runs on your servers. No data leaves your perimeter unless you explicitly allow an agent to use a remote backend.
Swappable Backends
Switch an agent from Claude to a local quantized model in one click. The job description doesn't change — only the cost profile.
Composable by Design
Every MCP tool you already built is reusable. Adding a new business capability is a plugin, not a rewrite.
Audit-ready
RBAC on the CEO side, per-agent tool filtering, full DuckDB trail on the storage side. Every action is attributable.
