An AI Slack command center is a bot layer that turns Slack channels into an operational interface for agents — routing user intent, invoking tools, and returning structured responses without leaving the workspace.
Teams already live in Slack. Meeting users where they work reduces adoption friction, enables channel-based context sharing, and integrates naturally with existing notification workflows.
Node.js with LangChain for agent orchestration, Slack Bolt for event handling, and tool definitions that wrap internal APIs so the agent can act on live data rather than hallucinate answers.
When I joined the Arcade AI project, the team already had powerful agent capabilities — but they lived behind internal dashboards. Operators still copied prompts into separate tools and pasted results back into Slack. That friction killed velocity.
This post is my original write-up of how we turned Slack into the primary command surface for AI workflows: what we built, why we made specific tradeoffs, and what I learned shipping it toward production.
Arcade AI needed a way for engineers and ops to:
Slack wasn't an afterthought — it became the control plane.
Our stack split into three layers:
// Simplified intent routing pattern we used
async function handleSlackMessage(event: SlackEvent) {
const intent = await classifyIntent(event.text);
const agent = selectAgent(intent); // e.g. "research", "ops", "summarize"
const result = await agent.invoke({ input: event.text, userId: event.user });
return formatSlackBlocks(result);
}
The critical design choice: never let the LLM call Slack APIs directly. We kept Slack I/O in Bolt handlers and passed only sanitized text into LangChain. That boundary made debugging ten times easier.
We scoped conversation memory by channelId + threadTs, not globally per user. In incident channels, that meant the agent retained context for the active thread without bleeding secrets from DMs.
Free-text replies were hard to scan. We standardized on Slack Block Kit for:
When a tool timed out, we returned a visible error block instead of letting the model improvise. Users trusted the bot more once failures were honest.
The Arcade AI ecosystem publishes SDK and integration guides. This post focuses on our implementation choices on the Arcade project — Slack as command center, LangChain routing patterns, and production lessons — not a reproduction of upstream docs.
If you're building something similar, start with one slash command, one agent, and one tool. Expand only after latency and error budgets are measured.
Written by Mikey Sharma as part of hands-on work on the Arcade AI platform. For questions, reach out via mikeysharma.com/contact.