- Notifications
You must be signed in to change notification settings - Fork7
An assistant for Slack built with Arcade and Langgraph. Interact with Google Calendar, Mail, Github, Search Engines, Firecrawl and more all from within Slack
ArcadeAI/SlackAgent
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Archer is a AI Agent that lives in your slack workspace and can help you with your work.Using Arcade, Archer can access and use various services like Google, Github, and more allfrom within Slack.
By default, Archer can interact with and use:
- Google Mail
- Google Calendar
- GitHub
- Search Engine (Serp)
- Crawling and web scraping (firecrawl)
However, any of the available Arcade toolkits or custom toolkits you develop can also beused by Archer.
You can change the prompt and tools used by Archer by editingthedefaults.py
file.
For the names of all Arcade cloud tools you can usearcade show
in your terminal,or visithttps://docs.arcade.dev/integrations.
The agent is built using theLangGraph framework.
The graph for the agent is shown below:
Archer uses the Slack Assistant UI so it's available on across the entire slack app.
Archer is not distributed as a Slack app, but you can easily self-host it thesame way shown above.
- Python 3.10+
- Poetry 1.8.4+ <2.0.0
- OpenAI API Key
- Arcade API Key (seeArcade)
Clone the repository
git clone https://github.com/arcadeai/archer.git
Then install the local dependencies
cd archermake install
- Openhttps://api.slack.com/apps/new and choose "From an app manifest"
- Choose the workspace where you want to install Archer
- Copy the contents ofconfig/manifest.json into the text box that says "Paste your manifest code here" (within the JSON tab) and clickNext
- Review the configuration and clickCreate
- In the app configuration page, go to "App Home" in the left sidebar and ensure the Home Tab and Messages Tab are enabled
- Under "App Manifest" in the left sidebar, find the
event_subscriptions.request_url
andinteractivity.request_url
fields - After you deploy Archer to Modal, replace
<INSERT>
in both URLs with your Modal app URL - ClickInstall to Workspace andAllow on the screen that follows
You'll need two values from the Slack App for your .env file:
- FromOAuth & Permissions, copy theBot User OAuth Token (for
SLACK_BOT_TOKEN
) - FromBasic Information, copy theSigning Secret (for
SLACK_SIGNING_SECRET
)
If you haven't already, install the Modal CLI and set it up:
pip install modalmodal setup
Set the environment variables for Slack, Arcade, and OpenAI
touch .env
SLACK_BOT_TOKEN=<slack-bot-token>SLACK_SIGNING_SECRET=<slack-signing-secret>OPENAI_API_KEY=<openai-api-key>ARCADE_API_KEY=<arcade-api-key>LOG_LEVEL=INFOLANGSMITH_TRACING=trueLANGSMITH_ENDPOINT="https://api.smith.langchain.com"LANGSMITH_API_KEY=<langsmith-api-key>LANGSMITH_PROJECT="archer"SLACK_BOT_TOKEN=xxxSLACK_SIGNING_SECRET=xxxOPENAI_API_KEY=xxxARCADE_API_KEY=xxxxLOG_LEVEL=INFO
Then deploy the app
make deploy
Modal will deploy the app and provide you with a URL to access it.
In the Slack App configuration page, go to "Event Subscriptions" in the left sidebar and find therequest_url
field.Replace<INSERT>
with your Modal app URL.
In the Slack App configuration page, go to "Interactivity & Shortcuts" in the left sidebar and find therequest_url
field.Replace<INSERT>
with your Modal app URL.
or just replace in the manifest.json file in the JSON tab in the Slack App configuration page.
About
An assistant for Slack built with Arcade and Langgraph. Interact with Google Calendar, Mail, Github, Search Engines, Firecrawl and more all from within Slack