Governance

Governance

Governance in Trellaris is not a review process bolted onto an agent platform โ€” it is where the agent platform is built. Rules live in the data and execution layers, so a control cannot be bypassed by using a different surface, a different client, or a different tool.

The load-bearing assumption Everything that runs an agent โ€” chat, automations, Slack and Teams, the orchestrator, inbound A2A calls, and the MCP gateway โ€” goes through one execution path. That is what makes a single policy decision authoritative everywhere instead of being re-implemented per surface.

The seven layers

Controls stack. Each layer catches what the one above it cannot see, and each is enforced by a different mechanism.

LayerQuestion it answersWhere it is enforced
Tenancy & visibilityMay this caller even see this thing?The repository layer โ€” every query is organization-scoped and ring-filtered.
Definition-time gatesIs this definition safe and allowed?Validation and the five-stage security scan on every version.
Runtime policyWhat may this run do right now?The policy engine, on every model call and every tool call.
Human in the loopShould a person decide this one?The approval gate โ€” the run parks mid-execution.
Identity & credentialsWhose authority is this acting under?Delegated OAuth resolved per call; agent identity minted per run.
Lifecycle switchesHow do we stop it?Pause, kill, user suspension, organization-wide emergency stop.
EvidenceWhat actually happened?Audit log, SIEM export, run replay, the Compliance API.

Definition-time gates

Nothing reaches runtime unvalidated. Creating an agent or skill version runs the validation pipeline (schema, slug uniqueness, referential and visibility checks on every skill and MCP reference, version pins, the model allowlist) and returns structured, field-path errors rather than a vague failure.

Every version also triggers a security scan of five independently reported stages:

StageLooks for
Static analysisDangerous patterns in bundled code, against an OWASP LLM Top 10 rule set.
Dependency auditKnown-vulnerable packages in a skill bundle.
Secret detectionCredentials committed into a bundle.
Policy lintInstructions that undermine the platform's own guardrails.
Tool-surface reviewTools and MCP servers the definition reaches for, against the allowlist.

A personal-ring version scans asynchronously and simply carries its badge. A version that has not passed cannot be published to a shared ring โ€” the attempt is refused with the per-stage findings attached. A crashing scanner reports error; it never degrades into a silent pass.

Runtime policy

Ten policy kinds cover data handling, the tool plane, model choice, approvals, spend, autonomy, browser egress, agent self-scheduling, injection screening, and agent-identity conditions. They share one scope grammar and one resolution rule โ€” deny wins, most specific wins.

Human in the loop

Approval is not a notification you can ignore โ€” the run genuinely stops. Its loop state is serialized, and it resumes only on a decision.

CapabilityBehaviour
Park and resumeA write parks the run at awaiting_approval. Approving resumes it and executes the call exactly once; denying returns a tool error the agent can respond to.
Edit before approveA reviewer may amend the pending arguments. Edits are validated against the tool's schema, executed exactly as amended, and the audit record carries both the original and the edited arguments.
Bulk decisionsTriage a queue in one action, with per-row results โ€” one stale item fails in place rather than sinking the batch.
ExpiryAn undecided approval times out (72 hours by default) and the run is cancelled with approval_timeout rather than parking forever.
Decide from anywhereThe inbox and Slack resolve the same state transition, with row locking so a double-click cannot double-approve.
Ask the userask_user parks a run on a question; the reply becomes the tool result.
Connect cardsA missing connector credential parks the run and prompts for consent instead of falling back to anyone else's token.

Identity and credentials

Lifecycle switches

ControlEffectReversible
Pause agentNew runs are refused at the execution path. In-flight runs finish.Yes โ€” resume.
Kill agentThe agent disappears from the catalog, active and parked runs are force-cancelled, and pending approvals are withdrawn.No.
Suspend userTheir automations are disabled and their runs cancelled.Yes.
Emergency stopOrganization-wide: new runs refused, active runs cancelled.Yes.
DeprovisionRemoving a user cascades: connector credentials revoked, automations disabled, runs cancelled, agent identities revoked.โ€”

Quality regressions have their own brake. Production runs are continuously sampled and graded; if the rolling pass rate drops below threshold the owner is alerted once per period and a demotion proposal is raised โ€” the promotion pipeline run in reverse. Approving it pauses the agent.

Data handling and privacy

Administrators run the platform; that does not automatically entitle them to read what employees said to it. Content access is a deliberate, org-wide setting.

TierAdmin accessVisible to users
Tier 1 (default)Metadata only. Run status, timings, cost, and audit records โ€” never message content, run input/output, artifacts, or memories.Nothing to show.
Tier 2As Tier 1, plus content for a specific user under an active legal hold.Nothing, by design.
Tier 3Full content access.A persistent in-product banner for everyone in the organization, plus a notification when the tier changes.

Legal holds are dual-authorized: the requesting administrator cannot approve their own hold, a second administrator activates it, and releasing it re-blocks access. An active hold also pins the held user's conversations against retention sweeps.

Retention runs as a scheduled sweep against per-organization settings for audit and conversation history.

Evidence

SurfaceWhat it gives you
Audit logEvery registry change, approval decision, credential connect/disconnect, automation change, promotion transition, and administrative action โ€” browsable with filters.
SIEM exportThe same records as newline-delimited JSON in a Sentinel-compatible shape, metadata-only by construction.
Run replayA normalized step-by-step timeline of any run, showing post-redaction content and annotating which rules were applied.
Compliance APIScoped, machine-readable access to agent inventory, run metadata, and governance decisions for external GRC tooling โ€” plus programmatic suspension of an agent.
Tier 1 by construction, not by filter The compliance endpoints return metadata only because of what they are built to select, not because a field list is stripped on the way out. There is no configuration that turns them into a content feed.

Risk register

Every agent carries a computed risk tier, so review effort can be aimed where the exposure actually is. The score combines four factors:

FactorRange
Write scoperead โ†’ write โ†’ destructive
Data sensitivitynone โ†’ internal โ†’ regulated
Autonomysupervised โ†’ trusted โ†’ autonomous
Blast radius (ring)personal โ†’ team โ†’ org

The total maps to a tier โ€” minimal, limited, high, or unacceptable โ€” and each tier carries labels for NIST AI RMF and the EU AI Act. Those labels are data, not logic, so legal can retune the mapping without touching the scoring.

High and unacceptable tiers require attestation before org-ring operation, and sign-off is dual-authorized โ€” the same two-person pattern as legal holds. The register and its controls live under Admin โ†’ Risk.

Testing the controls

Governance you never exercise is governance you don't have. Three mechanisms keep the controls honest:

Platform-level limits

Some limits sit below policy, as properties of the deployment:

Who does what

RoleResponsibilities
Organization adminPolicies, kill switches, privacy tier, legal holds, audit and SIEM, risk sign-off, connector and channel configuration.
ReviewerPromotion decisions: reads the gate reports and the candidate definition, then approves, requests changes, or rejects.
BuilderAgent and skill definitions, evaluation sets, and responding to drift alerts on agents they own.
MemberApproving writes on their own runs, connecting their own accounts, and managing their own memories.