You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert

7
7
8
-
The code in this repo shows a reference architecture for a Slack-integrated agent application running on ECS. The architecture is designed so that agent workers can scale horizontally to demand while keeping a minimal API instance running. Additionally, it implements the [agent memory server](https://github.com/redis/agent-memory-server) as a tool call for storing and automatically summarizing and persisting short and long term memory to Redis.
8
+
The code in this repo shows a reference architecture for a Slack-integrated agent application running on ECS. The architecture is designed so that agent workers, API containers, and agent-memory-server can scale in a decoupled way. [The agent memory server](https://github.com/redis/agent-memory-server)itself is implemented as a tool call for storing and automatically summarizing and persisting short and long term memories.
9
9
10
10
## Business objective
11
11
@@ -16,22 +16,22 @@ Internally at Redis, this bot extends the Applied AI engineering team by assisti
-**FastAPI App**: Webhook handler with health checks
24
-
-**Agent Engine**: ReAct methodology that runs search tools (curated AI team knowledge, internal Glean search, and web search via Tavily) in an agentic loop
25
-
-**Agent memory**: Remembers past interactions with users via the [Agent Memory Server](https://github.com/redis/agent-memory-server) and personalizes responses
26
-
-**Docket Workers**: Background task processing with retry logic
To test local changes in Slack, you can run an ngrok server locally and then connect Slack to the ngrok endpoint that proxies to your local machine.
61
+
To test changes in Slack, you can run an ngrok server locally or setup with ALB with terraform (see below) and then connect Slack to the respective endpoint.
64
62
65
-
First, run ngrok:
63
+
For ngrok, run:
66
64
67
65
```bash
68
66
ngrok http 8000
69
67
```
70
68
71
69
Then, in the Slack API console, update "Event Subscriptions -> Request URL" with the proxy URL ngrok gives you. It will look like `https://<ngrok proxy>/slack/events` (e.g.: `https://3cfaf9a1bcff.ngrok-free.app/slack/events`).
Additionally, if persisting answer feedback locally, update "Interactivity & Shortcuts -> Request URL" with the URL `https://<ngrok proxy>/slack/interactive`.
74
74
75
75
## Usage
76
76
77
-
**Slack**: Mention `@bot` in any channel. The bot processes questions using ReAct methodology with search tools (curated AI knowledge, internal docs with Glean, and web search).
77
+
**Slack**: Mention `@bot` in any channel. The bot processes questions using ReAct methodology with search tools (curated AI knowledge and web search).
**Note**: If you encounter "No space left on device" during `uv sync`, increase Docker Desktop disk allocation (Settings → Resources → Disk image size).
181
+
182
+
**Optional - Test locally before pushing**:
183
+
```bash
184
+
# Verify architecture
185
+
docker image inspect "$ECR/my-ai-agent-api:latest" --format '{{.Architecture}}'# should show "amd64"
186
+
187
+
# Quick smoke test (requires .env file)
188
+
docker run --rm --env-file .env -p 3000:3000 "$ECR/my-ai-agent-api:latest"&
189
+
sleep 5 && curl -sf http://localhost:3000/health &&echo"✓ API health OK"
0 commit comments