Agent harness engineering
Implemented, tested, and deployedVisit Virtu PrepProblem
A conversational interface in a multi-tenant learning platform has to do more than produce a plausible answer. The same words can mean different things for a learner, teacher, or administrator. A useful response must respect the caller's role, the active school, the current application context, and the difference between describing an action and carrying it out.
Personal contribution
I designed and built the harness across context construction, intent routing, structured outputs, validation, and application integration. The work connects model behavior to the real product: which capabilities exist, which users may invoke them, and how an action is represented back to the person making the request.
Team contribution and dependencies
I built and led the Virtu Prep product organization; colleagues and contractors contributed to the surrounding product, interfaces, content, and operational workflows. This case study does not attribute that collective work to me alone.
Provider model APIs, application services, tenant and role data, and upstream libraries. Model output is treated as a proposal, not as authorization.
Implementation
Each turn builds a context pack containing the request and the capabilities available within its scope. The model proposes an intent and parameters. Application code then validates that proposal, checks unresolved inputs, and applies role-aware corrections only within the permitted capability set.
The dispatcher separates actions that can proceed from requests that need clarification or confirmation. Consequential changes stop at a confirmation boundary before execution. The response reflects the action's actual disposition rather than treating generated prose as evidence that something happened.
- Build contextRequest, role, tenant, and available capabilities
- InterpretThe model proposes an intent and parameters
- ValidateCheck scope, structure, and unresolved inputs
- ConfirmConsequential changes require approval
- DispatchRun the authorized action and report its result
The model proposes an action; application code decides whether it may proceed. Invalid requests are rejected, while unresolved requests return for clarification. Actions requiring confirmation stop before execution and resume only through a separate confirmation step.
Evaluation and decision
The tests exercise interpretation, validation, and the confirmation boundary independently. A destructive-action test uses an executor that fails if it is called during the proposal turn. That makes the boundary observable: producing a reassuring confirmation message is not enough if the underlying action has already run.
Measurable acceptance criterion
During a proposal turn, an action that requires confirmation must not invoke its executor.
Evidence and attribution
- Status
- Implemented, tested, and deployed
- Case-study record
- Public case-study record 1.0
- My contribution
- I designed and built the harness across context construction, intent routing, structured outputs, validation, and application integration. The work connects model behavior to the real product: which capabilities exist, which users may invoke them, and how an action is represented back to the person making the request.
- Team contribution
- I built and led the Virtu Prep product organization; colleagues and contractors contributed to the surrounding product, interfaces, content, and operational workflows. This case study does not attribute that collective work to me alone.
- Case-study materials
- Architecture and workflow description, with a step-by-step harness diagram.
- Limitation
- The public description does not establish coverage of every capability, model configuration, or failure mode.
- Next step
- Continue applying the same release boundary as capabilities and model configurations change.
Current status
These mechanisms are implemented in Virtu Prep, covered by targeted tests, and deployed in the application. Individual model configurations and experimental flags retain separate release histories.