DEV Community

Tharini
Tharini

Posted on

Creating an AI Assistant on AWS: Amazon Bedrock and Slack Integration

As businesses increasingly look to automate support and internal tasks, AI assistants are becoming essential. I wanted to explore how quickly I could build a custom AI assistant using Amazon Bedrock Agents and integrate it with Slack, a platform most teams use daily.

Here’s a step-by-step walkthrough of how I built it.

Why I Chose Amazon Bedrock Agents
Amazon Bedrock simplifies building and deploying generative AI applications. With Bedrock Agents, you can create task-oriented conversational agents without needing to manage any infrastructure.

Key reasons I picked Bedrock:

  • No model fine-tuning required.
  • Native support for connecting to APIs and knowledge bases.
  • Secure, scalable, and serverless.

Architecture Overview
The solution is straightforward:

  1. Amazon Bedrock Agent for the AI logic.
  2. Amazon API Gateway + AWS Lambda for secure interaction between Slack and the agent.
  3. Slack App with Event Subscriptions and Slash Commands for triggering conversations.

Here’s a simple flow:
Slack → API Gateway → Lambda → Bedrock Agent → Lambda → Slack

Step 1: Setting Up the Amazon Bedrock Agent
I started by creating an agent in Amazon Bedrock. It required:

  • Defining the instructions and goal of the assistant.
  • Configuring API schemas to allow the agent to call backend services.
  • Optionally connecting to a knowledge base for additional context. The agent handles user intents automatically and can execute API calls based on the user’s request.

Step 2: Building the Slack App
I created a Slack App via the Slack Developer Console and enabled:

  • Slash Commands to trigger the AI assistant.
  • Event Subscriptions to receive messages from Slack.

Slack needs a public HTTPS endpoint, so I used Amazon API Gateway for this.

Step 3: Creating the API Gateway and Lambda Function
I set up API Gateway to expose a POST endpoint that Slack could call. The endpoint triggers a Lambda function, which:

  • Parses the Slack event.
  • Sends the user’s input to the Bedrock agent via the InvokeAgent API.
  • Formats the Bedrock agent's response for Slack.
  • Sends the reply back to the user using Slack’s chat.postMessage API.

The Lambda function acts as the communication bridge between Slack and the Bedrock agent.

Step 4: Handling Permissions
The setup required:

  • Slack App tokens to post messages.
  • IAM permissions for the Lambda function to call Amazon Bedrock.

I used AWS Secrets Manager to securely store the Slack Bot Token.

Step 5: Testing the Integration
Once everything was connected, I tested the slash command in Slack:

/ask-ai How do I provision an EC2 instance?

The Bedrock agent provided a step-by-step answer instantly within the Slack thread.

Key Learnings

  • Amazon Bedrock Agents are powerful for quickly creating AI assistants without the hassle of model training.
  • Slack integration via API Gateway and Lambda is smooth if the request/response formats are handled carefully.
  • Real-time AI interaction in Slack significantly improves accessibility and internal workflows.

If you’re exploring serverless AI-powered assistants, I highly recommend trying this stack.

Top comments (0)