Inspiration

Teams rarely lack information. What they lack is timely judgment.

Important questions often sit unanswered in Slack while everyone waits for the senior teammate who knows the customer, remembers an earlier decision, or recognizes the hidden risk. Existing AI assistants usually require someone to prompt them—or they participate so often that they become another source of noise.

We built August around a different question: could an agent notice when work is genuinely stuck, understand the team's context, and help at the right moment without becoming the loudest person in the room?

For August, silence is not a failure. It is a feature.

What it does

August is a native Slack agent that acts like a thoughtful senior teammate.

People can ask August questions through Slack's native Agent experience, direct messages, or @mentions. August also watches administrator-selected channels and can proactively join a conversation when an important question has stalled.

Before speaking proactively, August passes the situation through several independent stages:

  • A fast filter removes ordinary chatter.
  • Triage determines whether there is a meaningful unanswered problem.
  • A lull timer gives human teammates the first opportunity to respond.
  • August retrieves relevant team memory and skill-pack guidance.
  • A compose stage produces a grounded recommendation.
  • An independent judge decides whether the response is valuable enough to justify an interruption.
  • A delivery router chooses a public thread, private DM, or silence.

August remembers durable decisions, ownership, recurring problems, and corrections while respecting privacy boundaries. Public workspace knowledge can help public conversations, while facts learned in DMs remain private by default.

Sensitive advice and corrections are routed privately. Administrators control which channels August watches, what it remembers, retention settings, enabled skill packs, and whether higher-risk correction behavior is allowed.

August provides advice and human-owned next steps. It does not pretend to file tickets, schedule meetings, notify people, or change external systems.

How we built it

August is built in strict TypeScript using Bun, Slack Bolt, and Slack's native AI Agent experience.

Slack's Events API and Socket Mode feed messages into an asynchronous, deduplicated intake pipeline. Redis provides delayed lull jobs and reliable leased background processing. PostgreSQL and pgvector store tenant-scoped sessions, message memory, structured ownership knowledge, corrections, feedback, and provenance.

The reasoning pipeline uses AI SDK 7 and Google Gemini models. Rather than asking one model for an unreliable confidence percentage, August uses factored gates, retrieval, self-consistency, an independent judge, and deterministic safety rules.

Slack's native Agent view provides suggested prompts, loading states, and titled app threads. Block Kit powers an App Home where administrators can inspect August's trust boundaries and configure its behavior.

Langfuse and OpenTelemetry provide tracing. A labeled interjection evaluation suite measures both useful interventions and correct decisions to remain silent. Feedback can produce reviewable improvement recommendations, but August never automatically rewrites its own prompts or safety policies.

Prompt-injection defenses treat Slack messages, retrieved memory, and tool results as untrusted data rather than instructions.

Challenges we ran into

The hardest problem was not generating a good answer. It was deciding whether August should speak at all.

Large language models are often overconfident, so a prompt like "only respond if you are 95% confident" was not sufficient. We replaced that idea with independent content, timing, grounding, usefulness, and social-risk gates. Every uncertain branch defaults to silence.

Proactive delivery introduced another challenge. A useful response may need to wait for a conversational lull, which means the work must survive restarts and temporary failures. We built a leased Redis worker with deterministic message identifiers, acknowledgement, retry, expired-lease recovery, model timeouts, and overlapping-drain protection.

Slack installation and authorization also behaved differently between regular team workspaces and Enterprise Grid sandboxes. We had to carefully diagnose scopes, bot identities, OAuth installations, native Agent settings, and event routing across both environments.

Finally, memory created a serious privacy challenge. We designed tenant, channel-visibility, and personal-private boundaries so that something learned in a DM cannot accidentally appear in a public response.

Accomplishments that we're proud of

  • August works through Slack's native Agent Messages experience, DMs, and @mentions.
  • It can recognize a genuinely stalled conversation and proactively provide one focused recommendation.
  • It remains silent during ordinary conversation instead of optimizing for engagement.
  • Direct and proactive interactions share the same memory, skills, ownership, and session pipeline.
  • Structured memory is permission-aware and correctable.
  • Sensitive guidance is private by default.
  • Administrators have visible, Slack-native controls over listening, memory, retention, corrections, and skill packs.
  • Delayed proactive delivery is crash-safe, retryable, and idempotent.
  • The complete native Agent and natural-message proof flow was validated across two owned Slack workspaces.
  • August maintains an observable trust loop without granting the agent permission to modify its own rules.

What we learned

The most important output of an agent is sometimes no output at all.

An AI teammate needs more than intelligence. It needs timing, restraint, privacy boundaries, correctable memory, reliable delivery, and a clear understanding of what it is not authorized to do.

We also learned that native product experience matters. Suggested prompts, app threads, loading states, private messages, threaded responses, and administrator controls make August feel like part of Slack rather than a chatbot connected to Slack.

Finally, trust needs to be measurable. We evaluate both interventions and stand-downs, preserve decision evidence, and turn feedback into human-reviewed recommendations rather than allowing the system to silently change itself.

What's next for August

Next, we will expand the trust loop using real beta feedback, add more domain-specific skill packs, and improve self-serve workspace onboarding.

Longer term, we plan to build a Slack Marketplace-ready installation and support experience, a broader connector ecosystem, and carefully permissioned actions such as creating tickets or notifying owners. Consequential actions will remain draft-first and human-confirmed.

Our goal is to make August the senior teammate every team can turn to—and the rare AI colleague that knows when the team does not need another message.

Built With

Share this project:

Updates