The platform
Deploy it once. It runs the agent lifecycle without being asked.
There are two parts. The Brain is everything Keelo already knows — the code it reuses, the lessons from every agent built before, and the live state of every agent running now. The Loop is the six steps that run on top of it: find the work, design the agent, build it, ship it, watch it, and fix it.
[01]The Keelo Brain
Your agents get better because the context does.
The Brain is the control plane, and it is where context accumulates. Context flows into it — from the work discovery observes, from every correction a person makes at an approval surface, from every run the fleet completes — and it flows back out into the agents. It holds three registers: the reusable machinery every agent is assembled from, everything Keelo has learned about how your business actually runs, and the live state of every agent running for you. The middle register is the one that compounds — which vendor sends files that break parsers, what your team calls things, which exceptions get handled by hand and why. None of it is written down anywhere else, and it is why the tenth agent understands your business better than the first did.
[03]Agents
The agent fleet
Self-healing
[02]Context
The Keelo Brain
Learned over time
[01]Connectors
Your systems
ERP · Slack · mail
[01]
Reusable layers
Inherited on day one · the register that crosses deployments
Ingestion and vision, normalization, the agent harness, guardrails, eval gates, observability, and model routing. None of it is written per deployment. It already exists, it has already met real enterprise documents, and it is the difference between a generated agent and a production system.
- Ingestion and vision pipelines
- Unstructured-to-structured normalization
- Agent harness and guardrails
- Eval and QA gates
- Observability and self-healing
- Model routing
[02]
Context
What Keelo has learned about your business · never leaves it
Vendor quirks, house naming, the exceptions your team handles by hand, and the reasoning behind every past decision — recorded with the evidence that justified it. Every entry is a versioned file, so the commit history is a decision trace you can actually read.
- How your systems behave
- Exceptions and how they get handled
- Decisions, with the evidence
- Postmortems: symptom, cause, fix
[03]
Fleet state
What your agents are doing right now · never leaves your cloud
Per-run telemetry from every agent in production, aggregated into accuracy, cost, and latency trends, plus eval history per agent and per output class. This is the register the self-healing loop reads from — which is why observability is a precondition here and not a report.
- Per-run telemetry
- Eval history
- Cost and accuracy trends
- Failure classification
The data boundary
Every Brain runs inside one deployment. What crosses between deployments is how to build agents — never what Keelo learned about your business.
- Your raw data never leaves your deployment
- Not documents, not records, not run rows. What Keelo holds centrally receives aggregates only — accuracy, cost, latency — never source data. The rule is enforced in the repository itself rather than left to anyone's judgment on the day.
- Your workflow logic stays yours
- The business rules, taxonomy, and exception handling encoded into your agent are scoped to your deployment and owned by you. They are not blended into anything shared, and they do not inform anyone else's build.
- What crosses deployments is engineering knowledge
- How a parser survives a merged cell. Which eval catches which class of failure. Which guardrail shape fits an approval surface. That is Keelo's own learning about how to build agents, and it is the reason the second agent costs less than the first.
[02]Register 01, in detail
The moat is not the model. It is everything around it.
Models are a commodity anyone can rent. What compounds is the reusable machinery an agent is assembled from. Every layer below was built once, for a real production system, against real enterprise data.
[01]Read
Ingestion and vision pipelines
Object detection, OCR, and PDF parsing that hold up against documents produced by people who were not thinking about your parser. Handles the scanned page, the merged cell, the photograph of a spec sheet.
[02]Shape
Unstructured to structured normalization
The layer that turns what arrived into what the system needs. Unit reconciliation, format collapsing, entity resolution, and confidence scoring on every field it emits.
[03]Run
Reusable agent harness and guardrails
Permissions, tool access, retries, timeouts, rate limits, fallbacks, escalation paths, and audit trails. The agent inherits all of it. Nobody rebuilds it per deployment.
[04]Grade
Eval and QA gate library
Every output is graded before it ships. Golden sets, holdout sets, per-field scoring, and a pass threshold that blocks release. Evals are not optional and they are not written after the fact.
[05]Watch
Observability and self-healing infrastructure
Structured, per-run logging on every agent, streaming into the pipeline that feeds the repair loop. Observability is not reporting. It is the precondition for a fleet that fixes itself.
[06]Route
Model routing
Frontier models for judgment. Value-tier and open models for volume. Routing is per task, not per vendor, which means a model deprecation is a configuration change and not a rebuild.
A Keelo agent starts at a higher baseline than one built from scratch, and your second agent costs less than your first. Not because the model got better. Because the Brain did.
[03]The Keelo Loop
Six modules. Each runs on its own, hands an artifact to the next, and reads and writes the Brain as it goes.
Discovery that watches the work
A discovery agent observes real day-to-day work in situ, extracts the schema of each repeated workflow, and scores every candidate on automatability and P&L impact.
- Takes in
- Real observed work
- Hands over
- Workflow schema and a scored build queue
[01]Design
Discovery that watches the work, not the org chart.
Most automation programs fail before a line of code is written, because the workflow list came from a meeting instead of from the work.
A discovery agent runs on an employee's machine and observes real day-to-day work in situ. It sees which files get opened, which systems get switched between, which steps repeat, which exceptions recur, and how long each pass takes. It does not ask people to describe their process, because people describe the process they are supposed to follow rather than the one they run.
From that observation, the agent extracts the schema of each repeated workflow and its frequency. It scores every candidate on two axes: how automatable the work is, and what it is worth to the P&L. The output is a ranked build queue, not a report.
- In
- Real observed work
- Out
- Workflow schema and a scored build queue
- Runs on its own
- Runs continuously against real work rather than waiting to be pointed at something. It finds new candidate workflows as volumes shift and exceptions recur, and re-scores the queue on its own.
- Where a person decides
- You approve what enters the build queue.
- Draws from the Brain
- Workflow patterns already seen in comparable operations, and the scoring model refined against every prior discovery.
- Writes back
- New workflow schemas, and what the scoring got right and wrong.
Task schema extraction
Every repeated workflow is reduced to its inputs, transformations, decision points, exceptions, and outputs. That schema is what the next module architects against.
Automatability and impact scoring
Each candidate is ranked on how cleanly it can be encoded and what it costs the business today. Judgment-heavy work is deliberately scored down, not up.
Scoped, auditable observation
Discovery runs on infrastructure you control, against a defined scope agreed in advance, with a complete record of what was observed and what was not.
Observing how enterprise work actually happens is a signal nobody else collects. It is the wedge and it is the data that compounds.
[02]Plan
A frontier model architects the agent before anything is built.
The gap between seeing the work and writing the agent is where most production failures are decided.
A frontier reasoning model takes the workflow schema and produces the agent's architecture. It decides what must be deterministic and what should be reasoned. It specifies the harness, the security controls, the data contracts, and the guardrails. It defines where a human signs off, and on what.
This is the one place in the loop where a premium model earns its price. Architecture is a judgment problem, and judgment is where frontier reasoning is worth paying for. Everything downstream runs on cheaper, routed models, because everything downstream is executing a decision that has already been made well.
- In
- Workflow schema
- Out
- Agent blueprint: harness spec, deterministic/reasoned split, HITL surface, guardrails
- Runs on its own
- Architects the whole agent — the deterministic/reasoned split, the harness spec, the guardrails, the data contracts, and exactly where a person signs off.
- Where a person decides
- An engineer reviews the blueprint before any code is generated.
- Draws from the Brain
- Architecture patterns, and the decisions — with the evidence behind them — from every harness choice already made.
- Writes back
- A new blueprint, and the reasoning that produced it.
Deterministic before reasoning
If a rule can express it, a rule expresses it. Models are used where the input genuinely varies, not where a regular expression would have worked. This is a cost decision and a reliability decision at the same time.
Harness specification
Tool access, permissions, retries, timeouts, escalation paths, and failure modes are specified before implementation rather than discovered in production.
The human-in-the-loop surface
The blueprint names exactly which decisions a person makes, what they see when they make it, and what happens when they reject. Approval is designed, not bolted on.
Guardrails and data contracts
What the agent may read, what it may write, what shape the data must be in at each boundary, and what happens when a contract is violated.
[03]Build
The model writes the agent. The plumbing is why it survives production.
Generating agent code is the easy half. The half that decides whether it still works in six months is underneath it.
The model generates the agent code, the harness, the deterministic rules, the security controls, and the reasoning components against the blueprint. That part is fast, and it is getting faster.
What makes the result a production system rather than a prototype is the layer it is assembled from: ingestion and vision pipelines, unstructured-to-structured normalization, schema mapping, and eval gates that grade every output before it ships. None of that is generated fresh per agent. It already exists, it has already met real enterprise documents, and it is reused.
- In
- Agent blueprint
- Out
- A deployable agent that has passed its eval gate
- Runs on its own
- Generates the agent against the blueprint, assembles it from the Brain's reusable layers, writes the eval set alongside it, and grades itself. It will not ship what it cannot pass.
- Where a person decides
- Release is gated on the eval threshold and an engineer's merge.
- Draws from the Brain
- The reusable layers in full: ingestion, normalization, harness, guardrails, and the eval gates that grade the output.
- Writes back
- Any component general enough for the next agent to inherit, plus the eval sets written alongside it.
Generated against a specification
The model implements a blueprint rather than improvising an architecture. Generated code that satisfies a spec is reviewable. Generated code that satisfies a prompt is not.
Assembled from the Brain's reusable layers
Ingestion, vision, normalization, schema mapping, and guardrails are inherited from the Brain, not written. The engineering that took the longest to get right is the engineering nobody rebuilds.
Eval gates before release
Every output class is graded against golden and holdout sets. An agent that does not clear its threshold does not ship. Evals are written with the agent, not after the first failure.
License-clean by discipline
Permissive open-source only, such as Apache-2.0. Dependency licenses are audited, and copyleft exposure is identified and remediated before anything is deployed into your environment.
Anyone can call an LLM. What makes these agents run in production rather than in a notebook is the engineering underneath — and none of it is rebuilt per agent.
[04]Deploy
Deployed where the work already happens.
An agent that requires people to open a new tool is an agent that gets used for three weeks.
The agent lands in the exact system and approval surface the team already lives in. If the work happens in Slack, the agent lives in Slack. If it happens in the ERP, the agent writes into the ERP. There is no new interface to learn, no new login, and no second system of record.
The standard pattern is simple and it is the one people actually adopt: a file is dropped in the channel the team already uses, the agent runs the pipeline, the result comes back in thread with its confidence and its sources, and a person approves it.
- In
- Deployable agent
- Out
- A live agent inside your system, with an approval surface
- Runs on its own
- Provisions into your environment, wires the integrations, and stands up the approval surface inside the system the team already opens.
- Where a person decides
- You approve the rollout — and every write to a system of record after it.
- Draws from the Brain
- Deployment and approval-surface patterns already proven in other environments.
- Writes back
- Which surfaces held under real use and which needed rework, per system.
Meet the human where they are
The approval surface is chosen to match existing behavior. Adoption is a design constraint, not a change-management problem to solve afterward.
Agents propose, people approve
Nothing reaches a system of record without a person signing off. Where the agent is uncertain, it escalates rather than guessing. It fails safe, never silent.
Runs in your environment
Deployment targets your cloud and your accounts. Data stays inside the environment it already lives in.
Confidence and provenance on every output
Each result arrives with per-field confidence and a citation to where it came from, so the approver is reviewing evidence rather than trusting a number.
[05]Manage
The fleet detects its own failures and opens its own pull requests.
This is the module that breaks services economics.
Every agent streams structured, per-run logs into a monitoring pipeline. That pipeline is not a dashboard. It is the input to the repair loop.
When an agent starts failing — a vendor changes a template, a schema drifts, an upstream API changes shape — the loop detects the anomaly, files the issue, triages it against the agent's history, writes the fix, and opens a pull request. A person reviews and merges. The agent returns to healthy, and the fix is written back to the Brain as prior art for every agent that breaks the same way.
- In
- Live agent telemetry
- Out
- Detected failures, filed issues, merged fixes, a healthy fleet
- Runs on its own
- Watches every run. Detects the regression, files the issue, triages it against the failure history, writes the fix, and opens the pull request.
- Where a person decides
- A person reviews and merges. This step stays human on purpose.
- Draws from the Brain
- The failure library, and the fix history for every agent that broke the same way before.
- Writes back
- Every detection, triage, and merged fix, recorded as symptom, root cause, fix, prevention.
[01]Detect
Telemetry crosses a threshold, an eval starts failing, or an output pattern shifts.
[02]File
The loop opens an issue with the failing runs, the diff in behavior, and the suspected cause.
[03]Triage
The failure is classified against the agent's history and the known failure library.
[04]Fix
The loop writes the change and opens a pull request with the eval results attached.
[05]Merge
A person reviews and merges. This step stays human on purpose.
[06]Healthy
The agent returns to baseline, and the fix becomes prior art for every other agent.
The watchdog
Every agent emits per-run structured telemetry on exit. A separate watchdog process reads it — never the agent's own code judging itself — and turns a failure into a filed, deduplicated, evidence-carrying issue before anyone notices the output was wrong.
[01]
Watch
A filesystem event picks up each run manifest within seconds of the run closing. A slower sweep runs behind it as a backstop, because the failure mode that matters most is the run that never emitted an end event at all.
[02]
Tier 1 — deterministic
Rule-based classification against the failure taxonomy. No model, no token cost, no dependency on an external service being up. This tier alone catches the majority of what goes wrong.
[03]
Tier 2 — semantic
A model pass over findings plus a small sample of clean runs, to catch what rules cannot describe. It runs under a hard daily spend cap and always fails open to Tier 1 — a budget-exhausted or unavailable Tier 2 degrades the watchdog, it never blinds it.
[04]
Fingerprint and file
Findings are deduplicated on a hash of the failure signature rather than the run, so one recurring defect is one issue with an occurrence counter instead of a thousand notifications. The issue carries redacted evidence and the run identifiers needed to reproduce it.
The failure taxonomy
- dangling_run
- Died or hung. No end event was ever written.
- fatal_error
- The run terminated on an unhandled exception.
- fatal_transient
- Killed by something the retry policy should have absorbed.
- api_burn
- Structurally identical API errors in a loop — money burning silently.
- error_streak
- Repeated errors across consecutive runs.
- stage_error
- A stage failed and the pipeline continued anyway.
- empty_output
- Reported success with nothing to show for it.
- partial_status
- Self-reported degraded completion.
- schema_violation
- The instrumentation itself broke.
- latency_ceiling
- Per-run latency budget exceeded.
- cost_ceiling
- Per-run cost budget exceeded.
Could a machine-written change reach your production system on its own?
A watchdog that only files issues still leaves the work to a person. The fix loop closes it — and the architecture is built so the honest answer to “could this change my production system on its own?” is no, enforced by code paths rather than promised by policy.
[01]
It never touches the running agent
The fixer clones the agent's repository at its deployed tag into a scratch directory. It does not read from, write to, or rebuild the running container. The live agent is untouched for the entire attempt.
[02]
Everything executes in a throwaway sandbox
The reproduction, the full test suite, and a differential replay against recorded runs all execute in disposable containers with networking disabled. Nothing the fixer runs can reach your systems, because nothing it runs can reach the network.
[03]
The output ceiling is a draft pull request
There is no merge path anywhere in the fix code. The most an autonomous attempt can produce is a draft PR on the development repository, with the failing reproduction, the diff, and the eval results attached. A draft PR is a proposal, not a deployment.
[04]
Three separate people, three separate steps
A person labels the finding as approved for a fix attempt — without it the attempt never starts. A person reviews and merges the pull request. A person cuts the release that actually deploys. No single approval can carry a machine-written change into production.
Observability is the precondition
Self-healing is not possible without per-run structured logging on every agent from day one. Observability is not a reporting feature bolted on later. It is the substrate the entire loop runs on.
A fleet that largely maintains itself is a fleet whose operating cost does not track its size.
[06]Learn
Every correction makes the whole platform smarter.
Two loops run at once. One improves the agent. The other improves the factory.
The inner loop is per-agent. Each agent improves from its own outputs and from the corrections humans make to them. Every rejection at the approval surface is labeled signal about a real edge case in a real business, which is a far better training input than any benchmark.
The outer loop is per-platform. The pipelines, schemas, guardrails, and eval sets learned building one agent make the next Design and the next Build faster and cheaper. That knowledge feeds back into Design, which means the next discovery starts with a better prior about what this class of workflow looks like.
- In
- Corrections and run history
- Out
- Improved agents, and reusable prior art fed back into Design
- Runs on its own
- Feeds every correction back into the agent and every reusable component back into the Brain, so the next build starts further along than the last.
- Where a person decides
- None required. This is the part that compounds on its own.
- Draws from the Brain
- Fleet-wide accuracy, cost, and latency trends.
- Writes back
- Generalized components, updated patterns, and the prior art the next Design opens with.
How feedback becomes ground truth
Deterministic checks produce proofs. A model judge produces opinions. Neither knows whether the person who asked was actually served — so human reaction is captured as a third and highest tier, and it supervises the other two.
[01]
Approval is the signal, and it costs nothing to give
A reviewer approving or rejecting an output in the surface they already use is the whole capture mechanism. Every result the agent posts is indexed, so a reaction hours or days later still resolves to the exact run, its inputs, and the reasoning trace that produced it.
[02]
A rejection is the highest-signal event in the system
It is treated as fact rather than opinion: it emits a deterministic finding, jumps the diagnosis queue with the context that a human marked this unsatisfactory, and opens an escalation path. A rejection that visibly produces nothing teaches people to stop rejecting.
[03]
Approvals calibrate the judge
An approval on an output the model judge had flagged records a disagreement. That becomes a continuously computed false-positive rate for the judge itself — the alternative is hand-tuning the quality bar after every review round.
[04]
Feedback becomes the corpus
Approved outputs are human-confirmed pairs and seed the eval set. Rejected ones plus their diagnoses become the failure corpus. The eval suite an agent ships with is not the eval suite it has a year later.
Corrections flow into versioned prompts and closed vocabularies, never into model weights. Every change is eval-gated and runs in shadow mode before it is promoted, so improvement is reviewable, attributable, and revertible with a git revert.
Inner loop — the agent improves
Approvals and rejections become the agent's ground truth. Prompts are versioned, evals are regenerated against real production cases, and improvements ship through the same gate as any other change.
Outer loop — the platform improves
Every reusable component built for one agent is written back to the Brain. The next agent inherits it. The cost curve bends down with volume rather than staying flat.
Every agent the line ships lowers the unit cost of the next one. That is the whole reason this is a product and not a project.
[04]Reliability engineering
A pipeline is only as good as the product of its stages.
Reliability multiplies. An eight-stage pipeline where every stage is 95% accurate returns 66% — and every stage feels fine in isolation. To clear 95% end to end, each stage has to hold 99.4%. This is why an agent that demos well degrades in production, and it is the arithmetic that dictates almost every engineering decision below.
- The arithmetic
- ∏ P(stageᵢ)
- 8 stages at 95% each
- 66%
- Required per stage for 95% end to end
- 99.4%
The six rules that follow from it
The model disambiguates. It does not search.
Deterministic passes run first and narrow the space — tiered matching, closed vocabularies, regex extraction, schema constraints. The model is handed the residual it can actually reason about. Across the hardest agents built so far, the two biggest engineering sinks both converged the same way: from asking a frontier model to diagnose, to deterministic matching that escalates only genuine conflicts.
A separate oracle verifies. The model never grades itself.
Every extracted value is re-checked against the source text layer rather than asking the model whether it is confident. An agent asked to review its own work praises it. Verification is a separate deterministic path or a separate model, and it emits a hard pass or fail.
Confidence is a derivation story, not a score.
A number between zero and one tells a reviewer nothing actionable. Confidence is a deterministic ladder — text-confirmed, vocabulary-matched, cross-model agreed, misread-corrected, model-only, contradicted — and every tier carries a plain-English reason and a prescribed action. The reviewer sees why, not how sure.
Silent failure is a design defect, not an edge case.
The most expensive class of bug is output that is quietly incomplete and looks finished. Every internal state that matters is wired to a surface a person actually sees, and a blank field with a note beats a confident guess every time.
Reproducibility is part of the product.
Temperature is zero on every call in a validation path. Two runs over the same input return the same answer, or a reviewer stops trusting the output — and an agent nobody trusts is an agent nobody uses.
The ship gate is a holdout nobody has looked at.
Golden sets guide development; a separate holdout decides release, and it is never inspected while iterating. Building the eval corpus is consistently the longest pole in the work — longer than the scorer, longer than the prompt.
The confidence ladder
- 01 Text-confirmedValue re-read and matched in the source text layer.
- 02 Vocabulary-matchedResolved against a closed, curated vocabulary.
- 03 Cross-model agreedTwo independent passes returned the same value.
- 04 Misread-correctedA known deterministic correction was applied.
- 05 Model-onlyReasoned, with nothing independent to confirm it.
- 06 ContradictedSources disagree. Escalated, never guessed.
[05]Model routing
Frontier models for judgment. Value and open models for volume.
Routing happens per task, not per vendor. Keelo is model-agnostic by architecture, not by press release.
A single model for every step is a cost problem and a reliability problem at the same time. Architecture, ambiguous exception handling, and anything requiring real judgment go to a frontier model, where the premium is worth paying. Extraction, classification, normalization, and high-volume grading go to value-tier or open models, where the cost per run is what makes the workflow economic to automate at all.
Because routing is a configuration layer rather than a hardcoded dependency, a model deprecation or a better price on a new release is a config change validated by evals, not a rebuild.
- Frontier
- Agent architecture, ambiguous exceptions, and decisions where being wrong is expensive.
- Value
- High-volume extraction, classification, normalization, and routine grading.
- Open / self-hosted
- Work that must stay inside your boundary, or where volume makes per-token cost the binding constraint.
The model layer is the part of this stack that will be cheapest and most replaceable in two years. Keelo is architected on that assumption.
[06]Trust, security & IP
Your cloud. Your data. Your IP.
The controls below are conditions of deployment, not options on a pricing page.
Deployed in your environment
Agents run in your cloud and your accounts. There is no multi-tenant platform your workflow data has to pass through.
Data stays where it is
Your data is not used to train models, is not pooled across customers, and does not leave the environment it already lives in.
You own the IP
You own the agent, the code, and the workflow logic encoded in it. Keelo retains its reusable platform layers. That boundary is written into the contract, not left to interpretation.
License-clean by discipline
Permissive open-source only, such as Apache-2.0. Dependency licenses are audited, and copyleft exposure is remediated before deployment. No agent ships with an unresolved license question.
Human approval on every write
No agent output reaches a system of record without a person approving it. Escalation paths are defined at design time. It fails safe, never silent.
Full audit trail
Every run is logged end to end — inputs, model calls, tool calls, outputs, confidence, and who approved what. Every decision is reconstructable after the fact.
[07]How it is built
Seven rules every Keelo agent is built to.
[01]
Agents propose, people approve.
Nothing reaches a system of record without a person signing off. This is the control that makes every other claim on this site defensible.
[02]
You own the IP and the cloud.
Agents deploy into your environment. Data stays where it already lives. You own the code and the workflow logic encoded in it. Permissive open-source licenses only.
[03]
Reusability is the scoring function.
Every component is evaluated on whether the next agent can inherit it. Work that cannot be reused needs a specific reason to exist.
[04]
Deterministic before reasoning.
If a rule can express it, a rule expresses it. Models are used where the input genuinely varies. This is a reliability decision and a cost decision at the same time.
[05]
Evals are not optional.
Every output class is graded against golden and holdout sets before release. An agent that has not been measured has not been built.
[06]
Observability first.
Every agent streams structured, per-run logs from day one. An agent that cannot be observed cannot be operated, and cannot be repaired by the loop.
[07]
Fail safe, never silent.
When an agent is uncertain, it escalates. It does not guess, and it does not quietly degrade.
Get started
The loop is running. Bring it a workflow.
The fastest way to evaluate this is to point discovery at one real workflow and see what comes back in the build queue. That conversation is technical and it happens with the person who will build the system.
Direct: Edward@keelo.ai