Agents and jobs
Autolith does its own work by default. Child agents and headless jobs exist for work that needs independence, parallelism, or a life outside the conversation.
Child agents
A child agent is a real in-process session with its own conversation, its own tool set, and an explicit depth limit. It follows a mandatory yield protocol: it finishes by submitting a result, not by trailing off. Assignments can run as one child or as a concurrency-limited batch with shared background context.
Children detach by default. The work continues in the background
while the main conversation keeps moving; you join a child when
its result is actually needed. Roles tune what a child may do:
scout, designer, reviewer, librarian, task, and sonic. Use
task.agents to list what the current depth and policy
allow.
Jobs
Anything that runs outside the immediate turn becomes an inspectable job: a background shell command, a Lisp evaluation, a test run, a detached child. Jobs are listed, waited on, inspected, and cancelled by identifier. Keeping the identifier matters; a turn does not end while a required job is still pending.
Outside the conversation
The same machinery has a fully non-interactive face: the
run-job boundary runs one job from a script with a
data-only envelope and a structured-output contract. The cookbook
shows it in Run Autolith from CI.