English | 中文
Build AI Teams, not AI Agents.
One problem. Many minds. One decision.
RoundTable is a Multi-Agent Meeting Engine — structured meetings where multiple AI experts debate and reach consensus, instead of stacking one stronger monolithic agent.
| ❌ Another AI agent | ✅ A Meeting Engine coordinating experts |
| ❌ Agent runtime (LangGraph / AutoGen / CrewAI) | ✅ Domain engine independent of runtime |
| ❌ Workflow engine | ✅ Structured discussion, not a task DAG |
| ❌ Chatbot | ✅ Chat is UI; discussion is architecture |
Pick either path. Just want to explore the UI? Run make seed-demo first — no API key required to browse a sample meeting in the Web app.
Requires: Go 1.25+, Node.js 22+, Make (see apps/server/go.mod)
git clone https://github.com/wiidz/round_table.git
cd round_table
cp deploy/.env.example deploy/.env # optional for demo-only browsing
make seed-demo # import sample meeting (no API key)
make server-dev # terminal 1: API → http://localhost:7777
make web-dev # terminal 2: Web → http://localhost:5173Open the Web app → Meetings → mtg-demo-001 for overview, documents, flow, and replay.
Run a real meeting on Discord (set DEEPSEEK_API_KEY + DISCORD_BOT_TOKEN):
make run-discord # separate terminal; see Makefile for proxy notes in CNStep-by-step guide: docs/getting-started.md.
Requires: Docker 24+, Docker Compose v2 (Linux recommended for production; Mac Docker Desktop host networking differs)
git clone https://github.com/wiidz/round_table.git
cd round_table
cp deploy/.env.example deploy/.env # set DEEPSEEK_API_KEY, DISCORD_BOT_TOKEN
sh deploy/init-data-dirs.sh
make docker-up # build & start Web + API + Discord SupervisorDefault: http://127.0.0.1:7777. Logs: make docker-logs / make docker-logs-discord.
See deploy/README.md.
| Term | Who | Role |
|---|---|---|
| Meeting | The unit of discussion | One Topic from pre-meeting through closure; produces minutes, deliverables, and token usage; state is event-sourced and auditable |
| Principal | Human decision-maker | Starts meetings, sets scope, holds final acceptance; may approve or reject in the confirmation gate |
| Moderator | Facilitator agent | Runs the room — speaking order, round summaries, readiness for consensus/synthesis; expertise lives with Participants, not the Moderator |
| Participant | Domain expert agent | Role-bound specialists (e.g. design, engineering, ops); speak only when invited, no direct peer channels |
| Meeting flow | Engine standard path | Pre-meeting (Round 0) → debate/deliberation rounds (Round 1+) → optional free dialogue → Moderator summary → consensus / synthesis → optional Principal confirmation → closure & artifacts |
Deliberation mode focuses on a design draft; decision mode on actionable consensus. Rejection triggers more rounds and re-submission for confirmation.
Principal sets topic → Moderator schedules → Participants debate → consensus → [confirmation] → minutes / artifacts
↑ │
└──── reject → more rounds ┘
Details: docs/domain/ · Constitution: CONSTITUTION.md
| Capability | Status |
|---|---|
| LLM | ✅ DeepSeek (DEEPSEEK_API_KEY) |
| Transport | ✅ Discord (bot meetings, confirmation gate, free dialogue) |
| Workbench | ✅ Web UI (meetings, documents, flow, round-table replay) |
| Planned | 🔜 More model providers and transports (Slack, enterprise IM, …) — Engine core is adapter-decoupled; see Architecture independence below |
CLI local runs: apps/server/cmd/meet (developer tooling, not the primary end-user path).
🚧 Phase 1 — Engine runs end-to-end locally.
🚧 Phase 1.5 — Discord transport runs full meetings (Principal bind → brief wizard → presets → confirmation → deliverables).
Engine: event sourcing, pre-meeting, multi-round debate/deliberation, free dialogue, Moderator summaries, consensus/synthesis, confirmation (rejections & cycle limits), workspace projection, token accounting.
Discord: natural language / !rt launch, three-step brief wizard, confirmation gate, runtime interventions, executive recap, multi-bot, Chinese i18n, etc. See docs/adapters/discord-transport.md.
apps/server/cmd/discord/ # Discord transport
apps/server/cmd/roundtable/ # HTTP API
apps/server/internal/engine/ # Meeting Engine
apps/web/ # React workbench
Roadmap: docs/roadmap.md
| Doc | Description |
|---|---|
| getting-started.md | Hands-on setup (demo data, Discord, dev details) |
| CONTRIBUTING.md | How to contribute |
| SECURITY.md | Security reporting |
| CONSTITUTION.md | Architecture constitution |
| domain/ | Domain model |
| deploy/README.md | Docker deployment |
| apps/web/README.md | Web UI |
| architecture/ | ADR index |
Common commands (full list in root Makefile):
| Command | Purpose |
|---|---|
make seed-demo |
Import demo meeting & profiles |
make server-dev |
API with hot reload |
make web-dev |
Frontend dev server |
make run-discord |
Local Discord bot |
make docker-up |
Docker Compose up |
make sync-data-pull |
Pull data/ from deploy host (deploy/sync-data.sh) |
Tests & CI:
make test # Go unit/integration tests
cd apps/web && npm test # Frontend Vitest
cd apps/web && npm run build # Frontend production buildCI: .github/workflows/ci.yml. Before contributing, read CONTRIBUTING.md and COMMITS.md.
- Everything is a Meeting — not a workflow, prompt, or agent
- Moderator controls the discussion — Participants cannot interrupt
- Participants own expertise — stay within role boundaries
- Consensus over Completion — team alignment, not solo execution
- Discussion is structured — Round / Agenda / Minutes / Consensus / Confirmation
- Principal owns the decision — final authority stays with the Principal
See PRINCIPLES.md.
The Meeting Engine core domain does not depend on a specific runtime, model, or transport — all plug in via adapters. See CONSTITUTION.md.