| What you write | A TypeScript workflow: roles, steps, reviews and decisions. | Prompts in workspace chats. | A request to a host that plans and delegates the work. | A graph of node functions, in TypeScript or Python. | TypeScript steps, with branches, parallel work and repeated steps. | Python tasks and agents, with task configuration in JSONC. | An agent folder with instructions and TypeScript tools and configuration. | Markdown instructions and settings for each subagent. | Workflow and activity code; TypeScript is one supported language. |
| The workers | Claude Code, Codex, Grok and OpenCode, plus SDK and API engines. Each role names its engine. | Claude Code, Codex, Cursor and OpenCode, one harness and model per chat. | Research, Code, Design and Oncall agents, plus third-party agents through a CLI, an agent protocol or a compatible API. | Your node functions, calling models and tools. | Agents and tools called by workflow steps. | Agents with configured models, assigned to tasks. | Configured agents and subagents, with their tools and models. | Claude models working within a Claude Code session. | Worker processes running your activities, which can call models or other services. |
| Send a failed test or review back | Name the step that gets the findings or command output. It runs again with that feedback. | Agent reviews and inline diff comments; send comments back to the agent in chat. | The experimental Curator sends failed checks back while revising an agent’s setup. It is a repository feature, separate from the installed package. | The evaluator-optimizer example returns a model’s feedback to the generator; you write the route. | Pass feedback through repeated workflow steps; you write the condition for another pass. | A failed task guardrail returns its error to the agent for another attempt. | Call a reviewer agent from a workflow; your code decides what to do with the findings. | A review subagent returns findings to the main conversation. | Write the revision loop in workflow code. Activity retries handle execution failures separately. |
| Decide whether another round helps | A judge weighs the findings and revision history, within a hard cap. Blocking findings go back within that cap. | You steer further work in chat. | The experimental Curator stops when you are satisfied, when it finds nothing worth changing or when it hits its round limit. It revises how the agent is set up. | A model returns a grade; your route decides whether to repeat. | Your loop condition decides; a step can get its input from an agent. | A model or code check passes, or the retry cap ends the attempts. | Model evaluations answer typed questions; your code uses the answer. | Instructions steer the review. A turn cap ends work with a partial result. | Your workflow code decides, using an activity’s result. |
| Ask a person | A person’s decision is a step. No answer pauses; a refusal can return notes to the writer. | Review the diff, comment and merge in the app. | Oncall involves a person when the task needs human judgement. | Interrupt a node, then resume with the person’s answer. | Suspend and resume with the person’s input. | Enable human review of a task’s answer. | Ask inside a workflow; the run waits for the answer. | Tool permission prompts, governed by the subagent’s permission mode. | Wait for a signal or update carrying the decision. |
| Pick up unfinished work | Resume a recorded workflow() without repeating finished stages. Uncertain work can require a person’s decision before retrying. | Restore workspace chats. Cloud agents can keep working when you close the laptop. | EverOS keeps memory across sessions. The linked page does not describe continuing a run without repeating finished steps. | Persistent checkpoints save graph state. An interrupted node restarts from its beginning. | Restore a suspended run from its stored snapshot after an application restart. | Enable checkpointing; restoring a saved checkpoint skips completed tasks. | Durable sessions checkpoint steps and survive process restarts. | Resume a subagent with its conversation history. | Replay event history to restore workflow state and continue on a worker. |
| Where it runs | A library call, from a TypeScript file or a service you already run. No database required. | A Mac app with local or cloud workspaces. | Local CLI or browser UI, with installers and a Docker option. | A library with a checkpointer, or the hosted Agent Server. | Your application or a Mastra server, on your infrastructure or a hosted platform. | A Python application. | A Node service you host, or Vercel. | Inside Claude Code. | Your workers plus Temporal Service, self-hosted or Temporal Cloud. |
| Use their agent in an Obversa role | Choose an engine for each role. | No engine for this. | No engine for this. | LangGraph engine design. There is no package to install. | Mastra engine design. There is no package to install. | No engine for this. | eve engine design. There is no package to install. | Claude Code is an engine; individual subagents are not separate Obversa engines. | No engine for this. |