AI Teammates: how monday.com runs production AI agents on Amazon Bedrock Monday.com runs production AI agents on Amazon Bedrock, with nine in ten Builders using AI coding tools monthly and per-engineer PR throughput up by more than half, according to internal data. The company's Sphera agent system treats agents as teammates with stable identities across Slack, GitHub, and monday, using AWS services including Amazon Bedrock, SNS, SQS, EKS, RDS, ElastiCache, EFS, S3, and Secrets Manager. Artificial Intelligence https://aws.amazon.com/blogs/machine-learning/ AI Teammates: how monday.com runs production AI agents on Amazon Bedrock AI Teammates are agentic AI on Amazon Bedrock https://aws.amazon.com/bedrock/ , and few engineering organizations run them in production at the scale that monday.com https://monday.com does. Nine in ten Builders use AI coding tools every month, up from roughly half a year ago. Per-engineer PR throughput is up by more than half. Every figure in this post comes from monday’s own internal production data. In this post, we share the architecture behind those numbers, the retrofits that made it work in a decade-old code base, and the confidence-scored merge play closing the gap to full autonomy. This is not a greenfield monday.com https://monday.com is a decade-old code base, millions of paying users, hundreds of microfrontends and microservices, hundreds of Builders Engineers, PMs, Analysts, and Product designers . Every PR an agent opens goes into a system millions of users expect to keep working through the next deploy. Greenfield demos are straightforward. Running agents inside an enterprise SaaS with real on-call, customers, and compliance is the work. Three levels of AI engineering You can frame the journey as three levels: L1, the assistant. Engineers use AI as a pair programmer. Cursor for the fast reflexive work, Claude Code https://www.anthropic.com/claude-code for the heavy lifts. Adoption has nearly doubled year over year. L2, skills and sub-agents. Teams build reusable agents for repeated work, engineers in the driver’s seat. This is where most of monday runs today, and where per-developer PR throughput stepped up by more than half. L3, multi-agent. Fully agentic. Agents own delivery end-to-end while engineers orchestrate, taking tasks from boards, talking in Slack and monday, shipping code alongside humans. Agents are teammates, not jobs Sphera is monday’s internal agent system. The first thing you see isn’t a job queue, it’s a Teams page: a mix of humans and agents, each with a profile, a manager, a scope, and a performance score. Atlas, the agent at the center of this post, is one of them: role: Software Engineer. Job: pick up tickets, write the PR, ship the feature. IDE: none. Same backlog as everyone else. This isn’t decoration, it’s the schema. Every agent has a stable identity that flows through Slack, GitHub, and monday, so a human tags, assigns, code-reviews, or deactivates them like any other teammate. The agents that move the needle live on real teams, doing real work, accountable for the result. The architecture Here is how the system fits together, from the inboxes an agent listens on to the AWS services that carry each event. Three inboxes, one agent A monday-built agent has three first-class inboxes: a Slack @mention , a monday item assignment, a GitHub PR review request. All three hit the same agent session, with the same memory and workspace on disk: three flavors of the same event, same queue, same path. We don’t run three agent systems. We run one. The architecture in one diagram The seven AWS services that we used are Amazon Simple Notification Service Amazon SNS https://aws.amazon.com/sns/ , Amazon Simple Queue Service Amazon SQS https://aws.amazon.com/sqs/ , Amazon Elastic Kubernetes Service Amazon EKS https://aws.amazon.com/eks/ , Amazon Relational Database Service Amazon RDS https://aws.amazon.com/rds/ , Amazon ElastiCache https://aws.amazon.com/elasticache/ , Amazon Elastic File System Amazon EFS https://aws.amazon.com/efs/ , and Amazon Simple Storage Service Amazon S3 https://aws.amazon.com/s3/ . Alongside them, AWS Secrets Manager https://aws.amazon.com/secrets-manager/ handles per-session secret management. Amazon Bedrock https://aws.amazon.com/bedrock/ handles model calls, and monday-agent-sdk runs inside each agent runner pod. Event path: From SNS to SQS to monday Builders CoWORK Every external trigger lands in SNS, which fans out to per-team SQS queues by topic and routing key. The monday Builders CoWORK , a set of SQS consumers on EKS, pulls each message, resolves which agent owns it, and hands it to the right agent runner pod. Pub/sub plus queue gives us four things we won’t give up: retries and dead-letter queues out of the box, back-pressure when Amazon Bedrock throttles, durable replay we re-run the last day of events against a patched build before promoting , and concurrent fan-out. If the Claude Agent SDK ships something better at the runtime layer, we delete our version. The harness stays. monday-agent-sdk: A thin wrapper, on purpose The Claude Agent SDK is the runtime. We wrap it for three reasons: Provider neutrality at the call site. Agent LLM calls route into an Amazon Bedrock model endpoint. Cold-start cost. Agent runners ship with a warm node modules and plugin caches, so the first model call goes out in usually under a second. We wanted our own harness. The runtime is becoming a commodity. The harness is where our opinions live: how an agent is evaluated, how plugins compose, how it talks to Slack, monday, and GitHub, how its output is reviewed against monday standards. We keep the runtime someone else’s problem and make the harness ours. State, memory, sessions Agents have at least three kinds of state. Putting all three in one store costs you money, latency, or correctness. The live state move to Amazon ElastiCache. Current task, run cursor, distributed lock, heartbeat, and the agent/human message log. Sub-millisecond reads, self-expiring keys. Amazon DynamoDB https://aws.amazon.com/dynamodb/ would work; ElastiCache is cheaper and faster for this shape of access. Sessions and memory get stored in Amazon Elastic File System. Each active session is a directory on a shared filesystem: /sessions/