Glossary
This is the canonical vocabulary for Agent Vigilo documentation. Inline terms throughout the site open the same definitions and link back to their entries here.
Code identifiers and stored values appear in code style. For example, a run
can have operational status = completed and policy gate_status = fail at
the same time.
Runtime Roles
- Vigilo CLI
- Command entry point for evaluator publishing, run management, shard administration, and runtime service modes.
- A command can perform work directly or run a coordinator or worker process.
- Coordinator
- Process that advances durable creation recovery, lease recovery, dispatch, finalization, and outbox publication.
- Many coordinators can run concurrently because database claims divide work.
- Worker
- Process that consumes chunk-ready broker messages, claims chunks, invokes the agent target and evaluators, and persists results.
- Many workers can run concurrently; a chunk claim selects one current owner.
- Bounded work
- Work limited by a configured item count, concurrency count, time budget, or retry budget.
- Prevents one cycle, placement, chunk, or evaluator from consuming unlimited resources.
- Container
- Independently runnable process or infrastructure service in a deployment view.
- A container is a deployment boundary, not necessarily an operating-system container.
- Command flow
- Decisions and side effects produced by one CLI command.
- One flow follows one command from input through persistence and external calls.
Evaluation And Results
- Agent target
- HTTP service or workflow whose behavior is being evaluated. It may wrap a model, prompt pipeline, or multi-step agent.
- One versioned target configuration per run profile.
- Run profile
- Versioned configuration for the agent target, evaluator bindings, scoring, persistence, retries, and gate behavior.
- One profile snapshot per run; unrelated to a Cargo build profile.
- Dataset
- Versioned collection of evaluation cases.
- One dataset version per run.
- Case
- One immutable input, optional expected output, and routing metadata from a dataset.
- A case can be evaluated once in a run.
- Input
- Case data sent to the configured agent target.
- One required input value per dataset case.
- Expected output
- Optional oracle data available to evaluators but not sent to the agent target.
- Zero or one expected value per dataset case.
- Task type
- Case label used by automatic run-profile matching.
- One task type per dataset case.
- Tags
- Case labels used by
tags_anyandtags_allprofile matching rules.- Zero or more tags per dataset case.
- Case group
- Run-profile rule that selects evaluator bindings and aggregation policy for matching cases.
- One explicit group or one or more automatically matched groups per case.
- Evaluator
- Versioned WASM component that examines an agent output and returns one measurement or abstention plus optional diagnostics.
- Identified by
<namespace>/<name>:<version>. - Identified by
- Evaluator binding
- Stable profile entry that assigns an evaluator measurement to host-owned normalization, threshold, requiredness, dimension, weight, and blocking policy.
- Identified by
evaluators[].id; many bindings can apply to one case. - Identified by
- Evaluator identifier
- Immutable published identity in
<namespace>/<name>:<version>format.- One identifier selects one versioned evaluator artifact.
- Measurement
- The single raw observation returned by a completed evaluator invocation.
- Binary, numeric, or ordinal; the profile explicitly maps it to utility and judgment.
- Normalization policy
- Profile-owned mapping from a raw evaluator measurement to a score between 0.0 and 1.0.
- Binary, numeric linear, numeric curve, numeric threshold, or ordinal mapping; invalid values are rejected.
- Evaluator outcome
- Invocation execution state: completed, error, or abstained.
- Separate from the host-derived passed or failed quality judgment.
- Diagnostic finding
- Non-authoritative evaluator observation with severity, category, reason, evidence, and tags.
- Zero or more per invocation; diagnostics cannot score or block.
- Evaluator completeness
- Execution-level check that every required binding produced exactly one valid, normalized measurement.
- Errors, abstentions, missing results, duplicates, or invalid measurements withhold authoritative scores.
- Dimension
- Profile-owned scoring bucket, such as
formatorquality.- Host-normalized binding results are grouped into dimensions before total scoring.
- Dimension score
- The
min_scoreorweighted_meanresult for one dimension of one execution.- Zero or one score per configured dimension and execution.
- Aggregate score
- Weighted total of an execution's dimension scores.
- Zero or one total score per execution.
- Run scorecard
- Authoritative run-wide dimension and evaluator gate results merged from shard-local counters.
- One immutable scorecard per completed run; includes coverage, score, error, abstention, and pass-rate metrics.
- Blocking result
- Host-derived failed binding result that can fail an execution independently of its aggregate score.
- Blocking comes only from evaluator binding or dimension policy.
- Execution
- Durable evaluation of one dataset case against the agent target.
- One expected execution per case in a run.
- Attempt
- One worker's effort to complete an execution. Retries create later attempts.
- Many attempts can belong to one execution; only the current attempt is authoritative.
- Current attempt
- Attempt ID and number that an execution currently authorizes to write terminal state.
- Zero or one authoritative attempt per execution.
- Run
- One durable evaluation of a dataset version with a run profile and agent target.
- A run contains chunks and expected executions.
- Run status
- Operational lifecycle state such as
creating,pending,running,completed,failed, orcancelled.- One current value per run.
- Gate status
- Policy outcome such as
unknown,pass, orfail.- One current value per run; distinct from run status.
Work And Routing
- Chunk
- Bounded range of dataset cases processed under one worker claim.
- Many chunks per run; each chunk belongs to one run shard.
- In-flight chunk
- Chunk-ready broker delivery currently being processed by one worker process.
- Bounded per worker process by
max_inflight_chunks. - Bounded per worker process by
- Prefetch
- RabbitMQ limit on unacknowledged deliveries reserved by one consumer.
- Configured per worker consumer.
- Chunk parallelism
- Number of case executions processed concurrently inside one claimed chunk.
- Bounded independently from in-flight chunk count.
- Run shard
- Stable logical segment numbered
0..127and stored asrun_shard; it keeps a chunk and its execution-owned rows together.- A run uses only the shards assigned to its chunks.
- Control database
- PostgreSQL role that owns global run state, placement metadata, dispatch cursors, creation plans, and control outbox records.
- Exactly one active control-capable database placement.
- Execution database
- PostgreSQL role that owns shard-local chunks, snapshots, executions, attempts, results, summaries, and chunk-ready outbox records.
- One or more shard-capable placements; the control database may also serve this role.
- Database alias
- Stable name such as
primaryorshard_001used instead of a connection URL.- One alias per database placement.
- Database placement
- Catalog entry that maps a database alias to a secret environment-variable name, role, and status.
- One row per configured PostgreSQL target.
- Database placement status
- Admission lifecycle for a target:
activeaccepts and serves ownership,drainingserves existing ownership but accepts none, anddisabledserves no runtime work.- One status per database placement.
- Placement drain
- Guarded transition that stops new shard ownership before routes are moved away and a database placement is disabled.
- The drain does not move rows by itself.
- Database router
- Process-local
DatabaseRouterthat reads placement metadata and resolves control or execution pools.- One lazily initialized router per Vigilo process; it does not choose new shard assignments.
- Database circuit breaker
- Process-local admission guard that temporarily skips one unavailable database alias without changing durable routing.
- One independent circuit per contacted execution database alias and process.
- Shard placement
- Control-plane mapping from
run_id + run_shardto a database alias, lifecycle, route version, and write epoch.- One row per used run shard.
- Execution route
- Resolved shard placement plus the PostgreSQL pool for its current database alias.
- Resolved for one
run_id + run_shard. - Resolved for one
- Route version
- Monotonically increasing control-plane CAS generation changed by every route alias or lifecycle update.
- One current value per shard placement; not a schema or deployment version.
- Write epoch
- Monotonically increasing execution-ownership generation carried by routed work and validated in the destination database.
- Changes only when ownership moves or is restored.
- Local shard admission
- Execution-database authority row containing the accepted write epoch and
open,draining,prepared, orclosedstate.- One row per locally known
run_id + run_shard; checked in the write transaction. - One row per locally known
- Dispatch cursor
- Control-database progress for dispatching one run shard.
- One cursor per used run shard after creation;
drainedforbids further dispatch. - One cursor per used run shard after creation;
- Chunk dispatch window
- Bounded set of pending chunks selected from one run shard in one dispatch operation.
- One window can create one
run.chunk.readyoutbox event record per selected chunk. - One window can create one
- Coordinator cycle
- Ordered iteration of creation recovery, lease recovery, chunk dispatch, finalization, and outbox publication.
- Repeats for
coordinator start; runs once forcoordinator once. - Repeats for
- Coordinator pass
- One bounded stage within a coordinator cycle, such as dispatch or outbox publication.
- A pass can visit multiple database aliases.
- Shard move
- Targeted relocation of one
run_id + run_shardroute and its shard-owned rows to another database alias.- One run shard per move operation.
- Rebalance plan
- Persisted set of targeted shard moves for a capacity or placement-drain operation.
- One plan contains many rebalance items.
- Rebalance item
- Claimable plan item for moving one specific
run_id + run_shard.- One shard move per item; concurrent apply processes can claim different items.
Ownership And Concurrency
- State
- Persisted lifecycle value used to determine which transitions are valid.
- One current lifecycle value per stateful record.
- Transition
- Guarded database change from one state to another.
- A transition applies only when its authority and current-state predicates hold.
- Owner
- Process or claim that currently has guarded authority to perform a state transition.
- Ownership is temporary unless represented by durable placement state.
- Claim
- Successful transition that gives a process temporary authority over one work item.
- Examples include chunk, dispatch-cursor, outbox-delivery, and rebalance-item claims.
- Lease
- Time-bounded claim authority that becomes recoverable after its deadline.
- Expiry permits recovery but does not alone prevent a stale write.
- Claim token
- Opaque value issued with a claim and required to settle or renew that exact claim.
- A newer claim gets a different token, fencing the previous owner.
- Fencing token
- Value whose equality proves that an owner or route is still current.
- Checked on every protected mutation; claim tokens and route versions are fencing values.
- Row lock
- PostgreSQL lock on selected table rows, usually held until the transaction ends.
- PostgreSQL enforces conflicting row-lock modes.
- Admission lock
- Transaction-scoped PostgreSQL advisory lock used cooperatively by shard writers.
- Normal writers take the shared form; shard movement takes the exclusive form for one
run_id + run_shard. - Normal writers take the shared form; shard movement takes the exclusive form for one
- Route fence
- Expected database alias, placement status, and route version validated immediately before a routed write.
- One expected fence per resolved execution route.
- Route CAS
- Compare-and-swap update that changes a route only while its stored alias, lifecycle, and route version still match.
- Serializes concurrent control-plane route changes.
- Compare-and-swap
- Update that succeeds only if stored values still equal expected values.
- Used to change a route or settle a claim without overwriting newer state.
- Idempotent operation
- Operation that can be repeated without duplicating its logical effect.
- Retries may execute more than once while producing one durable outcome.
- No-op
- Valid path that changes nothing because another process already advanced the state.
- A no-op is a successful convergence outcome, not necessarily an error.
- Recovery
- Reassignment or repair after a lease expires or a durable workflow stops mid-operation.
- Recovery preserves retry limits and invalidates stale owners.
- Stale attempt
- Attempt that is no longer authoritative because its lease expired, its chunk was recovered, or a later attempt superseded it.
- Retained for history but rejected as a current writer.
Events And Messaging
- Outbox event record
- Durable
outbox_eventsrow inserted in the same database transaction as the state change it describes.- One logical event per unique
dedupe_key. - One logical event per unique
- Outbox delivery row
- Temporary publish work in
outbox_delivery_queue.- One active delivery row per unpublished outbox event record.
- Publish claim
- Time-bounded ownership of an outbox delivery row, fenced by
claim_token.- One current publisher claim per delivery row.
- Broker
- RabbitMQ transport that carries published messages from coordinators to workers.
- Transport is at-least-once; durable authority remains in PostgreSQL.
- Broker message
- RabbitMQ message created from an outbox event record after publication.
- May be delivered more than once.
- Worker delivery
- One broker delivery that identifies a chunk for a worker to claim.
- A delivery is acknowledged, delayed, requeued, or quarantined after processing.
- Event type
- Semantic event name such as
run.started,run.chunk.ready, orrun.completed.- Stored on the outbox record and used for broker routing.
- Dedupe key
- Stable identity for one logical outbox event record, also published as the AMQP message ID.
- Unique in the outbox ledger.
- At-least-once delivery
- Delivery guarantee that permits redelivery after uncertain acknowledgement.
- Consumers must use database claims and idempotency guards.
- Publisher confirm
- RabbitMQ acknowledgement that a published message reached the broker.
- Required before the outbox event record is marked published.
- Message settlement
- Worker acknowledgement, delayed redelivery, or requeue decision for one broker delivery.
- One settlement outcome per received delivery.
Evaluator Packaging
- WIT
- WebAssembly Interface Type definition used as the evaluator ABI source of truth.
- Versioned contracts live under
wit/evaluator/<version>/evaluator.witand become immutable when released. - Versioned contracts live under
- WIT world
- WIT boundary that groups the evaluator's imported and exported interfaces.
- The evaluator implements
evaluator-world. - The evaluator implements
- Evaluator ABI
- Exact versioned WIT binary contract implemented by an evaluator WebAssembly component.
- Identified by package, world, interface, version, and immutable contract hash.
- Evaluator host adapter
- Version-specific host binding that validates, invokes, and maps one supported evaluator ABI.
- Selected from the run's immutable execution plan.
- Evaluator execution plan
- Hashed run snapshot of the exact evaluator ids, artifact hashes, ABI identities, adapters, runtime versions, and scoring policy hash.
- Frozen once per run and verified by every worker placement.
- WASI Preview 2
- Component-oriented WASI target used by evaluator artifacts.
- Rust target
wasm32-wasip2. - Rust target
- Evaluator artifact
- Compiled WebAssembly component stored in the evaluator registry.
- One immutable artifact content per evaluator identifier.
- Evaluator registry
- Durable catalog of published evaluator identities, metadata, contracts, and artifact content.
- Contains many versioned evaluators.
- Package manifest
Cargo.tomlfile that supplies evaluator crate identity and version.- One Cargo manifest per evaluator crate.
- Evaluator manifest
Vigilo.tomlfile describing artifact paths, WIT expectations, and publish metadata.- One per evaluator package.
- WIT contract
- Immutable versioned interface definition that a compiled evaluator component must implement.
- Validated by declaration, contract hash, and typed component linking.
- Build profile
- Named artifact selection in
Vigilo.toml, such asdevorrelease.- Selects a build output; not an evaluation run profile.
- Wasm store
- Fresh Wasmtime execution state created for one evaluator invocation.
- One isolated store per invocation.
- Fuel
- Deterministic Wasmtime instruction budget for one evaluator invocation.
- Exhaustion interrupts evaluator execution.
- Evaluator semaphore
- Process-local cap on concurrently active Wasm evaluator invocations.
- One shared semaphore per worker process.
- Publish
- Validate and insert a versioned evaluator artifact into the evaluator registry.
- Publishing is immutable for one evaluator identifier.
Cardinality At A Glance
one run
-> many chunks
-> one expected execution per dataset case
-> one or more used run shards
-> one shard placement per used shard
-> one dispatch cursor per used shard
-> many chunk dispatch windows over time
-> one run.chunk.ready outbox record per selected chunk
one run.started outbox record per run
one broker message per publish attempt, with possible redelivery
Multiple run shards can share one database alias. A coordinator pass can report counts for several aliases even though each routed operation targets one database at a time.