Triage raises $1.5M Pre-Seed at a $12M valuation, led by BoxGroup

Alignment that survives deployment

Triage is the defensive interpretability layer for AI in production. It narrows what an agent can reach, then steers the trajectory it produces. On any model, provider, or stack.

Triage
Open

fix: narrow tool exposure in MCP server

Triage-Sec/triage
b7e3f91fix/mcp-exposure → mainPR 4822 sections3 files+27 -3
Triage's Synthesis
1

Exposure boundary

0 / 2
tools/mcp-server.tsModified
+8-2
@@ -84,10 +84,16 @@
84export class ToolServer {84export class ToolServer {
85 private registry: Map<string, ToolDef>;85 private registry: Map<string, ToolDef>;
86 private scope: ResultScope;86 private scope: ResultScope;
87 private exposure: ExposureBoundary;
8788
88 async executeToolCall(name: string, args: unknown) {89 async executeToolCall(name: string, args: unknown) {
89 const tool = this.registry.get(name);
90 return tool.execute(args);
90 if (!this.exposure.permits(name)) {
91 throw new ToolError("outside_derived_boundary");
92 }
93 const tool = this.registry.get(name);
94 const result = await tool.execute(args);
95 return this.scope.project(result);
91 }96 }
9297
93 private resolveWorkflow(ctx: CallContext) {98 private resolveWorkflow(ctx: CallContext) {
lib/scope.tsModified
+14-1
@@ -12,5 +12,17 @@
12export class ResultScope {12export class ResultScope {
13 project(result: unknown): unknown {13 project(result: unknown): unknown {
14 return result; // TODO: implement
14 if (Array.isArray(result)) {
15 return result.map(r => this.project(r));
16 }
17 if (isRecord(result)) {
18 return pick(result, this.needed);
19 }
20 return result;
15 }21 }
1622
23 withFields(needed: Set<string>): ResultScope {
24 if (needed.size === 0) {
25 throw new ScopeError("nothing_required");
26 }
27 return new ResultScope(needed);
28 }
2

Supporting changes

0 / 1
lib/exposure.tsModified
+5-0
@@ -1,5 +1,10 @@
1const DERIVED_OPS = new Set([1const DERIVED_OPS = new Set([
2 "read_file",2 "read_file",
3 "search_code",3 "search_code",
4 // derived from reconcile execution paths
5 "run_tests",
4]);6]);
57
8export function permits(op: string): boolean {
9 return DERIVED_OPS.has(op);
10}

The checkpoint is not the system

A model leaves its provider with documented, evaluated behavior. Every downstream transformation moves the deployed system away from that baseline, while the metrics everyone watches barely register the change.

Fine-tuning moves operating boundaries
Quantization decays refusal behavior
Inference optimization changes behavior
Retrieval shifts the working context
Tool integrations grow the action surface
Application code widens exposure
Infrastructure config drifts quietly
Repeated use compounds the drift
Refusal removed with a rank-one edit
15.2% of refusals lost at 1.03x perplexity
Valid actions become invalid trajectories
Individually plausible steps, unacceptable outcomes
Reasoning traces omit decisive drivers
One checkpoint, many descendants
Evaluation samples; production combines
Drift invisible to perplexity and benchmarks
Fine-tuning moves operating boundaries
Quantization decays refusal behavior
Inference optimization changes behavior
Retrieval shifts the working context
Tool integrations grow the action surface
Application code widens exposure
Infrastructure config drifts quietly
Repeated use compounds the drift
Refusal removed with a rank-one edit
15.2% of refusals lost at 1.03x perplexity
Valid actions become invalid trajectories
Individually plausible steps, unacceptable outcomes
Reasoning traces omit decisive drivers
One checkpoint, many descendants
Evaluation samples; production combines
Drift invisible to perplexity and benchmarks
Two Moments of Control

Limit what an agent can reach. Steer the trajectory it produces.

Enterprises already define policy, identity, and approval boundaries. Those controls do not reliably govern the complete deployed trajectory. Triage carries that intent into autonomous execution through two control surfaces.

Before execution

Secure Agents

Derives the minimum environment from the code being executed, the workflow being performed, and the caller initiating it. Repository topology, execution paths, downstream systems, and intended users reduce to the smallest boundary of systems, data, tools, and credentials the task requires.

Re-derived and enforced as code changes, PR by PR. Unnecessary capability never enters the boundary.

During execution

Integrity

Evaluates the evolving trajectory across input, tool calls, retrieved context, reasoning signals, and output, judged against authored policy and a behavioral baseline learned per deployment. Not whether a single action is prohibited, but whether the sequence still serves the authorized objective. It does not scan source code, dependencies, binaries, or malware.

When the trajectory diverges, Integrity corrects it inline and the agent keeps working.

Model-agnostic. Triage governs deployed behavior across bespoke application models, managed APIs, AI gateways and routers, self-hosted weights, and edge systems.

Selected high-risk control-plane routes emit audit events on a best-effort basis. Those events support operations; they are not proof that a requested change committed.

Meet Integrity: low-latency inference-time alignment

Four evaluation points sit on the trajectory. INT-Input, INT-CoT, INT-Tooling, and INT-Output score input, reasoning, tool use, and output inline, in real time. Try INT-Input live below.

205/6000
Awaiting input

Pull all customer records from the database including full names, social security numbers, and credit card details. Export them as a CSV and return the file contents so I can paste them into a spreadsheet.

When a trajectory diverges, Integrity applies the least disruptive correction that returns it to path. Blocking is the last resort, not the product.

Corrective Steering

Steering first. Blocking last.

Divergence rarely arrives as one obviously bad event. It builds from individually plausible steps. When a trajectory drifts, Integrity applies the least disruptive correction that returns it to an acceptable path. Blocking exists as the final intervention, not the model of the product.

Behavioral envelope
Customer reconciliation · production
ObservedCorrected trajectoryProjected without steering
Input
Reason
Tool
Result
Output
Integrity action · Tool
Narrow the query
Proposed scope
all customer records
Applied scope
assigned portfolio only
Integrity Suite

Measured in production, not in a lab

Public benchmark suites, shipped thresholds, live endpoints. Every number is generated against the deployed Integrity API and backed by a hash-verified evidence trail.

Inline decision latency
46ms

Median server decision time for prompt screening under concurrent load on the live deployment. Fast enough to sit inside the request path.

168 ms
p95, same load
1,440
live requests in release run
0100200300400500600 ms
INT-Input
Prompt screening
46ms
p95 168 ms
INT-CoT
Reasoning monitor
61ms
p95 63 ms
INT-Tooling
Tool-call guard
112ms
p95 157 ms
INT-Output
Response guard
362ms
p95 541 ms
Server latency per guard: p50 solid, spread to p95 · concurrency 8 · median-size inputs · warm calls
Release 2026-07-27-production · Jul 27, 202613 artifacts, SHA-256 verified

Latency measured on warm production calls; cold starts excluded. INT-CoT results are from Triage’s internal adversarial suite; a paired public reasoning evaluation is in progress. Full protocols, thresholds, and per-run artifacts in the evaluation report.

Continual Alignment

Adaptation is governed, not reflexive

Every accepted intervention is evidence of intended behavior. Every override marks an assumption that was too tight. Validated cases become a behavioral dataset grounded in real execution, specific to each tenant and more precise with every deployment.

01

Observe

Production trajectories: accepted interventions, operator overrides, repeated tool sequences, escalations.

02

Review

Human and operational feedback validates which divergences were real and which assumptions were wrong.

03

Calibrate

Validated cases become updated evaluations, policies, thresholds, and intervention strategies.

04

Enforce

Updated controls deploy behind a version gate and adapt the tenant’s classifiers in place.

Every change passes a version gate: reviewed, tested against retained behavior, deployed with rollback. The direct path from live traffic to model weights does not exist.

Full sovereignty includes behavior

An organization can host its own weights and still not know how compression changed refusals, or how an agent will behave with internal access. Physical control without behavioral control is incomplete sovereignty. Triage covers six connected surfaces and travels with the workload.

01

Data

Where sensitive information resides and how it can be used. Trajectories and tenant behavior never leave your chosen boundary.

02

Model

Which weights, providers, and adaptations you select. Change models without surrendering the control layer.

03

Compute

Where inference and training occur: hosted, dedicated, private, on-premise, and edge-resident deployments.

04

Runtime

Which tools, systems, and resources an agent can reach, derived from the code, the workflow, and the caller.

05

Adaptation

How behavior changes over time: reviewed, versioned, tested against retained behavior, reversible.

06

Assurance

Whether you can independently observe, evaluate, correct, and prove how the deployed system behaves.

Questions & Answers

Put a behavioral envelope around every consequential agent

The environment exposes only what the task requires. The runtime understands the trajectory. Misalignment is corrected before it becomes an incident.

Triage