~
← Stack

Route Agent

Shipt ยท Platform

  • Google ADK
  • AG-UI
  • A2A
  • MCP
  • Langfuse
  • Datadog
Production
agentic system for route operations
8 tools
validated, guarded actions
3 protocols
AG-UI, A2A, MCP

Production route operations agent

Route Agent is a production route operations assistant. I designed and built it end to end, from the ChatOps UI to the orchestration layer, specialized agents, tool servers, route data, memory, and eval path.

The goal was not a demo. It needed to handle real route operations with safe tools, traceable decisions, and enough structure that later agent projects could copy the pattern.

End-to-end architecture

The system runs a full UI to tool loop.

  • Streamlit UI streams chat through AG-UI.
  • FastAPI orchestrator loads history and delegates work over A2A.
  • A routing agent and a domain agent run on Google ADK.
  • One MCP server exposes a small set of validated, guarded write actions for route operations.
  • Another MCP server turns natural language filters into safe read queries.
  • Postgres stores chat history and route state.
  • An internal agent-memory service stores sessions and A2A task state across replicas.
  • Snowflake refresh jobs keep route data current.

Safety and observability

Route writes do not expose raw SQL to the model. The tool layer exposes typed actions, validates inputs, wraps SQL with parameterized queries, and uses an LLM check for context-sensitive operations.

Every tool call is regression-tested end to end with Promptfoo, holding a 100% pass rate across the validated actions, so changes get caught before they ship.

Observability was built into the shape of the system. Each user query starts at the UI and carries Datadog and Langfuse trace context through the orchestrator, A2A calls, ADK agents, and MCP tools. That means a production issue can be traced from the chat message to the validation decision and tool result.

Why it mattered

This became a working reference for agentic systems at Shipt because it combined the hard parts in one production flow: streaming UX, agent delegation, durable memory, guarded tool use, eval coverage, and end-to-end traces.

The important proof point was that the pattern was reusable. Later agent work could start from a concrete system that had already handled real operations, not a slide or prototype.