Research
Inside χ-Bench’s healthcare workflows
A benchmark for complete healthcare workflows across providers and health plans.
Read the storyResearch, engineering, and ideas from Actava.ai.
Research
A benchmark for complete healthcare workflows across providers and health plans.
Read the storyResearch
How evaluation failures guide training data for a healthcare foundation model.
Read the storyProduct
How verified workflow experience supports training and checkpoint selection.
Read the story117 videos
VideosWatch video
Stated limits are a feature, not an apology. There's a strong temptation to describe an agent purely by what it can do. The teams that get trusted do the opposite. A stated limit is checkable. A capability claim usually isn't, which is precisely why the limit carries more weight. It sets the test. "Never submits without approval" is something a reviewer can verify in a single run. "Intelligent" is something nobody can falsify. It survives contact. Overstated capability gets found out on day one of real use. Understated capability is discovered as a pleasant surprise. And it names the owner. Saying what the agent will not decide is the same sentence as saying who does, and that's the one the clinician, or the lawyer, actually needs to hear. So lead with the boundary. It's the part people can check, and checking is how trust gets built.
VideosWatch video
The model was never the hard bit. Every agent project has a thrilling first week and a difficult second month. The gap between them is entirely made of unglamorous work. None of that second month is about model quality. It's about whether the thing survives contact with an organization. Three things decide it. Who can see it. Access granted per agent to named people. Not everyone with a login, and not a spreadsheet somebody maintains by hand. What it cost, attributed to a team, a project, a person. A pilot with no cost story doesn't get a second quarter. And what changed. Versions, diffs, and a note saying why. Six months in, nobody remembers, and the person who made the change has moved teams. The demo is the easy half. The boring part is the half that's still running next year.
VideosWatch video
One answers you. The other changes something. The word "agent" is used for anything with a text box. The distinction that actually matters is much simpler than the marketing, and three questions settle it without reading a line of configuration. Does it act? A chatbot returns text. An agent calls tools, writes records, sends things. The blast radius is different, so the governance has to be too. Does it persist? A plan, a memory, a scheduled next step. Something has to survive the conversation. If nothing does, you have autocomplete with a personality. And the one people skip: who is accountable? The moment software acts on your behalf, somebody owns what it did. An agent with no named owner is just an incident with a delay. So the useful question was never whether something is agentic. It's what it touches, and who answers for it. If nothing changed, nothing happened.
VideosWatch video
The blank prompt is the most expensive place to start. The hardest part of building an agent isn't writing the prompt. It's knowing what a good one for this job even looks like. Starting from an existing agent isn't laziness. It's starting from somebody else's finished argument about how the work should be done. Three things come with it. You inherit the shape. Which steps, in what order, with what handoffs. That structure is most of the design, and it's the part people new to this get wrong. You inherit the guardrails. The rules somebody added after something went badly. Nobody thinks of those on day one, and that is the expensive knowledge. And you inherit the tooling. Which systems it calls, and which it deliberately does not. Wiring is tedious work, and inheriting correct wiring is a genuine head start. Then change all of it, if you like. But change it from a starting point that already worked.
VideosWatch video
Paste the brand guidance you already have, and every PDF, Word doc, and deck an agent exports follows it. There is a specific, unglamorous tax on agent output. Your agent writes a genuinely good report, and then someone spends an hour reformatting it so it looks like it came from your organization rather than a machine. Document themes remove that step. One theme defines how everything your agents export looks, across PDF, Word, PowerPoint, and HTML. The part worth watching is the input. You don't configure a theme field by field. You paste what you already have, as prose. Extract from Brand Docs takes pasted brand guidance or uploaded files, whether that's PDF, DOCX, TXT, CSS, or JSON, and maps it onto a theme. Every organization already has this document somewhere. Retyping it into a form is exactly the kind of work nobody should be doing. Then it reads that prose and builds the theme from it. A primary color, a secondary, an accent, and the hex values come through exactly. Serif headings in sentence case, body text in a named face. The logo lands top left because that's what the text asked for. And the footer line the guidance said must appear on every export becomes the footer. That extraction is an inference, so you check it before you trust it. The theme is presented for review before the card is created, covering colors, logo placement, typography, footer, table, and callout styles. Reviewing it first is the difference between a shortcut and a liability. Alongside it sits a live preview of the export: headings in your color, note, warning, and tip callouts, a styled table, and the footer at the bottom of the page, pulled straight from the guidance you pasted. One theme, four export formats, with per-format overrides for the cases where a slide deck genuinely needs different rules than a report. Consistency across formats is exactly what hand-formatting fails to deliver. Your agents were already writing the content. This is what stops it from looking like they did.
VideosWatch video
An answer without a source is a guess with better grammar. A fluent answer and a correct answer look identical until somebody checks. Citations are how you make checking cheap. Requiring a citation for every claim does more than improve accuracy. It changes who has to do the verifying. Without sources, every answer needs a full re-check by somebody who already knows the material. Which means the agent saved nobody any time. It moved the work rather than removing it. With sources, verification becomes a spot check against a named document and a named section. Minutes instead of hours, and a junior person can do it. And there's a side effect that's easy to miss. A claim the agent cannot source becomes visible as a claim it cannot source. That's often the most useful thing the run produced. Fluency was never the hard part. Being checkable is.
VideosWatch video
Two scored runs side by side, down to the metric, then down to the row that moved. Changing an agent is easy. Knowing what the change actually did is the hard part, and a single overall score cannot tell you. One number against another number is an argument. A named metric and a named row is a finding. Every experiment leaves a scored record behind: the overall number, the agent version it ran against, and a breakdown by metric. A score in isolation means very little. A score next to another run of the same dataset means quite a lot. So put two of them side by side. Comparing two runs produces a scorecard listing every metric with both scores and the delta between them, which means the metrics that didn't move visibly stay put. In this comparison the citation check is identical in both runs, zero delta, while a single metric accounts for the entire difference. Separating the thing that changed from the things that didn't is most of the diagnostic work, and it happens in one glance. Then it narrows again. The per-row comparison scores each case in both runs and shows the difference, and here two rows are identical while one row accounts for the whole gap. That row is a specific case with a specific input. Someone can open it and read it. That's not a number to argue about in a meeting. That's a row you go and read. A score you can't decompose is just a number. A score you can trace to a metric, and then to a row, is a test.
VideosWatch video
Agents run on their own. This is the queue that tells you which ones need a person. Autonomy is only tolerable if it is observable. Your agents are working right now, so the question isn't whether they're running. It's which of them needs you. The interesting screen is not the one where an agent works. It's the one that tells you which agents are stuck on you. The live monitor lists every run in flight across the organization, and each one declares its state: awaiting you, held for approval, or running. Agents that work while nobody is looking are only safe if there is one place showing you all of them. Nothing is buried in somebody else's browser tab. Open a run, and you get its history, with the duration and the operating-unit cost of every attempt, who started it, and how it ended. Look at what's actually in that list, because it isn't a row of green ticks. Rejected. Rejected again. Awaiting approval. Somebody read what this agent drafted and said no, twice. A gate you cannot audit is a gate you cannot trust, and rejections are the evidence that the review is real. That is what a working gate looks like from the outside. Approver groups are the mechanism underneath. Each one carries a policy, whether that's all must approve, a majority, or the first available reviewer, and a timeout so nothing waits forever on somebody who is on leave. Different decisions deserve different quorums, and none of them should stall indefinitely. An agent that runs on its own is only safe if you can see it and stop it. A queue of what needs you, and a record of what you refused. That's oversight you can actually operate.
VideosWatch video
Demos show one. Operations have a backlog. Almost every agent demo shows a single case working beautifully. The operational question is the other one: what happens when there are five hundred? Processing a list isn't the same job as processing an item, and the differences show up straight away. The input is a list. Real work arrives as a cohort, a worklist, a backlog. If the only way in is a typed question, then somebody is doing the typing, and that somebody is the bottleneck. Failure becomes partial. Four hundred succeed and eleven fail, so you need per-item runs you can retry individually, not one enormous run that's simply broken. And audit becomes per row. Someone will eventually ask what happened in one specific case, and that answer has to be available without replaying the entire batch. That's the line between an agent that helps a person and an agent that clears a queue.
Bring one workflow your team still runs by hand. We'll show you the agent that runs it.
Research, engineering, and ideas from Actava.ai.
Research
A benchmark for complete healthcare workflows across providers and health plans.
Read the storyResearch
How evaluation failures guide training data for a healthcare foundation model.
Read the storyProduct
How verified workflow experience supports training and checkpoint selection.
Read the story117 videos
VideosWatch video
Stated limits are a feature, not an apology. There's a strong temptation to describe an agent purely by what it can do. The teams that get trusted do the opposite. A stated limit is checkable. A capability claim usually isn't, which is precisely why the limit carries more weight. It sets the test. "Never submits without approval" is something a reviewer can verify in a single run. "Intelligent" is something nobody can falsify. It survives contact. Overstated capability gets found out on day one of real use. Understated capability is discovered as a pleasant surprise. And it names the owner. Saying what the agent will not decide is the same sentence as saying who does, and that's the one the clinician, or the lawyer, actually needs to hear. So lead with the boundary. It's the part people can check, and checking is how trust gets built.
VideosWatch video
The model was never the hard bit. Every agent project has a thrilling first week and a difficult second month. The gap between them is entirely made of unglamorous work. None of that second month is about model quality. It's about whether the thing survives contact with an organization. Three things decide it. Who can see it. Access granted per agent to named people. Not everyone with a login, and not a spreadsheet somebody maintains by hand. What it cost, attributed to a team, a project, a person. A pilot with no cost story doesn't get a second quarter. And what changed. Versions, diffs, and a note saying why. Six months in, nobody remembers, and the person who made the change has moved teams. The demo is the easy half. The boring part is the half that's still running next year.
VideosWatch video
One answers you. The other changes something. The word "agent" is used for anything with a text box. The distinction that actually matters is much simpler than the marketing, and three questions settle it without reading a line of configuration. Does it act? A chatbot returns text. An agent calls tools, writes records, sends things. The blast radius is different, so the governance has to be too. Does it persist? A plan, a memory, a scheduled next step. Something has to survive the conversation. If nothing does, you have autocomplete with a personality. And the one people skip: who is accountable? The moment software acts on your behalf, somebody owns what it did. An agent with no named owner is just an incident with a delay. So the useful question was never whether something is agentic. It's what it touches, and who answers for it. If nothing changed, nothing happened.
VideosWatch video
The blank prompt is the most expensive place to start. The hardest part of building an agent isn't writing the prompt. It's knowing what a good one for this job even looks like. Starting from an existing agent isn't laziness. It's starting from somebody else's finished argument about how the work should be done. Three things come with it. You inherit the shape. Which steps, in what order, with what handoffs. That structure is most of the design, and it's the part people new to this get wrong. You inherit the guardrails. The rules somebody added after something went badly. Nobody thinks of those on day one, and that is the expensive knowledge. And you inherit the tooling. Which systems it calls, and which it deliberately does not. Wiring is tedious work, and inheriting correct wiring is a genuine head start. Then change all of it, if you like. But change it from a starting point that already worked.
VideosWatch video
Paste the brand guidance you already have, and every PDF, Word doc, and deck an agent exports follows it. There is a specific, unglamorous tax on agent output. Your agent writes a genuinely good report, and then someone spends an hour reformatting it so it looks like it came from your organization rather than a machine. Document themes remove that step. One theme defines how everything your agents export looks, across PDF, Word, PowerPoint, and HTML. The part worth watching is the input. You don't configure a theme field by field. You paste what you already have, as prose. Extract from Brand Docs takes pasted brand guidance or uploaded files, whether that's PDF, DOCX, TXT, CSS, or JSON, and maps it onto a theme. Every organization already has this document somewhere. Retyping it into a form is exactly the kind of work nobody should be doing. Then it reads that prose and builds the theme from it. A primary color, a secondary, an accent, and the hex values come through exactly. Serif headings in sentence case, body text in a named face. The logo lands top left because that's what the text asked for. And the footer line the guidance said must appear on every export becomes the footer. That extraction is an inference, so you check it before you trust it. The theme is presented for review before the card is created, covering colors, logo placement, typography, footer, table, and callout styles. Reviewing it first is the difference between a shortcut and a liability. Alongside it sits a live preview of the export: headings in your color, note, warning, and tip callouts, a styled table, and the footer at the bottom of the page, pulled straight from the guidance you pasted. One theme, four export formats, with per-format overrides for the cases where a slide deck genuinely needs different rules than a report. Consistency across formats is exactly what hand-formatting fails to deliver. Your agents were already writing the content. This is what stops it from looking like they did.
VideosWatch video
An answer without a source is a guess with better grammar. A fluent answer and a correct answer look identical until somebody checks. Citations are how you make checking cheap. Requiring a citation for every claim does more than improve accuracy. It changes who has to do the verifying. Without sources, every answer needs a full re-check by somebody who already knows the material. Which means the agent saved nobody any time. It moved the work rather than removing it. With sources, verification becomes a spot check against a named document and a named section. Minutes instead of hours, and a junior person can do it. And there's a side effect that's easy to miss. A claim the agent cannot source becomes visible as a claim it cannot source. That's often the most useful thing the run produced. Fluency was never the hard part. Being checkable is.
VideosWatch video
Two scored runs side by side, down to the metric, then down to the row that moved. Changing an agent is easy. Knowing what the change actually did is the hard part, and a single overall score cannot tell you. One number against another number is an argument. A named metric and a named row is a finding. Every experiment leaves a scored record behind: the overall number, the agent version it ran against, and a breakdown by metric. A score in isolation means very little. A score next to another run of the same dataset means quite a lot. So put two of them side by side. Comparing two runs produces a scorecard listing every metric with both scores and the delta between them, which means the metrics that didn't move visibly stay put. In this comparison the citation check is identical in both runs, zero delta, while a single metric accounts for the entire difference. Separating the thing that changed from the things that didn't is most of the diagnostic work, and it happens in one glance. Then it narrows again. The per-row comparison scores each case in both runs and shows the difference, and here two rows are identical while one row accounts for the whole gap. That row is a specific case with a specific input. Someone can open it and read it. That's not a number to argue about in a meeting. That's a row you go and read. A score you can't decompose is just a number. A score you can trace to a metric, and then to a row, is a test.
VideosWatch video
Agents run on their own. This is the queue that tells you which ones need a person. Autonomy is only tolerable if it is observable. Your agents are working right now, so the question isn't whether they're running. It's which of them needs you. The interesting screen is not the one where an agent works. It's the one that tells you which agents are stuck on you. The live monitor lists every run in flight across the organization, and each one declares its state: awaiting you, held for approval, or running. Agents that work while nobody is looking are only safe if there is one place showing you all of them. Nothing is buried in somebody else's browser tab. Open a run, and you get its history, with the duration and the operating-unit cost of every attempt, who started it, and how it ended. Look at what's actually in that list, because it isn't a row of green ticks. Rejected. Rejected again. Awaiting approval. Somebody read what this agent drafted and said no, twice. A gate you cannot audit is a gate you cannot trust, and rejections are the evidence that the review is real. That is what a working gate looks like from the outside. Approver groups are the mechanism underneath. Each one carries a policy, whether that's all must approve, a majority, or the first available reviewer, and a timeout so nothing waits forever on somebody who is on leave. Different decisions deserve different quorums, and none of them should stall indefinitely. An agent that runs on its own is only safe if you can see it and stop it. A queue of what needs you, and a record of what you refused. That's oversight you can actually operate.
VideosWatch video
Demos show one. Operations have a backlog. Almost every agent demo shows a single case working beautifully. The operational question is the other one: what happens when there are five hundred? Processing a list isn't the same job as processing an item, and the differences show up straight away. The input is a list. Real work arrives as a cohort, a worklist, a backlog. If the only way in is a typed question, then somebody is doing the typing, and that somebody is the bottleneck. Failure becomes partial. Four hundred succeed and eleven fail, so you need per-item runs you can retry individually, not one enormous run that's simply broken. And audit becomes per row. Someone will eventually ask what happened in one specific case, and that answer has to be available without replaying the entire batch. That's the line between an agent that helps a person and an agent that clears a queue.