The pattern
The pattern most teams reach for first: a Slack bot that wraps an agent. The user mentions the bot, the message becomes the goal, the agent answers in-thread. Tool calls show up as status updates so the user can see what's happening. No custom Slack app code, no webhook plumbing, the runtime ships the channel module.
What good looks like
- Sub-3-second response time on simple questions
- Status updates while tools are running, never silent
- Threaded replies, not channel pollution
- Graceful timeout if a tool hangs
Common pitfalls
- Letting the bot respond to every message in a channel
- Forgetting per-user context isolation in shared workspaces
- Skipping the streaming response, users wait silently
- Hard-coding tokens instead of using credentials
The minimum YAML to ship this
app.yaml
1modules:2 channels:3 config:4 slack:5 bot_token: { credential: slack_bot }6 respond_in_thread: true7 stream_status: true8 web: {}910agents:11 - id: helper12 modules: [{web: [search, fetch]}, {channels: [slack_post]}]13 brain: { model: claude-haiku-4-5 }14 system_prompt: "Answer concisely. Cite sources. Stay in the thread."Ship in 5 minutes
Install Digitorn and deploy this agent
# 1. install runtime
curl -sSL https://digitorn.ai/install | sh
# 2. save the YAML above to ~/.digitorn/apps/my-slack-bot/app.yaml
mkdir -p ~/.digitorn/apps/my-slack-bot
# paste the YAML into app.yaml
# 3. deploy
digitorn deploy my-slack-botRead the deep dive
10 apps you can ship in 50 lines of YAML
Read article
Newsletter
Get the next post in your inbox.
Engineering notes from the Digitorn team. No marketing, no launch announcements, no "10 prompts that will change your life". Just the things we write that we'd want to read.
Other things you can build
developerAutomated code reviewer/use-cases/code-reviewknowledgeResearch agent with citations/use-cases/research-agentdeveloperDocumentation generator/use-cases/documentation-generatorcommunicationVoice assistant/use-cases/voice-assistantopsScheduled reporter/use-cases/cron-reporterdeveloperPR triager/use-cases/pr-triagerknowledgeMeeting note-taker/use-cases/meeting-notesopsEmail triager/use-cases/email-triagecreativeLive React app builder/use-cases/react-builder