01

·

·

By: Bereketab Tessema

A hybrid state model for long-running agent work

A hybrid state model for long-running agent work

Combining structured records with model judgment to orchestrate long-running agent work.

Combining structured records with model judgment to orchestrate long-running agent work.

At Corridor, agents are handling a growing share of the work needed to manage companies’ employee benefits. A single outcome, like getting a company insurance quotes, spans several email threads, several agents, and people who reply on their own schedule. Janus is the central agent that holds that work together. For every open goal, Janus weighs the facts our records hold against its own judgment, decides what happens next, and hands that work to the right specialist agent.

Here it is handling one incoming email:

From an incoming email to dispatched work



On their own, the records may suggest the goal is ready: every item on its checklist is filled in. Janus looks at the context as well, so it catches what the checklist can’t: quotes run today would be missing two people. So it splits the work. Quoting the current employees goes straight to a quoting specialist, and updating the quotes waits, with nothing running, until the new hires’ details arrive.

Results

Our agents now take on 9.4× as many large jobs a week and do 4.6× the advisor hours of client work they did in the first week we measured. They reach 5× as many client milestones, too.

Weekly growth over three months


Weekly growth over three months, relative to the first week: large jobs 9.4×, milestones 5×, advisor hours 4.6×, with a marker where Janus starts.

Weekly counts from Corridor’s production agents and client records, August 3 to November 1, 2026, each relative to its first week. Large jobs took 50 or more tool calls. Advisor hours are the estimated time an advisor would have spent. Milestones are client stages reached for the first time.

Jobs that big cross several systems and several days of correspondence, and an agent can only take one on if it can find out exactly where the client stands before it starts. That’s the record Janus keeps, and with every client’s goals tracked, finished work turns into the next step without waiting for someone to notice.

How far agent work goes


Each line is one thread of agent work. Single agent requests stop after about one task; threads coordinated by Janus keep finishing tasks across many runs.


A sample of 41 threads of agent work from Corridor’s production agents, August 3 to November 1, 2026. Each line moves right as agents finish tasks and up as they take more actions. Each dot marks where the work went back to an advisor.

Three ideas shape Janus:

  1. Track goals and steps separately. A goal stays open until the business outcome is met. A step is one concrete thing to do toward it. Finishing a step doesn’t mean the goal is met, and an open goal doesn’t mean nobody is working on it.

  2. Let deterministic code gather the facts; let the model judge them. For each kind of goal, our backend knows which records to check. Whether those records mean the goal is met is a judgment, so Janus makes that judgment and saves each decision with its reasoning.

  3. Treat every finished run as new information. When an agent finishes a step, its report goes back to Janus, which decides what it means for the goal. The run doesn’t get to declare the goal done.

Janus plans the work and hands it to specialists

Janus doesn’t do the client work itself. Specialist agents do: they file incoming documents into each client’s records, request and compare quotes, build proposals, fill out insurer applications, set up employee sign-up, and draft email when someone needs to be contacted. Janus decides what should be done and when, and our backend stores the record and checks every change to it. They work in a loop:

How work moves through the system


New information starts a run; Janus updates the goals and steps; a specialist does each step; the specialist's report goes back to Janus and becomes new information.


Goals draw on both records and judgment

Most goals are recurring business outcomes that follow a company’s year, such as getting health insurance quotes, confirming the plans the company chooses, or getting every employee signed up for coverage. Janus can also track one-off goals as they come up.

For each kind of goal, the backend knows which records to look at. For “get health insurance quotes,” that includes the quote requests we’ve sent and the quotes that have come back. But it deliberately doesn’t decide whether the goal is met. Three returned quotes might mean we’re done. Or the quotes might be priced against last month’s employee list, or the client might have said in an email that they want different plan options. The records are facts; whether the goal is met is a judgment. Janus makes that judgment with the records and the correspondence in front of it.

In our early evaluations, Janus made these calls more accurately than a human operator. Each kind of goal has its decision framework written down, so Janus applies it the same way every time. It also reviews every record and message tied to the goal, where an operator juggling many clients can miss one.

Janus also tracks milestones toward each goal. A goal can stay open for a long time, and milestones show how far along it is: the points where something important happened on the way to the outcome. Each kind of goal has its own. Janus records a milestone when it sees evidence of it, often in an agent’s report or a client’s email rather than in our records, and saves when it happened, why Janus believes it did, and the evidence behind it. If later information shows a milestone was wrong, Janus corrects it, and the goal keeps the history of both.

How a goal gets decided

New information updates backend records and goes to Janus. The goal's status and next steps draw on both records and Janus's judgment; specialists do the steps and their reports return as new information.


New information updates our records and goes to Janus. Each goal draws on both: the records our backend gathers for that kind of goal, and Janus’s judgment of what they mean.

Janus updates the plan as things change

When new information arrives, Janus reads the company’s open goals and steps, recent history, and any advisor instructions, then writes its changes: add a step, reschedule one, cancel one, close a goal. Each change comes with its reason and evidence.

A step can be scheduled for later. When it comes due, the specialist rereads the current state before acting, so the work reflects what’s true now rather than what was true when the step was planned.

Every decision makes Janus better

When the records and the correspondence disagree, Janus flags the conflict instead of guessing. In one case, a client emailed a usable bank document while our records still pointed to an older one. Janus didn’t overwrite the record or ignore the email; it noted the conflict on the goal, with links to both.

That flag is one of many signals the system produces. Every decision Janus makes is saved with what it saw, what it decided, and why. Advisors edit drafts, cancel steps, and reopen goals. Specialists report what they did and what they skipped.

Feedback from every run improves the next

Every run: new information, Janus decides, specialist acts, report. Across runs, decisions, conflict flags, advisor corrections and specialist reports improve records, judgment and specialists.


The work loop runs on every piece of new information. The improvement loop runs across all of them, and each pass makes the next run’s records, judgment, and work better.

We use all of it to make the system better: the records Janus reads, the judgments it makes, and the work it hands to specialists. The more work runs through Janus, the more signal it produces, and the better it gets.

Create a free website with Framer, the website builder loved by startups, designers and agencies.