Anu Sihra

Anu Sihra

I build evaluations for AI agents: the harnesses, graders and human review that show where an agent fails, and the data that helps fix it.

Forward deployed engineer at Labelbox, working inside frontier AI labs. Based in San Francisco.

Simulated eval run

  • Waiting
  • Setting up
  • Agent working
  • Grading
  • Passed
  • Failed
An illustration of a live run in Avals, my open-source eval runner. Each square is one attempt at a task: the environment is set up, the agent works, then a grader scores the result.

About

I started out building tax software at Barclays in Pune, then moved to the US for a master’s in computer science at Rice. At Paycom I worked on scheduling and payroll systems serving more than 100,000 client accounts, and shipped my first production AI feature: an agent that calls tools across payroll data to catch labor-budget discrepancies.

At Labelbox I’m the engineering point of contact for frontier AI labs. I write code alongside their teams, find where their agents fail, build the evaluations that measure it, and run the expert review programs that turn those failures into training data.

Outside of work I build open-source tools for running and inspecting agent evals.

Work

  1. to now

    Forward deployed engineer, Labelbox

    • Built a full-stack platform for evaluating customers’ AI agents. It connects to their systems over REST, runs agents in sandboxes, and grades every response with LLM judges, human reviewers and guardrails that catch hallucinated or off-policy answers.
    • Designed deterministic graders for resolution rate, answer correctness and failure recovery across 180+ audited rollouts.
    • Shipped a computer-use agent pipeline that generates tasks, runs agents and records full trajectories, with actions, screenshots and step-level rewards: 500+ structured examples.
    • Turned agent failure modes into human-in-the-loop eval and preference-data programs that delivered 10,000+ expert-rated comparisons.
  2. to

    Software engineer, AI, Paycom

    Dallas. Joined as an intern, May to August 2024.

    • Shipped an MCP tool-calling agent that audits labor budgets across scheduling and payroll data, cutting manual audit work by 30%.
    • Rebuilt the Scheduling Import Center with new upload flows and server-side bulk validation. 50,000-row files now import in under 30 seconds, down from more than 3 minutes.
    • Built REST and GraphQL APIs for shift assignments, shift exchanges and real-time labor costs. Query tuning cut data-fetching overhead by 40% under enterprise load.
  3. to

    Software engineer, Barclays

    Pune.

    • Built global tax applications in React, C#/.NET and SQL Server that compute charges across APAC, the UK and the US, and fixed 15 critical production defects with zero-downtime releases.
    • Automated the year-end tax reporting pack, taking generation from 3–4 hours to 40–50 minutes.
    • Ran multi-region tax-data migrations with automated validation, 87% faster than the previous process.

Projects

Avals

A local web app for launching AI agent evaluations and watching every trial as it runs.

Pick an agent, a model and a set of tasks. The launcher builds its options from the agent itself and checks that the API keys a run needs are set before you start. While it runs, every trial moves through setup, the agent’s turn and verification, with a log for each. Afterwards you can step through any trajectory’s reasoning and tool calls, with tokens and cost for each step.

Every event is written to a sequence-numbered log before it’s broadcast, so a run survives a server restart and any client can replay it from any point. Ten or more concurrent jobs stream over one multiplexed WebSocket, and the TypeScript client is generated from the OpenAPI spec, so the whole API is type-checked end to end.

Python, FastAPI, React 19, TanStack Query, WebSockets

forkbench

A benchmark of whether forking a checkpoint beats rebuilding an RL task environment from scratch.

Agentic RL runs the same task again and again, and every attempt needs a clean, ready environment. Most harnesses rebuild it each time: create a sandbox, pull the image, start the container. I measured whether restoring a checkpoint is faster and still correct, on four real Terminal-Bench tasks: 56 trials for about $1.14 of compute.

Restoring cut the reset by 22–61%, and the one-off golden build paid for itself within 1.8 to 8.5 trials. All 25 forks started clean, with no state left over from earlier forks. The saving comes from skipping the image pull and container start, not from faster machines.

Median time to reset a task environment, in seconds
  • Rebuilt from scratch
  • Restored from checkpoint

Lower is faster. For regex-log the two ranges overlap, so its 25% is indicative only. Sandboxes were 2 vCPU and 4 GiB, with the two strategies interleaved per task.

Show the numbers
TaskImageFrom scratchFrom checkpointSaved per trialBreak-even
regex-log29 MB118.8 s (110.4–168.7, n=5)89.5 s (76.8–130.0, n=5)29 s (25%)7.5 trials
chess-best-move216 MB209.3 s (144.1–232.1, n=5)81.6 s (75.6–97.9, n=4)128 s (61%)1.8 trials
build-cython-ext290 MB140.8 s (136.9–216.2, n=5)78.3 s (71.9–124.7, n=4)62 s (44%)3.6 trials
qemu-startup1,249 MB141.4 s (131.4–157.3, n=5)110.6 s (73.3–128.3, n=5)31 s (22%)8.5 trials

Python, Docker, cloud sandboxes, Terminal-Bench, Harbor

HyperFrames Video Studio

A video studio that turns a script into a rendered 1080p video on one machine.

Built on HeyGen’s HyperFrames. It narrates a script with Kokoro TTS, times every sentence with Whisper, lays out a storyboard from 30 animated scene templates and renders an MP4 with ffmpeg, streaming progress to the browser. It also adds timed cutaways to talking-head recordings without breaking audio sync. Everything runs locally, and script to final cut takes under ten minutes.

TypeScript, React, Vite, Express, Kokoro, Whisper, ffmpeg

Routing desk

An operator desk for routing research tasks to experts through an unreliable engine.

The simulated engine usually proposes an expert within 20 seconds, sometimes later, and one time in five never answers at all. The operator sees everything as it happens and can step in at any point. One rule holds it together: the first final state wins, and anything that arrives later is recorded and shown but never applied. Built as a founding-engineer take-home for Terac, with 1,157 unit and integration tests and 16 browser tests.

TypeScript, React, Node, SQLite, Playwright

More on GitHub, including a Gemini scheduling agent that books, moves and cancels appointments through conversation.

Education

Toolkit

Agents and evals
Tool calling and MCP, LLM-as-judge and deterministic graders, guardrails, RAG, RLHF and preference data, computer-use agents
Languages
Python, TypeScript, SQL, Java, C#
Building
React, FastAPI, Node, GraphQL, WebSockets, OpenAPI
Running
AWS, Docker, Kubernetes, PostgreSQL, GitHub Actions

Contact

Putting an agent in front of customers and need to know whether it works? I’d like to hear about it.