-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Description
Implement the Slack channel adapter to enable bidirectional communication between Slack workspaces and the OpenZosma orchestrator. This involves:
- Define and implement the ChannelAdapter interface as the common contract for all channel adapters
- Build the Slack adapter supporting both Socket Mode and Events API ingress
- Map Slack threads (channel + thread_ts) to orchestrator sessions
- Resolve Slack users to OpenZosma identities via the integrations table
- Stream agent responses back to Slack threads as threaded replies
- Handle Slack-specific concerns: rate limits, retry headers, message formatting (mrkdwn → plain text), and webhook verification
- Register and initialize adapters at gateway startup
Motivation
Currently, users can only interact with agents through the REST API, WebSocket, or A2A protocol — all of which require direct integration. Slack is the most common workspace communication tool for teams and enterprises. Adding a Slack adapter allows users to interact with agents directly from their existing Slack channels without leaving their workflow. This is a high-value integration that:
Lowers the barrier to adoption — no separate UI needed
Enables team-wide access to agents in shared channels
Supports enterprise use cases where Slack is the primary collaboration surface
Establishes the ChannelAdapter pattern that WhatsApp and future adapters will follow
Affected package(s)
grpc, gateway, adapters/slack, orchestrator, db
Alternatives considered
No response