PRAE The agent is autonomous. The execution isn’t.
PRAE governs protected agent actions at runtime. At supported execution boundaries it evaluates each governed call against your policy before it runs — allow, hold for a person, or deny — and produces verifiable evidence of every decision and intervention.
Built your own agent? PRAE governs agents built into your applications — without a model or a proxy in the execution path. Custom agents →
- ◆ Sees each tool and API call your agent proposes
- ◆ Judges it at the execution boundary, before it runs
- ◆ Enforces deterministic policy: allow, refuse, hold
- ◆ Mounts in your own tool loop — keep your framework
AGENTS.md tells the agent. PRAE controls the agent. Keep the instruction files you already have — PRAE reads them, proposes the enforceable part as rules you review, and on the supported harness profile seals what the agent was actually told.
Foundation Models · Agent Frameworks · PRAE — Control Plane · Enterprise Systems · Observability
The architectural problem
Enterprise agents can execute. They cannot reliably carry the enterprise with them.
The result: agents operate against an incomplete model of the enterprise — and knowledge never compounds.
Fragmented
Context is scattered
Enterprise knowledge lives across systems, schemas, repositories, policies, and people. Agents typically see only a partial slice of it.
Ephemeral
Execution disappears
When an agent solves a hard workflow or surfaces an edge case, the context behind that success rarely outlives the task.
Repeated
Nothing compounds
The next execution rebuilds the same retrieval, state, rules, and memory from scratch. Effort duplicates. Failures repeat.
Agentic artifact discovery
PreviewKnow what enters your agent fleet. Control what executes.
Discover agents, MCP servers, skills, models, binaries, and extensions across your environment. Connect inventory and risk context to the runtime controls that determine what agents can actually do.
Fleet-wide discovery is on the roadmap. What PRAE discovers today is listed in this section, each at its real status, and the catalog below is sample data.
What PRAE discovers today
- Instruction files in a workspace Shipping
Every AGENTS.md, CLAUDE.md, .cursorrules and .windsurfrules an agent would be given, found by walking up from the working directory to the project root and listed with what each says, file by file and line by line.
$ prae instructions
- Skills in a workspace In development
Skills found in a workspace and the user’s home, each with an integrity hash and its declared capabilities held against what it is observed doing. Runs in PRAE’s demo today, not yet in the CLI.
- Fleet-wide artifact inventory On the roadmap
Agents, MCP servers, models, binaries, browser and IDE extensions across an environment. Not built — the catalog below is sample data.
What an inventory of an agent environment would list: each artifact, who published it, what it can reach, and where it was found.
- support-triage-agent Custom agent
Publisher: Acme platform team
Reads support tickets, drafts replies and issues refunds below a threshold.
- ticketing API
- payments API
Illustrative risk: High Sample · Internal repository - release-notes-bot Scheduled agent
Publisher: Acme developer experience
Summarises merged changes into release notes once a week.
- repository read
Illustrative risk: Low Sample · CI configuration - coding agent session Developer agent
Publisher: Engineer workstation
A coding agent running with a developer’s files, shell and network.
- files
- shell
- network
Illustrative risk: High Sample · Developer workstation
- files-readonly MCP server · stdio
Publisher: Example Labs
Exposes read access to one project directory.
- files (read)
Illustrative risk: Low Sample · Public registry listing - crm-connector MCP server · HTTP
Publisher: Acme sales engineering
Looks up and updates customer records for an agent.
- customer records
- network
Illustrative risk: Medium Sample · Agent configuration file - ops-shell MCP server · stdio
Publisher: Unknown publisher
Runs shell commands on whichever host starts it.
- shell
Illustrative risk: High Sample · Developer workstation
- refund-agent Agent skill · SKILL.md
Publisher: Acme payments team
Issues customer refunds through the payments tool.
- payments API
- external HTTP
Illustrative risk: High Sample · Workspace skills folder - changelog-writer Agent skill · SKILL.md
Publisher: Example Labs
Formats commit history into a changelog entry.
- repository read
Illustrative risk: Low Sample · Public skill listing - db-migrate Agent skill · SKILL.md
Publisher: Acme data platform
Generates schema migrations and applies them.
- database
- shell
Illustrative risk: High Sample · User skills folder
- general-chat-large Hosted model endpoint
Publisher: Example model provider
A general-purpose model reached over a hosted API.
- prompts leave the network
Illustrative risk: Medium Sample · Agent configuration file - code-small-local Local model weights
Publisher: Example open-weights project
A small code model run on the developer’s machine.
- local only
Illustrative risk: Low Sample · Developer workstation - embedder-base Embedding model
Publisher: Example model provider
Turns documents into vectors for retrieval.
- document corpus
Illustrative risk: Low Sample · Service configuration
- artifact-uploader CLI binary
Publisher: Example Labs
Uploads build outputs to remote storage.
- files
- network
Illustrative risk: Medium Sample · Release download - lint-runner CLI binary
Publisher: Example open-source project
Checks source files against style rules.
- files (read)
Illustrative risk: Low Sample · Package manager install - cluster-helper CLI binary
Publisher: Unknown publisher
Wraps cluster administration commands for an agent.
- cluster credentials
- shell
Illustrative risk: High Sample · Agent tool path
- page-summarizer Browser extension
Publisher: Example Labs
Sends page text to a model and shows a summary.
- all sites
- network
Illustrative risk: High Sample · Browser profile - tab-notes Browser extension
Publisher: Example open-source project
Keeps notes beside open tabs, stored locally.
- local storage
Illustrative risk: Low Sample · Extension store listing - form-assistant Browser extension
Publisher: Example model provider
Suggests answers for web forms using a model.
- form fields
- network
Illustrative risk: Medium Sample · Browser profile
- inline-assistant IDE extension
Publisher: Example model provider
Completes and edits code in the editor with a model.
- workspace files
- network
Illustrative risk: Medium Sample · Editor profile - test-explorer-plus IDE extension
Publisher: Example open-source project
Lists and runs the project’s tests from a side panel.
- workspace files
- task runner
Illustrative risk: Low Sample · Extension marketplace listing - remote-runner IDE extension
Publisher: Unknown publisher
Runs editor tasks on remote hosts over SSH.
- shell
- SSH keys
Illustrative risk: High Sample · Editor profile
Sample data: names and publishers are invented, risk levels are illustrative rather than assessments, and nothing here was observed in any environment.
Discovery
Knowing an artifact exists
An inventory answers what is installed, who published it, and what it says it can reach. It does not stop anything from running.
Runtime control
Governing what an agent executes
Where PRAE is in the execution path, each call an agent proposes is judged against your policy before it runs — whether or not the artifact behind it was ever catalogued.
- Allow Shipping An in-policy call runs.
- Hold In part A sensitive call waits for a human to approve that exact action, where the integration supports holds.
- Deny Shipping An out-of-policy call is refused before it runs.
- Verify Shipping Every decision is sealed in a hash-chained ledger and exports as a signed receipt.
- Steer In development A signed constraint reaches running agents and is adopted mid-session. Learn more →
Cataloguing or risk-profiling an artifact enforces nothing by itself; only the policy in force at the execution boundary decides what runs.
Aha · Execution control
One execution, inside a fleet.
A simulated fleet of agents, running in your browser. Follow one execution to a crown-jewel resource, watch PRAE intercept it at the execution boundary, and steer what the agent does next. Every decision is the real PRAE kernel judging the call — not a model of it. Nothing is executed.
Runs entirely in your browser. No call leaves this page.
OWASP LLM TOP 10 2026 · EU AI ACT art. 12 · NIST AI 600-1 · SOC 2 CC7.2
The runtime lifecycle
Evaluate. Allow, hold or deny. Verify. Steer.
Not five steps in a row: one continuous loop at the execution boundary. Each governed call is evaluated before it runs and resolves to exactly one outcome. Evidence is sealed beside every decision, whatever it was. Steering changes the constraint the next call meets.
Every capability carries its status where it is listed, from the claim-to-evidence audit behind this page. Simulation means simulated agents, never production enforcement.
- Shipping Built, available and supported in the configuration named.
- Partially supported Available only for the integrations or paths named.
- Simulation Demonstrated on simulated agents through the real gate. Not production enforcement.
- Roadmap Planned or built but not released. Not available today.
One per call: each call reaches exactly one of allow, hold or deny, never all three
ALLOW Runs within the policy boundary HOLD Waits for an authorization DENY Refused before it runs 03 Verify Every decision sealed, chained, checkable 04 Steer Changes what the next call meets01 · Evaluate
Evaluate — before the protected action runs
The agent proposes a tool call. Where an integration puts PRAE in front of the tool, the call is classed into a capability and matched against the policy pack in force: tool, arguments, paths, hosts, commands and budgets. The strongest matching rule decides, and every match stays in the trace. The decision is deterministic rule evaluation: no model is called to make it.
- One verdict per call: allow, hold or deny.
- The rule that decided, its reason and the pack version go on the record.
PRAE evaluates only the calls an integration routes to it. A call that does not pass through PRAE is not seen, and nothing here intercepts every tool of every agent.
Where it holds today
- Shipping Deterministic policy evaluation Rule matching, no model: the same call, pack and session state get the same verdict.
- Shipping Node / TypeScript SDK · judge() in your tool loop Before each tool runs, in your process. Your loop must call it and honour the verdict.
- Partially supported prae-gate at an agent harness’s tool seam One supported harness profile today: every tool call that passes its pre-execution seam.
- Partially supported PRAE’s MCP server · prae mcp File reads routed through PRAE’s own MCP server (listings are confined to the root, not judged). Other MCP servers are not seen.
- Partially supported Claude Code · PreToolUse hook Built-in and MCP tool calls, in shadow or enforce mode (prae-cli 0.10.0). A shell command is judged by its text, not its effect; files attached with @ fire no hook; output is not screened.
- Roadmap MCP Gateway in front of any MCP server Not available.
02 · One outcome of three
ALLOW — the call runs
The call is inside the policy in force, so it proceeds. PRAE does not run the tool itself: the integration hands it back to the agent’s own execution path.
- The tool executes.
- The allow is sealed with the rule that permitted it, or with no rule when none matched.
A call no rule matches is allowed and recorded. Write deny or warn rules for what must never pass silently.
Where it holds today
- Shipping Allow, recorded with its rule Wherever PRAE evaluates the call. In Claude Code an allow hands the call back to Claude Code’s own permission prompt.
- Shipping Shadow mode Every verdict computed and sealed, every call proceeds: read the decisions before anything blocks.
02 · One outcome of three
HOLD — the call waits for a person
The rule requires approval, so the call is suspended before it runs. It runs only if the approval comes back for that call; anything else leaves it unrun.
- The hold is sealed at the moment it is made.
- An approval releases that one call. A denial, or no answer, means it never runs.
How a hold is answered depends on the integration, and PRAE’s MCP server refuses a hold outright: it has no channel to a person. No approval today carries an identity from your identity provider.
Where it holds today
- Partially supported Hold through the harness’s own approval flow The supported harness profile. The outcome is recorded; the approver is not identified.
- Partially supported Hold returned to your application · judge() The SDK returns the hold; asking a person and recording the answer is your application’s job.
- Partially supported Hold as Claude Code’s permission prompt The person at the session answers. PRAE records the hold, not what was answered.
- Simulation Operator answers in the Command Center ALLOW, DENY or STEER signed with the operator key and bound to the exact action’s hash, on simulated Claude Code sessions.
02 · One outcome of three
DENY — the call never runs
The call is outside the policy, so it is refused at the boundary before the tool executes. The agent receives the rule and its reason instead of a result.
- The tool does not execute.
- The refusal is sealed with the rule and reason the agent was given.
A logged denial is not always a prevented action. In shadow mode the call still runs, and the SDK prevents only what your loop declines to run. A deny is one action refused at one point, not containment.
Where it holds today
- Shipping Refusal before execution In enforce mode, wherever PRAE is in the path.
- Partially supported Tool results withheld after execution The supported harness profile: a result carrying a credential never reaches the model. The tool did run.
03 · Beside every decision
Verify — evidence beside every decision
Whatever the verdict, the decision is appended to a hash-chained ledger: each row carries the hash of the one before it, so a removed, edited or reordered row breaks the chain. Given a key, PRAE signs each row with Ed25519, and any row exports as a receipt a third party checks offline, comparing its key’s fingerprint with one they already trust.
- prae verify re-derives the chain and checks the signatures.
- prae checkpoint signs the ledger’s length and head, so a cut ledger is caught later.
A signature proves this record was not altered after it was sealed. It does not prove every action was intercepted, nor that a side effect in the world happened or was prevented. The key is yours to keep; nothing yet binds it to who holds it.
Where it holds today
- Shipping Hash-chained ledger · prae verify Tamper-evident, not tamper-proof: whoever holds the key can rewrite the whole file.
- Shipping Ed25519 signatures and offline receipts Rows are signed when a key is configured: always by the Claude Code hook, optionally by the harness gate and the SDK, never by PRAE’s MCP server.
- Shipping Signed checkpoints Catch a truncated or rewritten ledger against a checkpoint kept elsewhere.
- Roadmap Keys bound to an identity A key identifies a signing authority today, not a person or a workload.
04 · Where supported, then back to 01
Steer — intervene, then evaluate again
Steering changes the constraint in force, not the past. Answering a held call with STEER means that call does not run and the agent is told what to do instead. Changing the pack, or fencing a cohort with a signed constraint, affects the calls that come after it. Either way, the next call returns to Evaluate under the new constraint.
- The intervention is sealed as its own event.
- Subsequent calls are evaluated under the constraint now in force.
Fleet steering is shown on a simulated population of Claude Code sessions. Steering live production agents is not built.
Where it holds today
- Partially supported Pack changes take effect on the next call The harness gate reloads an edited pack with no restart, and keeps the one in force if the edit does not parse; the Claude Code hook reads the pack on every call.
- Simulation STEER a held call The Command Center, on simulated Claude Code sessions through the real gate.
- Simulation Fleet steering by cohort A signed constraint each targeted gate verifies and adopts mid-session, on a simulated fleet.
- Roadmap Steering live production agents No live fleet, hosted control plane or SDK steering yet.
- Shipping Reuse of authored policy The packs you write persist, versioned, and govern every next run.
- Roadmap Interventions promoted into reusable controls Nothing learns from interventions or promotes them automatically.
The agentic control plane
Six capabilities. Four of them do something today.
Everything agents need to act with organizational fidelity — grounded, constrained, and continuously improving. Execution control is the one that runs end to end, and it is the one running in the page above. Three more do part of what they describe today, and two are still roadmap. Each is labelled for which.
We would rather you find the roadmap here than in the console.
Instruction ingest
In partToday: every AGENTS.md, CLAUDE.md and .cursorrules an agent would be given is read the way the harness reads them — operator files above project files, each statement carrying its file, line and layer — and the enforceable subset is proposed as rules you review, never applied. Anchoring those instructions to the code they talk about is the half still to build.
Context compilation
In partToday: a project context file is served to every agent in the profile and the whole assembled prompt is hashed into the decision ledger, so what the agent knew and what it did sit on one chain. Compiling that context — filtered by structural relevance, scope, trust, and task — is the half still to build.
Execution controls
ShippingExplicit constraints applied before execution — permissions, policies, paths, hosts, budgets. The operator baseline is intersected with what a plugin's author declared, and the operator can only ever narrow. Not to make agents less autonomous. To make autonomy trustworthy.
Run it in the playground →Evidence & verification
In partToday: every decision and every prompt assembly is written to a hash-chained log with the clause that produced it — a removed, edited or reordered row breaks the chain — and any row exports as a signed receipt a counterparty checks against a pinned key, without the ledger, our machine, or yours. Completeness is the half still to build: a signature proves a decision happened, not that no others did, and nothing yet binds a key to who holds it.
Read a chained ledger →Structural grounding
On the roadmapAnchor organizational knowledge to the systems agents actually operate within — repositories, services, modules, symbols, dependencies, call graphs, execution paths, and architectural boundaries. Context becomes structurally grounded, not disconnected text.
Enterprise ontology
On the roadmapVerified discoveries become structured, durable knowledge — architecture, workflows, constraints, failure patterns, and organizational rules. This is the compounding layer: every verified execution makes future ones better.
Products
Where PRAE governs execution.
Not only coding agents. The same execution control governs the agents on your developers’ machines, the agents your team builds, and the agents you deploy as services — each labelled for what ships today.
Agents, by environment
Developer agents → custom / homegrown agents → deployed SaaS agents
Governance
What applies to every agent PRAE governs
Where your agents operate: Cursor Claude Desktop Windsurf GitHub Copilot Slack AI (roadmap)Microsoft 365 Copilot (roadmap) every integration, at its real status.
AI compliance & audit readiness
Answer questions about AI risk and compliance with hard evidence.
Know what your agents were allowed to do. Know what they actually did. Prove it.
Policy → Decision → Execution → Evidence
- ISO/IEC 42001:2023 Mapped
- EU AI Act Mapped in part
- NIST AI RMF Mapped in part
- MITRE ATLAS Mapping planned
- OWASP Top 10 for LLM Applications 2026 Mapped
- Mapped controls and evidence support your programme; they are not a certification.
Evidence & verification
Knowledge earns trust. It isn't assumed.
DesignDiscoveries move through explicit trust states before they're allowed to influence future execution.
This ladder is the model we are building to, not a feature you can use yet. What exists today is the record underneath it — and the receipt below it, which is already yours to check.
Candidate
An unverified observation or hypothesis surfaced during execution. Noted, not trusted.
Corroborated
Supported by repeated or independent evidence across separate executions.
Verified
Backed by tests, reproducible behavior, static analysis, or deterministic verification. Eligible to enter the ontology.
Underneath it: a receipt anyone can check
ShippingEvery decision is hash-chained to the one before it, with the clause that produced it. Any single row then exports as a signed receipt — the decision, an Ed25519 signature over its seal, and the public key. Whoever holds it recomputes the row's hash and checks the signature against a fingerprint they already trust, needing neither the ledger, nor our machine, nor yours.
Bounded on purpose: a signature proves this decision happened, not that no others did — only the chain speaks to that, and only to you. The key stays in your custody, and nothing yet binds it to who holds it. Both are named on the roadmap above rather than papered over here.
Only verified knowledge becomes durable organizational intelligence.
The moat
A mall gets bigger. A garden gets richer.
Hyperscalers provide the infrastructure mall — compute, models, orchestration, storage. Essential, and the same for everyone. PRAE cultivates the enterprise-specific intelligence that makes agents effective inside your organization, specifically.
- Compute
- Models
- Orchestration
- Storage & networking
- Generic AI primitives
Gets bigger. Same for every organization that buys it.
- Architecture & dependencies
- Business rules & workflows
- Verified discoveries
- Failure patterns
- Domain ontology
Built to get richer with every verified execution — the compounding layers (05 and 06 above) are on the roadmap. Specific to your organization, and impossible to buy off the shelf.
Get started
Put a control plane between your agents and what they execute.
For engineering leaders evaluating agentic infrastructure at enterprise scale.
One email to us, nothing stored. We reply from thetalosteam@gmail.com.
Agents execute.
PRAE decides which of their actions run, where it is in the path, and keeps the evidence of every decision.