Overview
This document outlines the complete vision, agent roles, tools, and detailed task flows for the "Upshot Agent" system: a Slack-native, AI-powered assistant framework designed for Upshot Creatives. The system is structured around a central agent manager (Alpha) and a few specialized sub-agents.
All bots are Slack-integrated, built in Python, with access to tools such as Monday.com, Frame.io, Google Drive, Slack, and Miro. The purpose is to create a robust internal AI toolchain to enhance project flow, training, creative generation, and analytics. Each bot should act as an agent who’s capable of performing specific routine tasks as needed, with flexibility to perform wider, less routine tasks when the situation demands.
🔧 Project Setup (as of now)
- Environment: Python, .env file fully configured with credentials
- Repo: Git initialized and ready for external developer collaboration (I’ll invite you)
- Slack Apps: 4 bots (Alpha, Beta, Gamma, Delta) are deployed and responsive except Alpha (needs debugging) and Epsilon hasn’t been built yet. We may want one or two more in the future, but that’s who we’ve got for now.
- Basic Folder Structure:
app/
alpha_agent/
beta_agent/
delta_agent/
gamma_agent/
tools/
utils/
tools/
frameio_tool.py
google_tool.py
miro_tool.py
monday_tool.py
slack_tool.py
utils/
agent_base.py
agent_coordinator.py
anthropic_wrapper.py
memory/
Agent Roles and Abilities
Shared Abilities
All of the bots should have these abilities:
- Basic conversational ability about most topics while always keeping things extremely concise and non-verbose (the threads get super long if they yap too much which hurts the human user experience, so that’s something to keep in mind the entire time when dialing in behavior)
- Access to the Internet so that they can perform searches as needed
- Persistent memory when completing specific tasks
- Rolling 30-day memory of other tasks and conversations that have happened
- Enough situational awareness to recognize wider context without explicit mention, for example:
- What client is being talked about based on metadata like the Slack channel name
- Who is being referred to without them being tagged
- Which client’s product is being talked about based on previous thread messages
- Which of our video editors needs to be prompted about completing one of their tasks
- Information security!!! They should know not to reveal sensitive information about another client or person by realizing who they’re talking to and which channel they’re currently in
- Protects sensitive information like editor and creator pay
- etc.
- Automatic escalation of tasks to the correct human user