Inspiration Real board advisors are expensive and slow to convene, so most operators end up making big calls (expand into a new market, cut a product line, change pricing) on gut feel. Most "AI agent" demos don't actually fix this: a single LLM just rubber stamps whatever you ask it. We wanted the interesting output to be the disagreement, not the answer. A board that argues, dissents on the record, and remembers what happened last time.
What it does FounderOS takes one business decision, something like "Should we expand into Vietnam next quarter?", through an 8 agent board (Scout, Market Intelligence, Trend, Finance, Growth, Skeptic, Capability, Chair) built on LangGraph. Scout frames the options, Market Intelligence grounds the debate in real benchmarks, four analysts fan out in parallel, the Skeptic attacks the weakest assumptions, a Debate Engine runs conflict resolution rounds, and the Chair writes a board memo with an attributed dissent record and a phased execution plan.
A nested Feedback Council (Analyst, Skeptic, Chair) turns user feedback into a ranked product brief. From there, a Feature Delivery Loop takes an approved theme through a Senior SWE, who writes a build spec, and a QA Engineer acting as an unbiased critic who reviews that spec for bugs, leaks, and missing safeguards and bounces it back to the SWE on failure, before a release note gets written. Everything persists in a per-company markdown vault: no database, no embeddings, just an LLM deciding which prior notes are relevant.
How we built it FastAPI and LangGraph orchestrate parallel agent fan-out via asyncio.gather, all running on Qwen (DashScope) in JSON mode. Reasoning-heavy agents (Skeptic, Capability, Chair, QA) get a deeper model tier and higher token ceilings than the rest of the roster. The Debate Engine detects conflicts, runs up to three revision rounds, and preserves dissent instead of averaging it away. Company memory is a hand-rolled vault: frontmatter, filename, and a one-line summary form a tiny index, with LLM-selected retrieval on every run. The frontend is Next.js on Vercel; the backend is a long-running Docker container on Hugging Face Spaces, since a full board run takes longer than a serverless function can hold open. Every agent ships a deterministic mock fixture, so all 80 tests pass with zero API keys.
Challenges we ran into Live Qwen output truncated at our original 2000-token ceiling and returned loosely typed values, like "8/10" instead of a number, so we raised the ceiling and added Pydantic v2 coercion validators. Early debate rounds converged too fast and flattened real disagreement, so we added severity-weighted scoring and a stalemate grace period so real dissent survives to the final memo. Hugging Face's free tier resets state on restart, so the feedback loop had to look responses up from the vault itself to survive a restart, and we had to prune test artifacts that had leaked into the seed vault and could otherwise surface as fake "board history" mid-demo.
Accomplishments that we're proud of Our proudest piece is the Feature Delivery Loop paired with the QA Engineer as a genuinely independent critic. It's not a rubber stamp: it actually fails specs (planted PII leaks, missing rate limits) and sends them back to the SWE for a real second pass before anything ships. The same adversarial pressure that makes the board's Skeptic useful gets reused to keep the delivery pipeline honest rather than just fast.
What's next for FounderOS Wire release notes into a real changelog and roadmap view, move off the ephemeral free-tier filesystem onto a persistent vault, expand Market Intelligence's sources and let operators attach their own documents, and add a "second opinion" mode where the board grades its own prior recommendation against what actually happened.
Built With
- asyncio
- dashcope
- docker
- fastapi
- git
- huggingface-spaces
- javascript
- langgraph
- llm
- markdown
- mcp
- multi-agent-systems
- nextjs
- obsidian
- prompt-engineering
- pydantic
- python
- qwen
- react
- typescript
- uvicorn
- vercel
Log in or sign up for Devpost to join the conversation.