Docs

Daita agents / guide

Durable Jobs

Start, inspect, cancel, and read results from bounded agent-owned background work.

#Current Job Surface

start_data_profile is the only shipped model-facing job starter. It freezes an exact read-only specification over one to sixteen current catalog resources, including their source and resource revisions, sensitivity, execution capability, and registry contract digest.

The job record is persisted before background execution begins. The supervisor then runs the internal data_profile capability through the same CapabilityRuntime used by foreground tools. A successful profile produces a bounded result and one verified JSON artifact.

There is no generic job submission API, workflow graph, shell execution, or silent external-service fallback. Connected-executor behavior has offline conformance coverage, but no real external profile ships with Daita.

#Lifecycle

Job statuses are:

StatusMeaning
queuedPersisted and waiting for a supervisor claim
runningClaimed by the currently open agent host
cancel_requestedDurable cancellation intent has been recorded
succeededValidated result and artifact are available
failedExecution failed with a bounded terminal reason
cancelledCancellation completed
needs_attentionSafe automatic progress cannot continue

The supervisor enforces global, per-agent, and per-source concurrency limits, attempt and deadline bounds, claims, renewals, and fencing. An interrupted safe Daita-mode attempt can resume on reopen without creating a competing execution path.

Jobs make progress only while an Agent or resident host remains open.

#Python API

python
from daita import JobStatus
 
jobs = await agent.list_jobs(
    statuses=frozenset({JobStatus.QUEUED, JobStatus.RUNNING}),
    limit=50,
)
 
inspection = await agent.inspect_job(job_id)
result = await agent.read_job_result(job_id)
cancelled = await agent.cancel_job(job_id)

Lifecycle access is agent-scoped, not conversation-scoped. The originating conversation and run remain immutable provenance, but another conversation owned by the same agent can list the job, inspect it, read its result, or request cancellation. A cross-agent lookup fails without disclosing metadata.

#Terminal

Open the record-backed manager with:

text
/jobs
/jobs inspect <job-id>
/jobs results <job-id>
/jobs cancel <job-id>

The manager lists up to 50 jobs and can refresh lifecycle facts, inspect attempts, show validated results and artifact references, and confirm cancellation without consuming a model turn.

#Completion Follow-up

A terminal Daita profile job can create one bounded code-authored follow-up after completion. The follow-up uses the ordinary model loop with a frozen machine execution scope and one-success limit. It can read the exact job result and artifact reference, then delivers its conclusion to the originating conversation inbox.

The follow-up cannot start or cancel jobs, update data, manage routines, expand source scope, create another continuation, or deliver outside the conversation inbox. If source authority is revoked before it runs, it fails closed before reasoning.

See Inbox and Deliveries for result delivery and Scheduled Routines for recurring work.