Agents in Orbit: Workflows, Not Autopilot — Eduardo Simon & Javier Casal, Flywire
Read the talk
Agents in Orbit: Workflows, Not Autopilot
Eduardo Simon and Javier Casal explain how Flywire puts model judgment inside reviewed, deterministic workflows—and why execution limits, reusable skills and human approval matter as much as the model.
From a talk by Eduardo Simon and Javier Casal
At a glance
Ideas worth remembering
Orbit makes preparation and publication deterministic while giving the code-review model a read-only, schema-constrained judgment step.
Timeouts, rate limits and duplicate-task locks address different operational failures: runaway duration, excessive demand and repeated work.
A shared skill can prove useful locally before its recurring procedure becomes a background workflow with reviewed access controls.
Schema validation supports reliable control flow; historical-context evaluations address output quality. Execution success alone does not establish correctness.
Full sandboxing, online evaluation and automated model routing remain development goals, while human merge-request approval remains part of the operating model.
An agent platform has to fit the payment company
Flywire’s engineers were already building skills, MCP servers and an early code-review bot before a dedicated AI Platform Experience team existed. The demand was there; the missing piece was shared infrastructure that could turn those experiments into routine engineering work. In this recording, Eduardo Simon and Javier Casal explain how that infrastructure became Orbit.
The setting matters. Flywire processes high-value international payments and operates under PCI DSS and SOC 2 requirements. Sensitive customer and payment context cannot simply be handed to another service without governance. Around 400 engineers work across Java, Ruby, Go, Python, .NET and PHP, so an automation platform also has to accommodate several toolchains rather than assume one kind of repository.
Most applications already run on Victoria, Flywire’s internal platform as a service built on GitLab and AWS. Victoria supplies standardized builds and deployment practices. Reusing it made an internal platform attractive: execution could stay within existing controls, deployment followed a familiar path, and the team could avoid another vendor’s security-review process. The speakers also credit frontier models with reducing the effort of building the custom platform.
Orbit’s answer to a fast-changing tool ecosystem is to keep repetitive procedure in code and insert small LLM steps where judgment is needed. The team calls it a “toil killer.” Rather than ask an agent to discover the entire procedure on every run, a workflow supplies the procedure and reserves model calls for the parts that need interpretation.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
A code review gives the model a narrow job
Every Orbit agent is defined in a single YAML file stored in a repository. Changes to that definition go through merge-request review like other code. That makes the workflow’s behavior something engineers can inspect before it runs, using a format and approval process they already know.
The code-review example shows where the model begins and ends. An engineer mentions the review bot on a merge request, triggering a webhook. Deterministic activities fetch the request’s metadata, classify its risk tier, load prior findings and clone the repository. Only after that preparation does the model read the code and return findings in a strict output schema. It cannot modify the files. A final deterministic activity posts the findings back to the merge request. The useful distinction to inspect in the workflow is which activities prepare or publish information and which activity receives permission to reason over it.
yaml
id: code-review-agent
triggers:
- source: gitlab_webhook # @bot_reviewer
activities:
- kind: gitlab_mr_info
- kind: gitlab_classify_risk_tier
- kind: code_review_load_prior_findings
- kind: gitlab_clone
- kind: llm_session # the only LLM step
output_schema: ReviewOutput
allowed_tools: [Read, Grep, Glob, Agent]
- kind: store_findings
- kind: gitlab_post_findings
This division removes several procedural choices from the model’s job. It does not have to decide how to retrieve the repository or how to publish a review; the workflow already does those things. Its contribution is the review itself, within a read-only step. “Workflows, not autopilot” describes that allocation of responsibility.
YAML also lets coding agents read, write and review workflow definitions. For corporate users who do not normally work in repositories, the team is considering a different authoring interface: dragging predefined activities into a workflow in Orbit’s UI. That interface is a proposal, while repository-based YAML is the established starting point.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Different entry points, the same human review point
Orbit supports three ways to start work, each suited to a different relationship with the task:
- Direct invocation: Engineers and systems call an internal API, either directly or through the internal CLI.
- Event-driven invocation: Webhooks from GitLab, Jira, Sentry and AWS start work when something happens, such as a new merge request or production error.
- Scheduled invocation: Recurring jobs handle tasks such as daily translation syncs, feature-flag cleanup and knowledge-base refreshes.
An Orbit MCP server is being built to expose workflow invocation to other AI tools. The intended experience is to request an Orbit workflow from a Claude conversation in Slack. This would add another way to start an existing workflow; the reviewed workflow would still determine how the task runs.
The examples make the inputs and outputs concrete:
- Translations: Fetch new strings, translate them, update the files and notify teams with the updated documents. The automation covers the surrounding file and notification work as well as translation.
- Production investigation: A Sentry webhook starts an investigator, which assesses the issue, posts its assessment in Slack and shares a merge request containing a fix in the same place.
- Support routing: Ticket triage classifies new tickets and routes them to the appropriate engineering area.
- Repository improvement: AI-readiness scorecards identify how prepared a repository is for AI-assisted development, and a fixer acts on the findings.
- Ticket implementation: The Jira implementer takes a ticket and produces a merge request.
The largest benefit the team identifies is applying changes across many repositories: migrations, library updates and deprecations become bulk operations. That scale does not remove the approval step. The merge request remains the unit of work, and people still review and approve the proposed changes.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Separate execution, then limit how much can run
Orbit began with orchestration, the agent harness and the runtime environment in one AWS ECS Fargate container. As requirements grew, the team separated orchestration, agent execution and session state into distinct components. That separation lets the pieces scale independently and receive different resources. It also reduces failure coupling: an error in the orchestration side need not terminate the execution environment.
Fargate supplies elastic task execution, while Victoria makes deployment familiar. But a platform that can launch many agents also needs controls against accidental multiplication of work:
- Timeouts bound duration. Every agent stops after a configurable amount of time.
- Rate limits bound incoming demand. Aggressive defaults protect against a broken API integration spawning thousands of agents and inflating the bill.
- Locks suppress duplicate work. If a code review is already running for a task, the control plane drops a duplicate request rather than launching another review.
The original runtime has a practical limitation. Its lightweight, restricted container includes common language runtimes but deliberately omits package managers such as Bundler, Maven and Composer. A code-writing agent can therefore reach a point where it cannot easily build the project or run its unit tests. The Jira implementer exposes this gap: producing a change and verifying it require different capabilities.
The team now also uses managed microVM environments with a runtime chosen by project type, supplying each stack with its own toolchain. They describe those environments as able to pause and resume execution. Full sandboxing remains unfinished, however. Docker-in-Docker or multiple microVMs are possible directions for supporting more complex local environments, builds and verification across repositories.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Review access per step, reuse skills across environments
Orbit reuses the Claude Agent SDK for the harness inside LLM steps. Tool use, subagents and skills come from that existing implementation, leaving the platform team to concentrate on workflow behavior and access controls.
Each step’s YAML declares four kinds of access:
- Network: Which destinations the agent can reach.
- Tools: Which operations it can call.
- Skills: Which reusable instructions it can load.
- MCP: Which servers it can use, including the specific tools allowed from each server.
The restrictions follow the task. Code review permits reading and searching, while excluding file edits and pushes. The Sentry investigator can query traces through an MCP server using a short list of read-only tools. Access is therefore part of the reviewed definition of an LLM step, rather than an implicit consequence of everything available in its environment.
Skills come from a central repository published internally as a Claude Code plugin marketplace. Orbit connects to that marketplace at build time. The same skill can run in an engineer’s local Claude Code session and inside an automated Orbit workflow, so a team can develop useful task knowledge before committing to background automation.
That leads to the adoption advice: “Start with the skill.” It is inexpensive to write and easy to revise while the team learns whether the task recurs often enough to automate. Once it does, the predictable parts move into code and the model handles the remaining judgment. Background execution then removes the need to keep a session open and guide it through every procedural step.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Validate the response shape, then evaluate its quality
Strict JSON schemas connect model output to deterministic control flow. Subsequent branches, error handling and state transitions consume a defined response structure rather than depend on ad hoc string parsing. If a response fails schema validation, Orbit takes a targeted retry or fallback path before proceeding.
What happens when the model produces an unusable response? The branching relationship below separates the normal continuation from the validation-failure path. A valid structure makes the response usable by the workflow; it does not establish that the model’s judgment is correct. That second question requires evaluation.
The evaluation harness isolates individual LLM steps. Instead of repeatedly executing a whole synthetic workflow, it injects historical state and context into a particular node and evaluates that node’s output. Holding the input context fixed makes prompt changes and model changes easier to compare, while avoiding the expense and variability of rerunning every surrounding activity.
The production-entry standard is still modest. A new agent usually starts with what the team calls a “vibe check”: a few real cases that appear to behave as expected. Once deployed, every execution is traced end to end with OpenTelemetry, including activities, model calls and tool calls. Traces from real runs then become examples in a golden dataset versioned beside the code.
Those datasets run on demand. Teams adjust a prompt or change a model, rerun the dataset and compare results. Online evaluations are still being built. The intended destination is an evaluation workflow accessible through Orbit’s UI or MCP server, where teams can monitor production behavior and improve an agent without redeploying it. The distinction matters: tracing and replay datasets exist today; the integrated online evaluation experience is roadmap work.
Schema validation gates downstream control flow
Read the diagram as text
- LLM response. The model returns output for a workflow step.
- Validate JSON schema. Check the response against the expected structure.
- Deterministic continuation. Use structured output for subsequent branches and state transitions.
- Retry or fallback. Take a targeted recovery path before proceeding.
- LLM response → Validate JSON schema: Response to check.
- Validate JSON schema → Deterministic continuation: Schema valid.
- Validate JSON schema → Retry or fallback: Schema invalid.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
High run volume measures adoption, not answer correctness
For the preceding 30 days, the team reports more than 9,700 code-review runs averaging under three minutes per merge request. Other results use different units: the audit fixer opened 159 merge requests for vulnerable dependencies, the AI-readiness fixer improved around 80 repositories, the Victoria linter fixer fixed 413 projects, and the merge-conflict resolver ran 921 times. Across the workflows, the reported total exceeds 11,000 executions with a 99% success rate. These figures describe activity, outputs and execution success; the talk does not define success precisely enough to treat 99% as a measure of answer correctness. The useful comparison is between the labeled measures, rather than treating every count as an equivalent completed fix.
Self-service expands who can build this automation. Standardized guardrails allow teams in SRE, security, IT and support to create custom workflow steps. The platform supplies common controls while task owners contribute the procedure and judgment their work requires.
Cost control also happens at the step level. Each LLM step declares its own model, so planning and implementation can use different models instead of assigning the most capable model to everything. A cost-aware router is planned to automate more of that selection. Meanwhile, separating engineering SDLC data, corporate operational data and sensitive payment-production data remains an ongoing responsibility, as does choosing high-impact work from the demand for new automation.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
More capable execution without surrendering control
The remaining platform work addresses several separate constraints:
- Complete sandboxing: Support complex builds, local environments and test suites across project types.
- Resumable sessions: Carry complex, multistep tasks across interruptions or pauses.
- Integrated evaluation: Let teams measure workflow quality within Orbit itself.
- Model flexibility: Refactor orchestration to support different vendors and eventually route tasks to a cost-effective model automatically.
- Harness flexibility: Avoid tying the platform permanently to one agent harness.
The closing advice keeps adoption concrete: pick a repetitive, well-defined task and prove it works before scaling it. Keep predictable operations in code, use the model where judgment adds value, and retain owners, limits and human merge-request review. Orbit’s expansion depends on those controls accompanying each new capability.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
Related talks
- Beating RL With Reflection: GEPA and Optimize Anything
Develops the improvement side of Orbit’s evaluation discussion: using execution traces and diagnostic feedback to optimize prompts, agent programs and reusable repository skills.
Read the complete timestamped transcript
- 0:00
Hello, everyone, and welcome. My name is Edu, and alongside Javi, we represent the AI Platform Experience team at Flywire. Our core mission is to build practical agentic infrastructure that empowers our software engineers while following our established engineering standards and practices. Today, we'll share how structured workflow automation delivers real enterprise value, ensuring control, safety, and reliability across our development process. Before we dive into the deep
- 0:30
technical details of our AI platform, let us give you some essential context about Flywire. Flywire is built to process the world's most complex payments across global industries like education, healthcare, travel, and business services. Today, we serve over five thousand clients across more than two hundred and forty countries around the world. Because we process high-value international transactions, regulatory compliance, privacy, and security are not
- 1:00
optional items. They are core requirements of our business. We operate under strict compliance frameworks like PCI DSS and SOC 2. This means that customer data, personal identification, and payment details must remain completely safe. We cannot simply take sensitive context and pass it to third-party services without strict governance and architectural boundaries. To give you an idea of our engineering organization, we have around four hundred
- 1:30
software engineers distributed globally. Across our teams, we maintain diverse technology stacks, including Java, Ruby, Go, Python, .NET, and PHP. Almost everything we build and run is deployed on Victoria, our internal platform as a service that operates on top of GitLab and AWS infrastructure. Victoria provides standardized build pipelines and consistent deployment practices. So how did our AI journey begin?
- 2:00
About six months ago, back in April, we formally established a dedicated AI platform experience team. Even before that, passionate engineers across Flywire were already experimenting with AI tools, creating skills, building MCP servers, and assembling an early code review bot. That organic activity proved that our engineers wanted AI automation. It also showed that we needed a dedicated team to provide infrastructure
- 2:30
for safe and reliable agentic solutions. Since then, we have moved fast with close to a thousand commits to our internal tool. But the industry does not stop. In the same six months, Claude Code alone published more than a hundred and sixty releases, almost one per day, and the major AI labs released more than twenty new models. Every week brings a new model and a new tool or a new way of working. Our
- 3:00
challenge is not only to build fast but to keep up.
- 3:04
This brings us to Orbit, our own toil killer. Orbit is an internal platform that eliminates daily engineering repetitive tasks by including LLMs directly into structured workflows. Instead of letting AI agents run freely in open-ended loops, Orbit pairs deterministic code with small LLM steps. We crystallize repetitive procedural logic into code, and we call a model only where reasoning is actually needed.
- 3:35
When we evaluated whether to build or buy, building in-house made complete sense for our environment. Frontier models made feature development really fast, which drastically lowers the cost of a custom platform. More importantly, as a financial enterprise handling PCI, PII, and PHI data, keeping execution inside our existing Victoria infrastructure ensures that sensitive data never leaves our controlled environment.
- 4:05
We also skip long vendor security reviews and extra compliance work. So what does a workflow actually look like? Every agent in Orbit is defined in a single YAML file that lives in a repository and goes through the same merge request review as any other code. Take our code review agent as an example. It starts with a trigger, a GitHub webhook that fires when an engineer mentions the review bot on a
- 4:35
merge request. From there, a sequence of deterministic activities fetches the merge request metadata, classifies its risk tier, loads prior findings, and clones the repository. Only then we call the model in an LLM step that can read the code but has no permission to modify it, and that must answer in a strict output schema. Finally, another deterministic step posts the findings back to the merge request. This is what we mean by workflows,
- 5:05
not autopilot. Code handles the predictable parts, and the model is called only where reasoning is actually needed. We choose to start with YAML files and a merge request review process on purpose. YAML is a format our engineers already know, and the review works the way they already work every day. It also keeps the code base AI-friendly. Coding agents can read, write, and review workflow definitions as easily as people can. However, not every use case
- 5:35
comes from an engineering team. For corporate use cases, we are considering an authoring tool in the Orbit UI, where people can build a workflow by dragging and dropping from a set of predefined activities without writing any YAML. A workflow can start in three ways. Engineers and other systems can call Orbit's internal API directly or using our internal CLI. Webhooks from GitLab, Jira, Sentry, and AWS start
- 6:05
a workflow from the moment something happens, such as a new merge request or a new production error. Scheduled jobs run workflows on a fixed cadence, like our daily translation syncs, feature flag cleanups, and knowledge base refreshes. Beyond these entry points, we are currently building an MCP server for Orbit so that the other AI services and tools we use across Flywire can start workflows directly. For example, an engineer will be able to ask Claude in Slack
- 6:35
through Claude Tag to run an Orbit workflow without ever leaving the conversation. We started small with clear high impact use cases. First, the daily engineering work. Automated code reviews on merge requests and our Victoria upgrades agent, which fixes Victorial interfin- findings automatically. Second, translations. One workflow now handles the full cycle. It fetches the new strings, translates them, updates the files, and notifies the teams with the
- 7:05
updated docs. Third, production errors. A Sentry webhook starts the Sentry investigator. It assesses the issue, posts the assessment in Slack, and shares the merge request with the fix in the same place. On the support side, ticket triage classifies new tickets and routes them to the right engineering area. AI readiness scorecards measures how ready a repository is for AI-assisted development, and a fixer acts on the
- 7:35
findings. Finally, the Jira implementer takes a ticket and turns it into a merge request. It works like a small software factory. And the biggest benefits that we found is that we can make changes in bulk across many repositories. That lets us do software engineering at scale. It is very convenient for mi- migrations, library updates, and deprecations. And we also use it to run Claude Doctor and to
- 8:05
launch our own AI readiness scorecard. Even with all this automation, the merge request is still our unit of work, and it is where a human stays in the loop. We operate in a regulated environment, so people still review and approve those merge requests. Let's take a deeper look on the technical architecture of Orbit. Originally, we began with a simple container setup on AWS ECS Fargate,
- 8:35
where the orchestration layer harness and the runtime environment lived inside the same container. As our needs grew, we evolved towards separating the orchestration layer, the agent runtime environment, and the session state into distinct components. This improves isolation, maintainability, and resource allocation. It also makes the system more resilient because an error in the front does not kill the sandbox. And it lets us scale each piece independently and adapt to changing requirements.
- 9:06
Fargate lets us scale tasks elastically so we can run a very large number of agents in parallel. It was also really easy to deploy Orbit because we already had Victoria, our PaaS that scales applications without any effort. But that scale needs guardrails so the platform is not misused. First, timeouts. Every agent stops after a configurable amount of time. Second, rate limits, which are aggressive by default. A broken API integration
- 9:36
could start spawning thousands of agents and make our bill much bigger. The limits keep that under control. Third, concurrency control. Our control plane uses locks to prevent duplicate executions of the same task. For example, if a code review is already running, we drop the duplicated request. Running agents inside Victoria comes with container limits. Victoria uses standard Fargate task definitions, so the containers are lightweight and tightly restricted. Our
- 10:06
baseline agent container includes the common language runtimes, but it intentionally leaves out package managers like Bundler, Maven, and Composer. So heavy agents, like our Jira implementer, cannot easily run native builds or unit tests inside the container. When we started Orbit in April, AWS Lambda microVMs did not exist yet. AWS released them in June, so our first version ran only on Fargate. These are managed microVMs that
- 10:35
work like Lambda functions, resumable processes, so they can pause and continue where they stopped. That fits the nature of agentic execution really well, so we now use them with a runtime chosen by project type. Each tech stack gets its own toolchain quickly in an isolated environment. This is not full sandboxing yet, and we are actively moving there. The goal is to support setups like Docker in Docker or multiple microVMs, so agents can run tests or more complex verifications on
- 11:05
any repository. Inside each LLM step, we did not build our own harness. Instead, we reused the Claude Agent SDK, the same harness that powers Claude Code. This gives us a mature, well-tested harness with tool usage, subagents, and skills out of the box, so we can focus on the workflow rather than on the plumbing. What we add on top is control. We restrict four different things for every step. The network the agent can reach, the
- 11:35
tools it can call, the skills it can load, and the MCP servers it can use, down to the specific tools allowed from each server. All of this is declared in the YAML file itself. A code review step, for example, can read and search the code but cannot edit files or push changes. And our Sentry investigator can query traces through our MCP server, but only with a short list of read-only tools. In practice, each LLM step runs with only the access it needs, and the access is visible and reviewable like any other
- 12:05
code.
- 12:07
Skills themselves come from a single place. At Flywire, we maintain a central repository of skills that is published internally as a Claude Code plugin marketplace. And Orbit connects to that marketplace at build time. This means the same skills works in two places. An engineer can run it in Claude Code on their laptop, and Orbit can run it inside an automated workflow. That shared foundation also shapes our recommendation to teams. Start with the
- 12:37
skill. Skill is cheap to write, easy to iterate on, and useful from day one. Once a team is sure that a task is worth automating, we move it into Orbit and turn it into a workflow. The predictable parts become deterministic code. The model is called only where it adds value, and each run becomes more reliable and less expensive than an open-ended session. Workflows also run in the background, so engineers do not have to sit with an open session and guide it step
- 13:07
by step. That means less context switching and more time for the work that needs them. Beyond runtime isolation, we also rely heavily on structured output to guarantee systemic reliability. Every LLM step in an Orbit workflow enforces strict JSON schemas for model responses. By constraining output formats, we ensure that subsequent execution branches, error handling, and state transitions are driven by deterministic control
- 13:37
flow rather than unpredictable string parsing. If an LLM response fails validation against the expected JSON schema, Orbit automatically triggers a targeted retry or fallback path before proceeding. Another crucial pattern we rely on is isolated component evaluation. Evaluating complex end-to-end agentic workflows in synthetic benchmark environments is often noisy, expensive, and difficult to reproduce consistently.
- 14:07
Instead of trying to evaluate entire workflows from start to finish, our evaluation harness isolates individual LLM steps. By injecting exact historical state and context directly into specific workflow nodes, we can evaluate model output quality, measure prompt adjustments, and catch performance regressions quickly and cost-effectively. So how do we know that an agent is good enough? Today, a new agent usually reaches production after a vibe check. The team tries it on a few real cases and
- 14:36
confirms that it behaves as expected. Once it runs in production, we trace every execution end to end with OpenTelemetry, including each activity, model call, and tool call. We then extract traces from real executions and add them to a golden dataset. For now, each golden dataset is versioned in the repository next to the code, and we run it on demand. Based on those results, we improve the prompt or change the model, and we run the dataset again to
- 15:06
compare. We do not have online evaluations yet, but we are working on them internally. Our goal is to run the whole evaluation loop inside Orbit from the UI or through the MCP server. First, you deploy your agent, then you monitor and evaluate its execution in production. Finally, you improve the agent based on those evaluations without the need to deploy it again. That is our roadmap for evaluations: one place to ship, measure, and improve every
- 15:36
workflow. The operational impact of this approach has been significant across our engineering organization. In the past thirty days alone, our automated code review agent completed over nine thousand seven hundred runs, averaging under three minutes per merge request. Beyond code review, our audit fixer opened a hundred and fifty-nine merge requests to fix vulnerable dependencies, and the AI readiness fixer improved around eighty repositories. The Victoria
- 16:05
linter fixer fixed four hundred and thirteen projects, and the merge conflict resolver ran nine hundred and twenty-one times. Across these workflows, we ran over eleven thousand executions with a ninety-nine percent success rate.
- 16:21
Reflecting on our journey, adopting a self-service model was one of the best decisions we've made. Standardized guardrails allow engineers across SRE, security, IT, and support to build custom workflow steps easily and safely. We also learned that cost control starts with model selection. Not every step needs the most capable model, so each LLM step in a workflow declares its own model. For example, a planning step and an implementation step can use different models.
- 16:51
Matching the model to the task keeps costs under control, and it is why a cost-aware model router is in our roadmap. On the other hand, managing data separation remains an ongoing responsibility. We maintain a strict distillation between engineering SDLC data, corporate operational data, and sensitive payment production data. Additionally, because demand for automation is high, maintaining focus and prioritizing high-impact work is essential.
- 17:21
Looking ahead, our roadmap focuses on expanding our platform features and increasing overall architecture flexibility. We are actively moving towards a complete sandboxing, so agents can handle complex builds, local environments, and test suites seamlessly across all project types. Moving forward, we are also introducing resumable sessions to handle complex multi-step tasks. We are also building more evaluation tools directly into Orbit, so teams can measure the quality of their workflows on the platform itself. In parallel,
- 17:51
we are refactoring our orchestration layer to be model-agnostic, enabling flexible routing across different model vendors, including an automated model router that selects the most cost-effective model for each task. That will help us control costs as we keep scaling the platform. We also, uh, want to make the platform harness-agnostic so that we are not tied to a single harness. To wrap up, here are three things we learned. First, start small. Pick a repetitive,
- 18:21
well-defined task and prove it works before you scale it. Second, use the model only where it adds value. Everything predictable stays as code, and that is what keeps the workflows reliable. And third, keep guardrails and humans in the loop. Owners, limits, and merge request reviews. That is how we move from AI experiments to workflows our engineers use every day.
- 18:46
Thank you all so much for your time and attention today. Feel free to reach out to us in case you have further questions or comments.