Agents that understand your product.
Vadyl's agent plane is fully native — 24 entities, typed plan IR, capability-aware LLM routing, immutable memory with supersession. Agents see the same customers, orders, permissions, workflows, branches, sandboxes, approvals, migrations, rollouts, and audit trails as the rest of the backend. They cannot violate access. They cannot exceed their token budget. They show their work through the same explainability plane every other Vadyl decision goes through.
60+ closed discriminated kinds. No raw escapes.
AgentPlanOperation is a closed union of 60+ typed kinds. There is no ExecuteShellCommand. No ExecuteRawSql. No RawFilesystemMutate. No InvokeProviderSdkDirectly. Plans compose existing Vadyl typed ASTs — entity, schema, branching, automation, model, memory, connection, source-authoring, workflow, federation, distribution, analytics, sub-agent-spawn, HITL, control-flow.
Plans compose canonical ASTs
Entity ops, schema ops, branching ops, automation ops, model ops, memory ops, source-asset ops — every step is a typed canonical operation. The plan is structurally checked before execution.
13-stage validation
Structural · PCG references · capabilities · access · DAG cycle · budget · coherence · protection · schema · federation · quota · signatures · risk-rollup. Validation happens at compile, not at runtime.
Risk rollup MAX
Plan risk is the MAX of step risks. Cannot understate. A single high-risk step elevates the whole plan. Operators see the actual risk, never a soft-pedal.
Immutable memory + supersession
AgentMemoryMutation.Invalidate sets ValidUntil + SupersededByFactId. Memory is queryable across history. Hard delete reserved for legal compliance only — never normal flow.
Capability-aware LLM routing
Tier (frontier / mid / fast) + required capabilities (vision, tool-use, JSON mode). ILlmCapabilityRegistry resolves through the project's binding chain. DeprecationFallbackPolicy on retired models.
Sub-agent narrowing
Sub-agent grants and memory scopes only narrow — never widen. Parent's grants × child's override × agent definition policy × ProjectCapabilityGrant.
Token accounting
ITokenAccountingService.PreflightAsync runs BEFORE dispatch. Budget intersection across (definition default, caller override, parent residual). RecordUsageAsync reconciles after — drives canonical billing.
Recall reads canonical state
Agents read memory, corpora, and entities through the same canonical surfaces every other plane reads. Never log archaeology, never paraphrased history.
MCP as canonical projection
External MCP-compatible clients consume agent surfaces through tools/list (capability-grant filtered) and tools/call (canonical dispatcher). No MCP-only authority.
Runs on the seven surfaces
Agent runs use durable workflows + existing trigger surfaces. NOT an 8th execution surface. Pinned by structural tests; capability bounds the same as every other authored handler.
Branchable
AgentManifest is one of 19 typed branching domains. Sandbox an agent change. Replay traffic. Approve. Promote. Same DAG as schema, code, providers.
IAgentExplainer
Reads canonical state directly — run rows, step rows, reasoning checkpoints, plan diagnostics, recall journals. Anti-pattern #77 codified: never log-scrapes.
Native plane, not bolted-on
Closed discriminated union
Anthropic · OpenAI · DeepSeek · Moonshot
Cannot understate
AI that lives inside your product model.
Same entities. Same access enforcement. Same audit. Same explainability. Agents are not a side door — they're a peer plane.