Agents in Orbit: Workflows, Not Autopilot — Eduardo Simon & Javier Casal, Flywire
Flywire's AI Platform Experience team shares their `Orbit` platform, which integrates LLMs into structured workflows to automate repetitive engineering tasks, emphasizing control, safety, and reliability for handling sensitive financial data. They advocate for `Workflows, not Autopilot`, where deterministic code handles predictable parts and LLMs are called only when reasoning is needed, ensuring governance and consistency through YAML-defined agents and a robust internal platform (`Victoria`). Key benefits include accelerated feature development, reduced compliance overhead, and the ability to execute bulk changes across hundreds of repositories, with plans for full sandboxing, resumable sessions, and a model-agnostic architecture.
read more
Flywire's AI Platform Experience team introduces `Orbit`, an internal platform designed to automate repetitive engineering tasks by integrating Large Language Models (LLMs) into structured workflows. Their core mission is to provide practical agentic infrastructure that empowers software engineers while adhering to strict engineering standards and practices, especially crucial in the regulated financial sector.
Flywire handles complex payments across global industries like education, healthcare, travel, and business services, serving over 5,300 clients in 240+ countries. This necessitates strict compliance with frameworks like PCI DSS and SOC II, ensuring payment data protection and preventing ungoverned third-party endpoints. Their engineering organization consists of approximately 400 software engineers globally, utilizing diverse tech stacks (Java, Ruby, Go, Python, .NET, PHP) and deploying almost everything on Victoria, their internal Platform-as-a-Service (PaaS) built on Gitlab and AWS Fargate.
The AI journey at Flywire began with early experiments by passionate engineers, leading to the formal establishment of a dedicated AI Platform Experience team six months prior. This organic activity confirmed a strong demand for AI automation among engineers and highlighted the need for a safe, dedicated infrastructure. Since April, Claude Code alone has seen over 160 releases, and major AI labs have released 20+ new models, underscoring the rapid pace of innovation.
`Orbit` is designed as a workflow-oriented tool, employing LLMs only when necessary to reduce AI usage and crystallize repetitive procedural logic into code automation. Instead of open-ended loops, `Orbit` pairs deterministic code with small, controlled LLM steps. Each agent is defined in a single YAML file within a repository, undergoing the same merge request review process as any other code. Workflows can be triggered by an internal API, webhooks (from Gitlab, Jira, Sentry, AWS), or scheduled jobs (for syncs, cleanups, refreshes). They are also building an MCP server for Orbit to enable other internal AI services to directly start workflows, for instance, via a Slack bot.
Building `Orbit` in-house made sense due to the speed of frontier models, which drastically lowered the cost of a custom platform. More importantly, it ensured that sensitive data (PCI, PII, PHI) never left their controlled environment, avoiding lengthy vendor security reviews and extra compliance work. The YAML-first approach leverages engineers' existing familiarity and merge request review processes, keeping the codebase AI-friendly. For corporate use cases, they are exploring a UI authoring tool within `Orbit` that allows drag-and-drop workflow creation without YAML.
The initial focus was on high-impact use cases: code review (9,000+ runs in 30 days, ~2m 45s per MR), AI Readiness scorecard & fixer (~80 repositories improved), Victoria linter fixer (400+ projects fixed), Sentry Investigator, Jira implementer, translations, and support ticket triage. This approach resulted in over 11,000 runs across these workflows with a 99% success rate in the last 30 days. `Orbit` enables software engineering at scale by facilitating bulk changes across hundreds of repositories simultaneously for tasks like migrations, library updates, deprecations, code health diagnostics (Claude Doctor), and AI readiness scorecards.
Governance and control are central, with merge requests remaining the core unit of work and the point of human in the loop. The regulated environment necessitates human review and approval of merge requests. The architecture has evolved from a single ECS Fargate container to separate layers for orchestration, agent runtime, and session state. This provides better isolation, allows each layer to scale independently, and ensures an inference error does not kill the sandbox. Fargate's elastic scaling facilitates running a large number of agents in parallel. To maintain control, `Orbit` implements timeouts, rate limits (aggressive by default to prevent runaway tasks), and concurrency control (using locks to prevent duplicate executions).
Running agents within Victoria presented challenges due to Fargate's lightweight and restricted containers (no bundlers, Maven, Composer). To work around this, `Orbit` now uses MicroVM runtimes (AWS Lambda-like processes) that can pause and resume, picking the runtime per project type. The roadmap includes full sandboxing (Docker-in-Docker or multiple MicroVMs) to allow agents to run tests and complex verifications on any repository. The Claude Agent SDK is reused as the agent harness, providing tool usage, sub-agents, and skills out-of-the-box, with strict restrictions on network access, tools, skills, and MCP servers, all declared in the YAML file for review.
For reliability, `Orbit` enforces strict JSON schemas for LLM step responses. If validation fails, it triggers a targeted retry or fallback. Isolated evaluations are key to measuring model quality without noisy end-to-end benchmarks, by injecting historical state directly into workflow nodes. This allows for quick, cost-effective evaluation of model output quality, prompt adjustments, and regression detection.
Their evaluation process moves from vibe checks (trying agents on real cases in production) to real traces (OpenTelemetry for every run, extracting real cases), building a golden dataset (versioned in the repo, run on demand), and then improving (tuning prompts or changing models). The future roadmap aims for a full evaluation loop within `Orbit` itself, allowing for online evaluations in production and improvements without redeploying the agent.
Key lessons learned include: self-service works with shared guardrails, cost control starts with right model per step (not every step needs the top model), and data separation is an ongoing responsibility. Their roadmap focuses on full sandboxing, resumable sessions for long multi-step tasks, built-in evaluations, and a model + harness agnostic architecture with a cost-aware model router to select the most cost-effective model for each task.
In summary, Flywire advocates for `Workflows, not autopilot`, emphasizing starting small, using LLMs only when needed, and keeping humans in the loop. This structured, workflow-driven automation makes AI a reliable force multiplier for engineering at Flywire.