OACS is the open protocol for AI agents to act on user accounts across existing digital services — with native payment preservation, scoped delegation, and proof-backed outcomes. Without holding your money. Without storing your credentials. Without becoming another wrapper.
// Define an agentified journey. Run it on any OACS runtime. import { defineOutcomeClass } from "@quantumdelegate/oacs"; export const orderFood = defineOutcomeClass({ id: "dev.oacs.personal.food_order_native", category: "food_delivery", intent: { patterns: ["order food from {vendor}"] }, commercial: { mode: "native_vendor_payment", // vendor charges user directly quantumDelegateTouchesFunds: false // we never hold the money }, safety: { externalActionRiskClass: "vendor_discretion_required", finalCheckoutVerification: true, firstVendorUseRequiresApproval: true }, proof: { requiredEvidence: [ "vendor_order_confirmation", "amount_observed", "payment_method_observed" ] } });
AI agents can now perform those journeys autonomously. But there is no standard for how an agent does this safely — how it proves it acted on the user's behalf, how it preserves the vendor's payment relationship, how the user maintains control, how the outcome is audited.
Today every agent platform solves this differently. Some store user credentials. Some scrape sites without consent. Some intermediate payment, accidentally becoming regulated financial institutions. Most have no audit trail.
OACS defines the missing layer.
Apple didn't write an app for every service. They wrote the protocol for apps. We don't build agents for every service. We define the protocol for agentified journeys.
When Felix orders from Deliveroo, Deliveroo charges your card — using your existing payment method, just like always. Vendor remains seller of record. The OACS runtime observes and records. We never touch the money.
OACS is composed of five integrated foundational specifications. Together they form the constitutional layer of the agentic web.
Every Outcome Class is a single declarative manifest. Memory permissions, authority requirements, commercial mode, safety policy, proof requirements — all typed, validated, version-controlled.
import { defineOutcomeClass } from "@quantumdelegate/oacs"; export const renewDomain = defineOutcomeClass({ id: "dev.oacs.personal.domain_renewal", category: "personal_admin", version: "1.0.0", intent: { patterns: ["renew {domain} under {price_ceiling}"] }, inputs: { required: ["domain"], optional: ["price_ceiling"] }, memory: { reads: ["persona.personal.domain.registrations"], writes: [{ scope: "persona.personal", category: "domain.renewal_history", authority: "felix_inferred" }] }, authority: { requires: ["vendor.domain_registrar.renew_domain"], maxAmount: "£25", maxHopDepth: 1 }, commercial: { mode: "native_vendor_payment", quantumDelegateTouchesFunds: false, sellerOfRecord: "vendor" }, safety: { externalActionRiskClass: "reversible_with_cost", finalCheckoutVerification: true, undoCapability: { afterProofCheckpoint: { type: "clean_undo", window: "30d" } } }, proof: { requiredEvidence: [ "vendor_order_confirmation", "amount_observed", "new_expiry_date" ] } });
import { defineOutcomeClass } from "@quantumdelegate/oacs"; export const azureCostAudit = defineOutcomeClass({ id: "dev.oacs.devops.azure_cost_audit", category: "cloud_devops", intent: { patterns: ["audit my Azure spend every {frequency}"] }, memory: { reads: [ "persona.work.cloud.azure_subscriptions", "persona.work.cloud.cost_baselines.derived" ] }, authority: { requires: ["vendor.azure.cost_management.read"], requiredAuthorityTypes: ["organisation_policy"] }, // No money flows externally — pure-software outcome. // User pays for QDelegate service via subscription. commercial: { mode: "qdelegate_platform_fee", quantumDelegateTouchesFunds: false, sellerOfRecord: "qdelegate_ltd" }, safety: { externalActionRiskClass: "no_external_effect" }, proof: { validatorRequired: true, // Patent 1 dual-path requiredEvidence: [ "azure_cost_data_snapshot", "audit_recommendations_signed", "validator_dual_path_result" ] } });
import { defineOutcomeClass } from "@quantumdelegate/oacs"; export const cancelSubscription = defineOutcomeClass({ id: "dev.oacs.personal.subscription_cancel", category: "personal_admin", intent: { patterns: ["cancel my {service} subscription"] }, commercial: { mode: "native_vendor_payment", quantumDelegateTouchesFunds: false }, safety: { externalActionRiskClass: "irreversible_communication", noSilentSubmitCategories: [ "subscription_cancellation_with_consequences" ], undoCapability: { afterProofCheckpoint: { type: "vendor_discretion_required" }, irreversibilityWarningRequired: true } }, proof: { requiredEvidence: [ "vendor_cancellation_confirmation_number", "effective_cancellation_date", "final_charge_amount_observed" ] } });
Shipped with the OACS reference SDK. Signed, versioned, conformance-checked. Use them as-is, fork them, or compose new outcomes from their Skills.
Two US patents protect the mechanisms that make OACS work. The specification itself is published openly — no licence fees for implementers, no proprietary lock-in.