Skip to content
back to achievements

Case study · Auggy

Client project · AugmentProject period2024 – 2025

Multi-agent orchestration

Designed and implemented LangGraph-based orchestration for multiple specialized workplace agents, coordinating task execution across integrated systems.

01

Why

A workplace assistant has to do very different jobs: tickets, meetings, email, time logs, company questions and HR. We first tried to put all of it into a single agent, and it couldn't give consistent results. We were giving it too much context, with conflicting guidance and rules, and the AI struggled to keep up.

02

Decision

I suggested breaking it up. A supervisor agent routes each request to a specialist agent, and LangGraph coordinates them. Each specialist has a small, focused job and only the context it needs.

Two more things make it work:

  • Separate sessions for each user. At first we didn't realize sessions had to be separate. Every request went to the same agent, and the agent has a memory, so it treated different people as one person and mixed their context. People got very strange answers. We found the cause while debugging: everyone was chatting with the same agent. So each user now has their own session with its own context, and a follow-up like "move it to Friday" resolves against that user's earlier messages.
  • A role check inside the orchestration. Before an agent runs, the user's role is checked against it. If the role isn't allowed, for example an employee asking for HR work, the request stops there and an error comes back.

How it fits

Hover or focus a box for the story behind it.

Sending asSigned in as
Isolated user sessions feed a LangGraph orchestrator. A role check decides whether the user may reach each agent and returns an access-denied error otherwise. The knowledge agent runs RAG over Vertex AI Search with a country filter on document metadata.Every user gets a separate chat session with its own memory. A follow-up like "move it to Friday" resolves against that user's earlier messages, and conversations from different users never mix.User A session Own memory per userEvery user gets a separate chat session with its own memory. A follow-up like "move it to Friday" resolves against that user's earlier messages, and conversations from different users never mix.User B session Own memory per userLangGraph orchestrates the workflow. It coordinates the specialist agents and carries each task across the connected systems, using the session memory so follow-ups make sense.Orchestrator Built with LangGraphRole-based access control sits inside the orchestration. Before an agent runs, the user's role is checked against it. If the role is not allowed, the request stops here and an error comes back.Role check Is this agent allowed?Access denied. Generating an invoice is HR work, so for an employee the request stops at the role check and an error comes back instead of reaching the agent.Access denied Error sent to userCreates and looks up Jira tickets on the user's behalf.Jira TicketsFinds free time and books meetings on Google Calendar.Calendar MeetingsDrafts approval emails and other messages in Gmail.Gmail EmailsHandles the employee side of PaddyField, such as logging time entries.PaddyField Time logsAnswers questions with RAG over internal company documents, which live in Vertex AI Search, Google Cloud's search platform.Knowledge Company docsThe HR agent covers the HR side of the workplace tools, such as invoice management and other HR work. It is restricted, so only the HR role gets through the role check.HR RestrictedKnowledge agent: RAGRetrieval uses the document metadata. The user's country filters which documents are searched, so a leave-policy question returns the policy that applies to them.Filter by country Document metadataVertex AI Search is the Google Cloud platform where the internal documents are stored and searched.Vertex AI Search Internal documentsThe retrieved passages ground the generated answer, which returns through the orchestrator into the same user session.Grounded answer Back to orchestrator

Every user gets a separate chat session with its own memory. A follow-up like "move it to Friday" resolves against that user's earlier messages, and conversations from different users never mix.

03

Alternatives considered

A single general agent. It was my first attempt, and it didn't produce consistent results.

04

What I built

Designed and implemented agent workflows using LangGraph to coordinate multiple specialized AI agents and manage task execution across the workplace assistant.

The orchestration layer enabled Auggy to route and coordinate requests across agents responsible for different workplace capabilities rather than handling all functionality through a single generalized agent.

05

Trade-offs

  • Extra calls and delay. Routing through a supervisor adds model calls, and each one adds latency.
  • More complexity. A request can go in different directions, so prompts have to be crafted very carefully. A small mistake and the agent doesn't think properly.
  • Choosing models carefully. A very powerful model for any agent adds latency. So every pick has to be weighed against the outcome, the delay and the cost.
  • Debugging costs money. We used LangSmith to debug the agents. It costs money, but it was the only solution we could think of.

06

Outcome

One assistant covers many workplace systems, with each agent focused on one job and each user in their own session.

Technologies