Borge Labs has run a private AI Team configuration in its own Slack workspace as a daily working research system. The goal was not to replace accountable humans; it was to bring product, technical, content, business and legal-style lenses into the conversation without opening a separate assistant interface.
This is a qualitative dogfooding record, not a controlled benchmark. No private Slack transcript, customer data, token totals or productivity percentage is published here.
- Slack event handling, thread replies and teammate-specific display identities
- a chair/router selecting one or several named roles
- thread and recent-channel context, live docs and curated decisions in Postgres
- channel/workstream boundaries and repository context scopes
- provider routing, model cost logging and graceful provider failure paths
- public-page and screenshot review when explicitly enabled
- daily kickoffs, open-loop follow-up and notify-only automations
- human-gated Markdown updates and handoff to a separate coding-agent service
The public test suite and configuration contract are the reproducible evidence for those mechanisms. Daily use adds operational confidence, but it does not prove that every environment, provider combination or Slack workspace will work without adaptation.
Named roles made requests easier to frame than a single generic assistant: a question could be routed to the person-shaped lens that owned it, while a chair kept multi-role discussion from becoming an unstructured pile of answers. Keeping the interaction in Slack also made context and human correction visible to the group.
Durable context was most useful when it captured stable direction and decisions, not when it attempted to remember every sentence. Channel and repository scopes were necessary because convenience without boundaries quickly becomes context leakage.
Human approval remained the right boundary for consequential actions. The system was strongest at discussion, synthesis, critique, drafting and surfacing open work, not at autonomously publishing, deploying or making commitments.
- More providers and connectors increased setup, failure modes and privacy review faster than they increased first-run value.
- Memory required curation and deletion discipline; storage alone did not create trustworthy organizational memory.
- Multi-agent rounds cost more and took longer, so narrow questions benefited from one specialist rather than the whole roster.
- Browser capture was operationally useful but materially expanded the threat
model, especially because Chromium runs with
--no-sandbox. The public runtime image therefore omits it; a separate local browser target is opt-in. - Daily internal use did not create a supportable hosted product or validate multi-tenant isolation.
The public starter therefore uses three teammates and one provider, disables optional web/browser/automation/expert-consult/automatic-memory paths, includes Postgres+pgvector, and migrates a new database automatically. The full example remains available as a reference, while support, privacy and retention obligations are stated up front.
The release posture is deliberately research: useful source and honest
operational evidence, without an SLA or claim that the project is ready for
unattended production use.