{"slug": "goal-centric-backend-agnostic-agentos-control-plane-blueprint", "title": "Goal-centric, backend-agnostic AgentOS control plane blueprint", "summary": "A developer has published a blueprint for AgentOS, a model- and runtime-agnostic control plane that enables humans to delegate goals to autonomous agents while maintaining bounded authority, cost, and risk. The design emphasizes goal-oriented orchestration, least-privilege security, machine-evaluable definitions of done, and evidence-based completion, with a loop of Goal → Plan → Work → Evidence → Evaluation → Next Action. The blueprint simplifies the original AgentOS reconstruction by focusing on outcomes rather than task cards or a fixed cast of agents.", "body_md": "This document specifies a buildable AgentOS: a model- and runtime-agnostic control plane that lets a human delegate goals to autonomous agents, observe evidence, and intervene only at meaningful decision points.\n\nThe design preserves the strongest ideas from the original AgentOS reconstruction—least privilege, isolated execution, explicit approvals, budgets, triggers, and human exception handling—while simplifying the product around outcomes rather than task cards or a fixed cast of agents.\n\nNorth star:Build the smallest control plane that reliably turns a human-approved goal into verified progress, while keeping authority, cost, and risk bounded.\n\nAgentOS accepts a **Goal**, creates or updates a **Plan**, performs bounded **Work**, captures **Evidence**, runs an **Evaluation**, and chooses a **Next Action**. It repeats until the machine-evaluable Definition of Done passes, a human decision is required, or a safety rail stops the run.\n\nThe central model is:\n\n```\nGoal → Plan → Work → Evidence → Evaluation → Next Action\n          ↑                                      │\n          └──────── retry / fork / revise ───────┘\n```\n\nThe operator should be able to state an outcome, approve its boundaries, leave, and return to one of four useful states:\n\n- completed, with verifiable evidence;\n- progressing within budget;\n- safely stopped with a diagnosis and recovery options;\n- waiting on a concise exception that genuinely requires human judgment.\n\n- Goal-oriented orchestration and risk-adaptive plans\n- Backend-agnostic agent execution\n- Strong least-privilege security and policy enforcement\n- Resumable isolated workspaces with TTLs and checkpoints\n- Machine-evaluable Definitions of Done\n- First-class artifacts, evidence, evaluations, and audit trails\n- Retry, fork, cancel, handoff, and escalation controls\n- Cost, token, time, concurrency, and risk budgets\n- Webhook and scheduled goal creation\n- Project, organization, and user orchestration memory\n- Postmortems that improve future routing and planning\n- A compact UI: Goals, Runs, Inbox, Agents, Settings\n\n- A general-purpose agent runtime built from scratch\n- A fixed nine-step software workflow\n- A large roster of narrowly named agents\n- Cloudflare R2 as a mandatory virtual filesystem\n- YAML-as-code or a full CLI\n- A messaging product disguised as an inbox\n- Unbounded autonomous execution\n- A multi-tenant billing platform\n\n**Goals, not cards, are the unit of intent.** Tasks are internal work items generated from a plan.**Evidence, not agent confidence, determines completion.** Claims without provenance do not satisfy a Definition of Done.**Risk determines process.** Workflow depth grows with uncertainty, blast radius, irreversibility, and policy sensitivity.**Identity is not configuration.** An agent identity provides continuity and accountability; an execution profile supplies model, tools, prompts, and limits for a run.**Backend and execution environment are orthogonal.** The model API is not the machine on which tools execute.**Security is enforced outside prompts.** Tools, credentials, network, filesystem, and mutations are denied unless policy grants them.**Human attention is scarce.** Inbox contains exceptions, not activity chatter.**Work is resumable but not ambient.** Isolated workspaces expire; checkpoints preserve only declared state.**Every run is economically legible.** Expected and actual cost, time, tokens, and external spend are visible and bounded.**Learning changes future behavior.** Postmortems update routing, policies, templates, and memory through reviewable proposals.\n\n```\nHuman / webhook / schedule\n          │\n          ▼\n┌─────────────────────────────────────────────────────────┐\n│ AgentOS control plane                                   │\n│ Goals · plans · policy · orchestration · budgets        │\n│ artifacts · evidence · evaluation · memory · exceptions │\n└──────────┬───────────────────┬──────────────────────────┘\n           │ dispatch          │ persist/audit\n           ▼                   ▼\n┌──────────────────────┐   Postgres + artifact store\n│ AgentBackend         │   secret manager + event log\n│ Claude / Codex / ... │\n└──────────┬───────────┘\n           │ uses\n           ▼\n┌─────────────────────────────────────────────────────────┐\n│ ExecutionTarget                                         │\n│ managed sandbox / local Mac / VM / container platform   │\n│ isolated workspace · network policy · scoped secrets    │\n└─────────────────────────────────────────────────────────┘\n```\n\nThe control plane owns intent, policy, state, orchestration, budgets, evidence, evaluation, and audit. Backends generate and reason. Execution targets provide compute and tool access. Neither backend nor target is the system of record.\n\nAn `AgentBackend`\n\nadapts a model or agent harness to one control-plane contract.\n\n```\ninterface AgentBackend {\n  id: string\n  capabilities(): Promise<BackendCapabilities>\n  start(input: BackendRunInput): Promise<BackendHandle>\n  stream(handle: BackendHandle): AsyncIterable<RunEvent>\n  send(handle: BackendHandle, message: BackendMessage): Promise<void>\n  checkpoint(handle: BackendHandle): Promise<BackendCheckpoint | null>\n  resume(input: BackendResumeInput): Promise<BackendHandle>\n  cancel(handle: BackendHandle): Promise<void>\n  usage(handle: BackendHandle): Promise<UsageRecord>\n}\n```\n\nInitial adapters may include Claude Agent SDK, Codex, OpenAI-compatible APIs, and a custom command harness. Backend-specific concepts remain inside adapters. The control plane must not encode Claude-specific sessions, tools, or model names into domain entities.\n\nEvery dispatch resolves four independent fields:\n\n| Dimension | Meaning | Examples |\n|---|---|---|\n`backend` |\nAgent/model API or harness | `codex` , `claude-agent-sdk` , `openai-compatible` |\n`model` |\nModel offered by that backend | provider-specific model identifier |\n`executionTarget` |\nWhere tools and workspace run | managed sandbox, local Mac, VM, container service |\n`routingPolicy` |\nHow the first three are selected | explicit, cheapest-capable, strongest, local-only, privacy-first |\n\nAn `ExecutionTarget`\n\nadvertises capabilities such as operating system, isolation level, region, GPU, available tools, network controls, checkpoint support, capacity, and price. A backend may reason remotely while its tools run in an isolated local target.\n\nRouting is constraint satisfaction followed by optimization:\n\n- Filter candidates by required capabilities, data residency, security policy, tool availability, context size, and deadline.\n- Reject candidates whose worst-case estimate violates a hard budget.\n- Score remaining candidates by expected quality, cost, latency, reliability, privacy, and queue time.\n- Record the candidate set, chosen route, estimates, and rationale.\n- Re-route on retry only when policy permits it.\n\nRouting inputs can come from the Goal, WorkItem, agent execution profile, project policy, and organization policy. The most restrictive applicable policy wins.\n\nA Goal is the operator’s durable statement of desired outcome.\n\n`id`\n\n,`projectId`\n\n,`title`\n\n,`objective`\n\n,`context`\n\n`constraints[]`\n\n,`nonGoals[]`\n\n,`priority`\n\n,`deadline`\n\n`definitionOfDone[]`\n\n`riskAssessment`\n\n,`budgetPolicy`\n\n,`routingPolicy`\n\n`status`\n\n:`draft | awaiting-approval | active | blocked | completed | cancelled | stopped`\n\n`confidence`\n\n,`uncertainties[]`\n\n`planId`\n\n,`currentRunId`\n\n,`createdBy`\n\n, timestamps\n\nGoals cannot become active until their objective, constraints, DoD, authority boundary, and hard budgets are valid. High-risk goals require explicit human approval.\n\nEach DoD criterion is an executable assertion, not a prose checkbox.\n\n```\ntype DoneCriterion = {\n  id: string\n  statement: string\n  evaluator: EvaluatorRef\n  inputs: ArtifactSelector[]\n  passCondition: unknown\n  requiredEvidence: EvidenceRequirement[]\n  weight?: number\n  humanApproval?: ApprovalPolicy\n  status: \"pending\" | \"passed\" | \"failed\" | \"inconclusive\" | \"waived\"\n}\n```\n\nEvaluator types include test command, static analysis, schema validation, policy check, artifact existence, deployment health, metric threshold, model-graded rubric, and human approval. Model-graded criteria must declare a rubric and should be paired with deterministic evidence when possible. Waivers require identity, reason, scope, and expiry.\n\nA Plan is a versioned graph of WorkItems generated for a Goal.\n\n`Plan`\n\n: goal, version, assumptions, risk class, dependencies, critical path, approval state`WorkItem`\n\n: intent, required capabilities, inputs, expected outputs, evaluator set, permissions, budget slice, dependencies, retry policy, status\n\nTasks are therefore implementation details of a plan, not the operator’s primary object. A WorkItem may be performed by one agent, a deterministic job, or a human.\n\nA Run is one orchestration episode for a Goal. An Attempt is one bounded execution of a WorkItem.\n\n- A Run owns plan version, budget ledger, decisions, progress, exceptions, and final outcome.\n- An Attempt records agent identity, execution profile snapshot, backend/model/target, workspace, events, artifacts, evidence, usage, confidence, uncertainty, and termination reason.\n- Every mutation and external side effect carries the Run and Attempt IDs for auditability and idempotency.\n\nArtifacts are first-class outputs; Evidence is a typed claim about artifacts or external state.\n\n```\ntype Artifact = {\n  id: string\n  kind: \"file\" | \"patch\" | \"commit\" | \"pr\" | \"report\" | \"log\" | \"dataset\" | \"deployment\" | \"checkpoint\"\n  uri: string\n  contentHash: string\n  mimeType?: string\n  size?: number\n  producerAttemptId: string\n  provenance: Provenance\n  retentionPolicy: RetentionPolicy\n}\n\ntype Evidence = {\n  id: string\n  criterionId?: string\n  claim: string\n  kind: \"test-result\" | \"inspection\" | \"metric\" | \"policy-result\" | \"approval\" | \"attestation\"\n  artifactIds: string[]\n  observedAt: Date\n  producer: string\n  reproducibility: \"reproducible\" | \"snapshot\" | \"subjective\"\n  validity: \"valid\" | \"stale\" | \"superseded\" | \"invalid\"\n}\n```\n\nEvidence must preserve provenance: command or method, inputs, environment, relevant versions, timestamps, hashes, and raw output. Evaluations never rely solely on an agent’s narrative summary.\n\nAn Evaluation applies evaluators to evidence and produces per-criterion results, overall status, confidence, uncertainty, and recommendations.\n\n`NextAction`\n\nis one of:\n\n`continue`\n\n— dispatch the next ready WorkItem;`retry`\n\n— repeat an Attempt with a bounded change;`fork`\n\n— explore competing approaches in isolated branches/workspaces;`revise-plan`\n\n— create a new Plan version;`handoff`\n\n— transfer work and context to a different identity/profile;`escalate`\n\n— create a human exception;`pause`\n\n— preserve checkpoints without further dispatch;`cancel`\n\n— terminate requested work and revoke active authority;`complete`\n\n— all required DoD criteria pass and approvals exist;`stop`\n\n— a rail or policy forbids further work.\n\nThe decision and rationale are persisted as structured records.\n\nShip four role templates, not a large fictional organization:\n\n| Role | Responsibility |\n|---|---|\nOrchestrator |\nassess risk, maintain the plan, dispatch work, evaluate progress, choose next actions |\nPlanner |\nturn a goal into a dependency-aware plan with assumptions, evaluators, and budget estimates |\nBuilder |\nproduce bounded artifacts and evidence for assigned WorkItems |\nReviewer |\nindependently challenge outputs, run evaluations, identify risk, and verify evidence |\n\nThese are defaults, not privileged code paths. Operators can define additional role templates when distinct capability or policy boundaries justify them.\n\n`AgentIdentity`\n\nprovides a stable name, ownership, audit history, reputation metrics, and memory namespace. It does not contain mutable runtime settings.\n\n`AgentProfileVersion`\n\nis an immutable execution configuration:\n\n- role contract and prompt version;\n- required and optional capabilities;\n- backend/model/target constraints;\n- tool grants and secret references;\n- network and workspace policy;\n- budget defaults, retry policy, and escalation policy;\n- memory read/write scopes.\n\nEach Attempt stores the exact profile version used. Updating a profile never rewrites history.\n\nReplace named collaboration lists with a registry of capabilities and policies.\n\nExamples: `code.read`\n\n, `code.write`\n\n, `git.commit`\n\n, `github.pr.create`\n\n, `tests.run`\n\n, `browser.inspect`\n\n, `deploy.preview`\n\n, `support.read`\n\n, `artifact.review`\n\n, `plan.create`\n\n.\n\nAgents request help by capability and constraints. The orchestrator resolves a suitable identity/profile through the registry. Delegation is allowed only when:\n\n- the parent has\n`delegate`\n\nauthority for the requested capability; - the candidate is allowed by project and organization policy;\n- the delegated budget and permission subset cannot exceed the parent’s remaining envelope;\n- circular and excessive-depth delegation limits pass.\n\nThis removes brittle lists such as “Planner may call Reviewer A and Reviewer B” while retaining hard authorization.\n\nThe nine-step compound-engineer sequence is an optional template, not the system’s workflow.\n\nBefore planning, classify risk using at least:\n\n- blast radius and reversibility;\n- data sensitivity and credential exposure;\n- production or financial side effects;\n- novelty and architectural scope;\n- uncertainty and missing context;\n- evaluator strength;\n- regulatory or policy impact.\n\nExample process profiles:\n\n| Risk | Typical flow |\n|---|---|\n| Low | build → deterministic checks → complete |\n| Moderate | plan → build → independent review → checks → complete |\n| High | human-approved plan → fork or staged build → specialist review → sandbox validation → human approval |\n| Critical | explicit operator authorization for each irreversible boundary; no autonomous production mutation by default |\n\nThe Orchestrator may add or remove WorkItems as evidence changes the risk assessment. Any reduction in required review or approval must be justified and policy-permitted.\n\nConfidence is structured metadata, not decorative prose.\n\nEvery Plan, Attempt result, Evaluation, and NextAction includes:\n\n`confidence`\n\n: calibrated probability or`low | medium | high`\n\nwith rubric;`uncertainties[]`\n\n: unknown, impact, resolvability, and proposed test;`assumptions[]`\n\n: statement, evidence, owner, and expiry;`disagreement`\n\n: conflicting evaluator or agent conclusions;`informationGaps[]`\n\n: missing inputs that could change the decision.\n\nLow confidence alone does not always require a human. The system should first buy information through a cheap test, independent review, or isolated fork. Escalate when uncertainty is material and cannot be safely reduced within budget or authority.\n\nEach Attempt receives an isolated workspace and scoped session token.\n\nWorkspace policy includes:\n\n- source snapshot or commit SHA;\n- writable and read-only mounts;\n- network allowlist;\n- secret grants;\n- maximum lifetime and idle TTL;\n- checkpoint cadence and maximum retained checkpoints;\n- cleanup and legal-hold policy.\n\nWorkspaces may survive a backend disconnect or human wait, but never indefinitely. On TTL expiry, the runtime creates a final checkpoint when safe, destroys compute, revokes credentials, and records cleanup evidence.\n\nA checkpoint contains only declared resumable state: repository diff or commit, artifact manifest, tool state that can be safely serialized, event cursor, pending questions, and backend resume token when supported. It is encrypted, hashed, access-controlled, and associated with the profile and policy versions that created it.\n\nResume validates that credentials, code base, policy, budget, and external assumptions remain valid. Otherwise the orchestrator migrates the work into a fresh workspace or revises the plan.\n\nUse a pluggable `ArtifactStore`\n\nbacked initially by local/S3-compatible object storage plus Postgres metadata. Defer the R2 virtual-filesystem MCP and file-browser product. R2 can later implement the artifact-store interface; agents should not depend on a vendor-specific filesystem abstraction.\n\nGit remains the durable store for code. The artifact store holds reports, logs, patches, evidence bundles, checkpoints, and other non-source outputs.\n\nSecurity remains a first-class product requirement.\n\n**Default deny:** no tool, repository, secret, network destination, mutation, delegation, or memory scope without a grant.**Short-lived authority:** every Attempt gets a scoped token with expiry, audience, Run/WorkItem binding, and idempotency limits.**External enforcement:** prompts describe policy; gateways and runtimes enforce it.**Isolated writable state:** no shared writable workspace between concurrent Attempts unless an explicit coordination primitive mediates it.**Network egress control:** domain/IP policy is enforced below the model and tool layer.**Scoped secrets:** inject just in time; never store raw values in prompts, events, artifacts, checkpoints, or the application database.**Tool mediation:** capability gateway validates parameters, resource scope, rate, budget, and approval before execution.**Mutation classes:** reversible, externally visible, financially consequential, privileged, and destructive actions receive progressively stronger gates.**Untrusted-input boundaries:** fetched content, issues, web pages, emails, logs, and artifacts are labeled untrusted and cannot redefine policy.**Evidence integrity:** hash artifacts, sign high-value attestations where practical, and retain evaluator provenance.**Revocation:** cancel immediately prevents new calls, revokes session credentials, and asks the runtime to stop; cleanup is verified asynchronously.**Audit:** append-only events cover routing, grants, tool calls, approvals, side effects, evidence, evaluations, checkpoint access, and cleanup.**Policy hierarchy:** organization policy constrains project policy, which constrains Goal and WorkItem policy. Children can narrow but not broaden authority.\n\nApproval gates are enforced by APIs and capability gateways, never by asking the agent to behave.\n\nRetry requires a reason and a bounded delta: new context, different prompt/profile version, different candidate route, expanded evaluator, or transient-failure backoff. Identical retries are capped and detected.\n\nFork creates sibling WorkItems or Attempts with isolated workspaces and explicit comparison criteria. The merge decision is an Evaluation; losing forks are retained according to artifact policy, then cleaned up.\n\nCancel stops future dispatch, revokes authority, signals active backends, preserves audit/evidence, and cleans workspaces. It is idempotent and distinct from pause.\n\nHandoff packages objective, constraints, plan position, artifact manifest, evidence, unresolved uncertainty, remaining budget, and current checkpoint. The receiver must explicitly accept the authority envelope.\n\nEscalation creates a structured exception with impact, deadline, evidence, attempted remedies, recommended default, and consequences of inaction. It never forwards a raw agent transcript as the primary request.\n\nDetect repeated failure signatures, unchanged evidence, oscillating plan revisions, evaluator disagreement, budget burn without criterion progress, and recurring human questions. Response order is diagnose → alter approach → fork or handoff → escalate or stop.\n\nInbox contains only items requiring human attention:\n\n- an approval required by policy;\n- a material ambiguity that cannot be safely resolved;\n- a blocked credential or external dependency;\n- budget or deadline intervention;\n- conflicting high-impact evidence;\n- completion review where human approval is part of DoD.\n\nEvery exception has severity, due time, Goal/Run link, concise question, evidence, recommended action, alternatives, and a safe default on timeout. Replies create decisions and resume orchestration; they do not revive an expired workspace without validation.\n\nCompletion notifications and routine progress belong in Goal/Run views, not Inbox.\n\nBudgets can constrain:\n\n- model tokens and API cost;\n- execution minutes and compute cost;\n- wall-clock deadline;\n- external service spend;\n- concurrency;\n- number of retries, forks, and human escalations;\n- tool call count or rate;\n- carbon, region, or privacy preferences where supported.\n\nEach Goal has hard limits and optional soft targets. Plans allocate budget slices to WorkItems; delegation can only subdivide remaining budget. The ledger reserves estimated worst-case cost before dispatch and reconciles actual usage afterward.\n\nThe Orchestrator should consider marginal value of information: spend on another test, review, or stronger model only when its expected reduction in failure risk is worth the cost. A cheap route is not economical if it causes retries or weak evidence.\n\nOn soft-limit breach, re-plan or route more cheaply. On hard-limit breach, stop unless a pre-authorized contingency applies. Budget increases require a human decision with forecast, progress, and alternatives.\n\nMemory stores decisions and reusable operational knowledge, not hidden prompt accumulation.\n\n**User memory:** communication preferences, approval patterns, and explicit standing constraints.**Project memory:** architecture, commands, repository conventions, evaluator history, known hazards, and prior decisions.**Organization memory:** policies, approved services, risk thresholds, cost benchmarks, and cross-project incidents.\n\nMemory entries contain source, scope, owner, confidence, freshness, sensitivity, expiry/review date, and links to evidence. Retrieval is permission-filtered and logged. Higher scope does not automatically expose sensitive lower-scope content.\n\nAgents propose durable memory changes. Policy-sensitive or organization-wide changes require review. Contradictions are surfaced; newer text does not silently overwrite authoritative decisions.\n\nTrigger a postmortem for material failure, budget overrun, unsafe attempt, repeated retry, incorrect completion, or operator-requested review. Capture:\n\n- expected versus actual outcome;\n- timeline and decision points;\n- causal factors, including policy and system factors;\n- missed or misleading evidence;\n- routing and budget performance;\n- recovery effectiveness;\n- proposed changes to evaluators, policies, profiles, templates, or memory.\n\nLearning proposals are versioned and tested where possible. The system never autonomously weakens a security control because doing so would have made a past run easier.\n\nWebhooks and schedules create Goals or bounded WorkItems through the same policy path as the UI.\n\n- Authenticate, validate, rate-limit, and sanitize payloads before they become context.\n- Bind each trigger to a Goal template, capability set, budget ceiling, and idempotency key.\n- Never pass raw headers, secrets, or untrusted instructions as system policy.\n- Repeated events deduplicate or attach to an existing Goal according to declared rules.\n\nSupport triage, diagnostics, content jobs, and maintenance are example configurations—not hardcoded core agents.\n\nKeep the first product to five surfaces:\n\n**Goals**— create/approve goals; inspect DoD, plan, progress, evidence, spend, uncertainty, and final result.** Runs**— live and historical orchestration timelines; attempts, routes, workspaces, artifacts, evidence, evaluations, usage, and control actions.**Inbox**— prioritized exception queue with approvals and decisions.** Agents**— identities, profile versions, four default role templates, capabilities, performance, and memory scopes.** Settings**— projects, organization policy, backends, models, execution targets, capability registry, integrations, secrets, budgets, triggers, and retention.\n\nArtifacts are viewed contextually inside Goals and Runs. There is no separate virtual-filesystem UI in MVP. Activity is a filterable Run timeline, not a separate global feed.\n\n```\nPOST   /goals\nGET    /goals/:id\nPATCH  /goals/:id\nPOST   /goals/:id/approve\nPOST   /goals/:id/pause\nPOST   /goals/:id/resume\nPOST   /goals/:id/cancel\n\nGET    /goals/:id/plans\nPOST   /goals/:id/plans/:version/approve\nGET    /goals/:id/evaluations\n\nGET    /runs\nGET    /runs/:id\nGET    /runs/:id/events\nPOST   /runs/:id/retry\nPOST   /runs/:id/fork\nPOST   /runs/:id/handoff\nPOST   /runs/:id/escalate\nPOST   /runs/:id/cancel\n\nGET    /artifacts/:id\nGET    /evidence/:id\n\nGET    /inbox\nPOST   /inbox/:id/decide\n\nGET    /agents\nPOST   /agents\nPOST   /agents/:id/profiles\nGET    /capabilities\n\nGET    /settings/backends\nGET    /settings/execution-targets\nGET    /settings/policies\nGET    /settings/budgets\n\nPOST   /hooks/:triggerId\n\n# Internal, session-scoped\nPOST   /internal/attempts/:id/events\nPOST   /internal/attempts/:id/artifacts\nPOST   /internal/attempts/:id/evidence\nPOST   /internal/attempts/:id/checkpoints\nPOST   /internal/attempts/:id/usage\n```\n\nAll mutating operations support idempotency keys. Internal endpoints authorize the exact Attempt, capability, resource scope, and expiry.\n\n- Define Goal → Plan → Work → Evidence → Evaluation → Next Action schemas.\n- Define\n`AgentBackend`\n\n,`ExecutionTarget`\n\n,`ArtifactStore`\n\n, evaluator, capability, policy, and event contracts. - Write threat model, mutation classes, and policy hierarchy.\n- Add event log and budget-ledger foundations.\n\n**Exit:** contract tests pass for one fake backend and target; prohibited authority cannot be represented as a valid dispatch.\n\n- Goals UI and API with executable DoD.\n- Planner, Builder, Reviewer, and Orchestrator profiles.\n- One backend adapter and one isolated target.\n- WorkItems, Attempts, artifacts, evidence, deterministic evaluators, and Run timeline.\n- Hard token/cost/time limits and cancel.\n\n**Exit:** a small repository goal completes only after checks produce valid evidence; cancelling revokes the Attempt and cleanup is verified.\n\n- Capability gateway, scoped tokens, network policy, secret injection, audit.\n- Workspace TTL, checkpoint, destroy, and validated resume.\n- Mutation approvals and exception queue.\n\n**Exit:** prompt injection cannot obtain an ungranted tool/network/secret; an interrupted run resumes from a checkpoint in a fresh validated workspace.\n\n- Risk classifier and workflow profiles.\n- Retry, fork, handoff, escalation, stuck detection, and plan versioning.\n- Independent review and evaluator disagreement handling.\n\n**Exit:** low-risk work takes the short path; high-risk work requires its configured review/approval path; identical retries stop.\n\n- Multiple backend/model/target candidates.\n- Capability discovery, route scoring, reservation/reconciliation ledger, and budget re-planning.\n- Cost and reliability metrics by route and profile.\n\n**Exit:** routing respects hard constraints and records rationale; a route cannot start without reserved budget.\n\n- User/project/organization memory with provenance and review.\n- Postmortems and learning proposals.\n- Authenticated webhooks, schedules, and deduplication.\n\n**Exit:** a reviewed postmortem proposal improves a later plan or evaluator; unreviewed learning cannot weaken policy.\n\n- YAML export/import and CLI after the API and schemas stabilize.\n- R2-backed artifact storage or virtual filesystem only when real workflows require it.\n- Additional backends, targets, evaluator types, and role templates.\n\n**Evidence-gated completion:** a Run cannot complete from an agent message; every required DoD criterion has a current passing Evaluation and required approval.**Backend portability:** the same WorkItem contract executes against two fake backend adapters without domain changes.**Orthogonal routing:** backend/model and execution target can be changed independently when capabilities allow.**Risk adaptation:** a low-risk fixture uses a short flow; a high-risk fixture adds independent review and human approval.**Default deny:** ungranted tool, repo, secret, network, delegation, and memory access are rejected outside the model.**Delegation bounds:** delegated capabilities and budget are strict subsets of the parent envelope.**Workspace isolation:** concurrent Attempts cannot read or mutate each other’s writable state.**TTL cleanup:** expired workspaces are destroyed, credentials revoked, and cleanup evidence recorded.**Resume validation:** changed policy or revoked credentials prevents blind resume and triggers re-plan or fresh execution.**Retry control:** identical failure signatures reach the retry cap and produce a diagnosis instead of looping.**Fork comparison:** competing artifacts are evaluated against declared criteria before selection.**Cancellation:** cancel is idempotent, prevents new calls, revokes tokens, signals the backend, and completes cleanup.**Exception quality:** Inbox items contain a decision, evidence, recommendation, deadline, and safe default—not a raw transcript.**Hard budgets:** dispatch is refused when worst-case reservation exceeds remaining budget; actual usage reconciles exactly once.**Confidence honesty:** material uncertainties block or change the NextAction according to policy.**Artifact provenance:** hashes, producer, inputs, method, and timestamps can reproduce or audit deterministic evidence.**Memory boundaries:** retrieval respects user/project/organization scope and sensitivity; all durable writes have provenance.**Learning safety:** postmortem proposals are reviewable and cannot silently weaken security or approvals.**Trigger safety:** invalid signatures fail, duplicate events are idempotent, and payload instructions cannot alter system policy.**Audit completeness:** a Run can be reconstructed from goal approval through routing, calls, artifacts, evaluations, decisions, and cleanup.\n\n- Treat the schemas and interfaces as contracts; keep provider-specific details in adapters.\n- Start with one excellent end-to-end Goal flow before adding integrations.\n- Prefer deterministic evaluators; label model judgments and preserve their rubrics and inputs.\n- Never allow an agent to self-certify permissions, approval, evidence validity, or completion.\n- Never retry without recording what changed.\n- Never persist credentials in prompts, logs, artifacts, evidence, memory, or checkpoints.\n- Never let a child delegation broaden authority or budget.\n- Never retain a workspace past TTL without an explicit policy-authorized extension.\n- Keep the operator UI centered on outcomes, exceptions, evidence, and control.\n- Defer YAML, CLI, R2 filesystem, and role proliferation until observed usage justifies them.\n\nYou create a Goal, state constraints, approve a machine-evaluable Definition of Done, and set hard budgets. AgentOS assesses risk and produces a plan. An Orchestrator dispatches capability-matched Planner, Builder, and Reviewer profiles through whichever backend, model, and isolated execution target best satisfy policy and economics. Work produces artifacts; evaluators turn them into evidence. The system retries, forks, revises, or hands off within bounded authority. It interrupts you only for a real exception. When every required criterion passes, AgentOS presents the result, evidence, provenance, cost, uncertainty, and audit trail. Workspaces expire, credentials are revoked, and useful lessons become reviewable memory and postmortem improvements.", "url": "https://wpnews.pro/news/goal-centric-backend-agnostic-agentos-control-plane-blueprint", "canonical_source": "https://gist.github.com/gilamado1/0e33db1367bd5d331998826abdb759b7", "published_at": "2026-08-15 01:03:34+00:00", "updated_at": "2026-08-18 13:11:50.815997+00:00", "lang": "en", "topics": ["ai-agents", "ai-infrastructure", "ai-safety", "ai-policy"], "entities": ["AgentOS"], "alternates": {"html": "https://wpnews.pro/news/goal-centric-backend-agnostic-agentos-control-plane-blueprint", "markdown": "https://wpnews.pro/news/goal-centric-backend-agnostic-agentos-control-plane-blueprint.md", "text": "https://wpnews.pro/news/goal-centric-backend-agnostic-agentos-control-plane-blueprint.txt", "jsonld": "https://wpnews.pro/news/goal-centric-backend-agnostic-agentos-control-plane-blueprint.jsonld"}}