Skip to content
PDF ↓
← Selected work

PF-06 · AI · FastAPI

AetherCrew: a virtual company of 11 AI employees

A hand-built orchestrator that assigns work, picks models, and tracks cost for 11 AI employees in a virtual company. Agent work is simulated and no language model API is called.

11
AI employees
3
Divisions
8
Dashboard pages
Role
Design and implementation
Period
Personal project · released Nov 2026
Scale
11 AI employees · 3 divisions · 8 dashboard pages
Tech
Python · FastAPI · WebSocket · pytest · Slack · Jira · GitHub
CEOUser directiveManagementTechnologySalesEmmaChief of staffMiaFinanceAvaHRSophiaTech leadNoahSenior engineerLunaEngineerEthanDB engineerLiamQA engineerChloeSecurity engineerJamesPlanning and salesleadOliviaContent marketer(off by default)Model priority · estimated cost recordedSimulated: assignment, model selection, and cost tracking onlyNo language model API is called
In the public code, agent work is simulated and no language model API is called.
Problem

When AI employees split work by role, code must control which model each one uses, how much has been spent, and what can be written to outside systems.

Approach

The chief of staff takes a CEO directive, writes a plan, and splits it into tasks by role. Each employee has a priority list of Anthropic, OpenAI, Google, and DeepSeek models and moves to the next on failure. Estimated costs add up, with warnings at 80% and 95% and work stopped at 100%. External writes are off by default, and file access stays inside the project root.

Result

Eight FastAPI dashboard pages show the org chart, cost, logs, and a pixel-art CCTV office. It runs with no API keys and calls no language model, so it produces no real work output. The Slack, Jira, and GitHub clients are real code and run only when INTEGRATIONS_LIVE_WRITE is on.

What I learned

When I let agents hand work to each other, a wrong result from one agent was trusted as-is by the next, with no check in between. That is when I felt that trust boundaries and permission scope must live in code, not in a polite request inside a prompt. So in this project, every point where risk can arise, such as model choice, budget stops, external writes, and file access, is a rule in code. External writes are blocked by default and allowed only when a setting is turned on, and the budget warns at 80% and 95% and stops at 100%. The more work AI takes on, the more the human decision shifts from what to ask for to how far to allow it.

Related field notes

Read the full record in Control Plane ↗

© 2026 Kim JunHyun · The infrastructure of this site is managed as code, too

Choose a theme

Click a badge to switch to that theme on the same content. Dragging only swings it.

Back to the front page →