Skip to content

Glossary

Canonical vocabulary for Noeta. Each term has a single, stable meaning across the codebase and docs. The authoritative source is CONTEXT.md in the repository root.

Core abstractions

Task

One execution instance of an agent; it can spawn sub-tasks and can suspend and resume. The only first-class citizen in the system. Avoid: Run, Job, Execution, Workflow Instance.

See also: Concepts, ADR: Task as the only primitive

Subtask

A task spawned from a parent task via spawn_subtask. Structurally identical to a parent task, related only through parent_task_id. Avoid: Child Run, Sub-agent.

See also: Concepts, ADR: Subtask fan-out and durable wake

Agent

A named, spawnable configuration (policy + tools + context spec + budget). Not a runtime entity — just the "class" of a task. Every Agent carries a description used to render the subagent dispatch control tool schema. Avoid: Bot, Assistant, AI.

See also: Presets, ADR: Tool and agent catalog

Options

The declarative agent configuration (public surface noeta.sdk.Options). Compiled by compile_options into an AgentSpec. The sole way to express both the official agent set and custom agents.

See also: API Reference, Configuration

Step

The slice by which a task advances within one Engine main-loop pass: compose_view → decide → dispatch. Avoid: Iteration, Turn, Cycle.

Decision

The return value of Policy.decide, input to Engine dispatch. A set of neutral mechanism variants: tool_calls, spawn_subtask, yield_for_human, wait_timer, wait_external, finish, fail, spawn_subtasks, state_patch. Avoid: Action, Command, Intent.

See also: Concepts

Policy

The function that "decides the next step given the current View." Can be a pure LLM (ReActPolicy), a pure FSM, or a hybrid. Avoid: Pattern, Strategy, Brain.

See also: Concepts, ADR: Engine-policy-dataflow

Tool

An external action the agent can invoke. The structured-contract trio name / input_schema / description is hand-written and LLM-facing. Also carries risk_level. An open extension surface via Options. Avoid: Function, Action, Skill.

See also: Tools Reference, ADR: Tool description canonical

Provider

A Noeta-shape adapter for an external service (LLM / storage / vector store). LLMProvider is open via Options.provider and re-exported through noeta.sdk. Storage backends are configured through host config, not Options. Not a context content source.Avoid: Vendor, Backend, Connector.

See also: Configuration, ADR: Provider adapters and multimodal, ADR: Provider-neutral

Skill

A local, static LLM-workflow template at .noeta/skills/<name>/SKILL.md, optionally with resource files. Three-layer merge (builtin < global ~/.noeta/skills < workspace). Two-stage on-demand loading: menu rendered into the skill control tool schema; body rendered into semi-stable context once selected. Not the same thing as a Tool.Avoid: Plugin, Module, Macro.

See also: ADR: Model-driven skill invocation, ADR: Skill resource on-demand

State and events

EventLog

Per-task append-only stream of EventEnvelope records. The source of truth for causality and decisions.Avoid: Journal, Log, Audit Trail.

See also: Concepts, ADR: Event-sourced truth

Event / EventEnvelope

One record in the EventLog. The envelope holds seq / type / actor / trace_id / causation_id; the payload is a typed dataclass. Avoid: Message, Record.

ContentStore

Content-addressed, immutable large-object storage. The source of truth for large objects. Bodies larger than the 4 KB event-payload cap go here; the envelope only carries a ContentRef. Avoid: BLOB Store, Asset Store, Object Store.

See also: Concepts, ADR: Storage protocols L0

ContentRef

A reference into the ContentStore: hash + size + media_type. Avoid: URL, Path, Pointer.

Artifact

A large object produced by a Tool or Provider, referenced via a ContentRef. Avoid: File, Attachment, Blob.

Snapshot

A special event in the EventLog whose body goes into the ContentStore. Written before each suspend; an acceleration point for fold. Avoid: Checkpoint, State Dump.

Task State (four slices)

Four typed slices, each with exactly one writer:

  • RuntimeState — messages / usage (writer: Engine)
  • TaskState — goal / phase / todos / decisions / active_content (writer: Policy's state_patch)
  • ContextState — current plan ref (writer: Engine fold)
  • GovernanceState — cost / denied (writer: Engine)

Execution model

Engine

Advances a single Task by one step. ≤ 500 lines. Knows nothing of worker / dispatcher / workflow. Locked: not an extension point. Avoid: Runtime, Executor.

See also: Concepts, ADR: Engine-policy-dataflow

Worker

The process that leases a Task from the Dispatcher and calls the Engine to advance it. One lease runs until the next suspend or terminal state, then releases.Avoid: Runner, Daemon.

See also: Concepts, ADR: Worker lease model

Lease

A Worker's short-term exclusive hold on a Task, with lease_id / expires_at. Avoid: Lock, Claim.

See also: ADR: Worker lease model, ADR: Single-writer invariant

Dispatcher

Manages Task enqueue, Lease granting, Wake-event delivery, and Stale reclamation. Avoid: Scheduler, Queue Manager.

See also: Concepts, ADR: Worker lease model

Suspended

One of a Task's 4 states, waiting on a wake event. A unified expression of waiting on subtask / approval / timer / external event. Avoid: Yielded, Paused, Blocked, Waiting.

WakeCondition / WakeEvent

Describes what a Task is waiting on. SubtaskCompleted / HumanResponseReceived / TimerFired / ExternalEvent.

See also: Concepts, ADR: Subtask fan-out and durable wake

Context

View

The LLM input the ContextComposer assembles for the Policy. Not equal to the Task — it is a projection. Avoid: Prompt (View is the structured form of a Prompt), Frame.

ContextComposer

Assembles a Task into a View. The main path calls no LLM. The concrete ThreeSegmentComposer is a closed extension point on the user surface (stable-prefix KV-cache reproducibility is a hard constraint). The only open hook is registering a ContentKindSpec. Avoid: PromptBuilder, ContextAssembler.

See also: ADR: Unified context supply, ADR: Context compaction

ContextPlan

The View metadata for a given LLM call (which blocks were selected, what was compacted, what was dropped). Used for audit and debug. Avoid: Prompt Trace.

Stable Prefix / Semi-stable / Dynamic Suffix

The fixed segment names in the View's three-part assembly. The cache-friendliness of the Stable Prefix is a hard constraint.

Content Channel

The generic mechanism by which resident content (skills, memory index) enters context. Two parts: event recording (ContextContentRecorded) + assembly rendering (ContentChannelRegistry renders each kind into the semi-stable segment). Registering a ContentKindSpec is the open extension hook. Avoid: Provider, ContentSource, Middleware.

See also: ADR: Model-driven skill invocation

origin

An optional author marker on a Message, one of human / system / memory, defaulting to None = the role's natural author. Single-writer guard: only the engine's recording path may write it. Avoid: Author, Sender, Role.

See also: ADR: Event origin marker

Memory

Cross-task long-term memory v1: write = memory_write tool, read = memory_read tool, resident index = content channel tenant (kind="memory", policy evolving), auto-recall = host retrieves at user-message seam. Controlled by Capabilities.memory. Avoid: using "Memory" to mean TaskState (that is in-task state; this is cross-task).

Governance

Principal

The initiator of, or party responsible for, a Task; holds identity / capabilities / allowed_side_effects / delegation chain. Avoid: User (a User is a kind of Principal), Actor.

Contract

A Task's input, expected-output schema, rejection conditions, and side-effect declaration. Frozen into the TaskCreated event. Avoid: Spec, Schema.

Budget

A Task's resource ceilings (iterations / cost_usd / wall_seconds / tool_calls). Avoid: Quota, Limit.

Guard

A synchronous hook that runs at three points — before_tool_call / before_spawn_subtask / before_finish — returning allow / deny / require_approval. Avoid: Middleware, Interceptor, Filter.

See also: Concepts, ADR: Guard-observer hooks

Observer

An asynchronous hook subscribed to the EventLog; its failure does not affect the Task. Avoid: Listener, Subscriber.

See also: Concepts, ADR: Guard-observer hooks

Mutator

Deprecated in Noeta v2. Hooks may not modify ctx / payload. To modify, change the Policy or the Composer instead.

Operations

Inspect

Reads the EventLog + ContentStore and presents history to a human. No external IO. Avoid: View Log, Dump.

Resume

Continues actual execution from a suspended state. An operational emergency-stop lever; the normal path is triggered by a wake event. Avoid: Restart, Continue.

See also: Failure Modes

Flagged ambiguities

"Workflow"

Not a first-class concept. Express fixed procedures with a deterministic Policy + spawn_subtask. An orchestration script the model improvises lands as one Task + a Policy that interprets that script.

"Session"

Not a first-class concept. Multi-turn conversation is simply one Task receiving user input repeatedly: one interactive session = one Task.

"Run"

Not a first-class concept. Always use Task.

Released under the MIT License.