@kontsedal/babusya
v0.9.2
Published
Chat-driven service monitoring agent
Maintainers
Readme
Baba
A Slack-based monitoring teammate for your service. You talk to it, it watches your stuff, it pages you when things go sideways, and it remembers what it learns so every conversation makes it sharper.
"Mongo is the ledger. The graph is the understanding. Chat is the interface."
What it is
Baba is a chat-driven service monitoring agent. Instead of YAML dashboards and alert rules, you describe your service to it in Slack — what endpoints matter, what "healthy" looks like, what you've learned about tricky corners. It monitors on a schedule, posts alerts when something looks wrong, and engages you in conversation to get sharper over time.
Unlike a typical bot, Baba has memory. It builds a living graph of what it knows about your service — endpoints, recurring incident patterns, remembered facts about you, domain entities — and stale beliefs age out on their own.
The three pillars
- Ledger — append-only operational truth in Mongo: runs, incidents, tool traces, metrics, alerts outbox, LLM cost timeseries.
- Graph — what Baba thinks. Typed nodes + edges (also in Mongo). Every claim cites the run that produced it.
- Chat — every teaching, correcting, or approving interaction happens in Slack. There's no admin web UI. Chat is the authoring surface, full stop.
Architecture in one diagram
flowchart LR
User["Operator (Slack)"]
Slack[Slack]
Bot["Bot process<br/>(chat + alerts)"]
Worker["Worker process<br/>(ticks + nightly)"]
Mongo[(MongoDB<br/>ledger + graph)]
LLM["LLM<br/>(Claude / OpenAI-compat)"]
Service["Monitored service<br/>(HTTP + MCP + Mongo)"]
User <-->|mentions, reactions, /baba| Slack
Slack <-->|Bolt events| Bot
Bot <-->|read/write| Mongo
Worker -->|read/write| Mongo
Worker -->|probe| Service
Bot <-->|chat, synthesis| LLM
Worker <-->|tick, digest, review| LLMTwo processes (worker + bot) sharing one Mongo database. They don't talk to each other directly — state flows through alerts_outbox, scheduled_tasks, and conversations.
Quickstart
pnpm install
cp babusya.config.example.ts babusya.config.ts # edit: service, slack channels, sources, auth
pnpm init # create Mongo collections + indexes + TTLs
pnpm validate # config dry-run with auth check per source
pnpm worker # terminal 1
pnpm bot # terminal 2You'll need MONGO_URL, ANTHROPIC_API_KEY, SLACK_BOT_TOKEN, SLACK_APP_TOKEN (or SLACK_SIGNING_SECRET), plus whatever env vars your sources declare.
Full instructions: docs/setup.md.
Documentation
docs/product.md— what Baba is and how it thinksdocs/setup.md— first-time install (Slack app, config, env, run)docs/configuration.md— everybabusya.config.tsfield with examplesdocs/interactions.md— chat patterns, reactions,/babacommands, social beatsdocs/mongo-backup-restore.md— backup procedures and restore drillidea.md— canonical product spec (~1400 lines)HARNESS.md,RUNBOOK.md,COLLECTIONS.md,AGENTS.md— operations + internals
Stack
Node 20+, TypeScript, run under tsx (no build step). MongoDB standalone (no replica set). Anthropic + OpenAI-compatible LLM adapters. @slack/bolt for Slack. @modelcontextprotocol/sdk for MCP servers. pino for structured logs.
Contributing
Read CLAUDE.md for the working agreement and load-bearing invariants. Read idea.md for the product spec. Changes to product behavior must update idea.md in the same session.
License
ISC.
