Skip to content

List or watch agentgroups in every project

GET
/apis/nodus.dev/v1/agentgroups
curl --request GET \
--url https://example.com/apis/nodus.dev/v1/agentgroups
labelSelector
string
fieldSelector
string
limit
string
continue
string
watch
string
resourceVersion
string
allowWatchBookmarks
string
timeoutSeconds
string

OK

Media type application/json
object
apiVersion
string
items
required
Array<object>

AgentGroup runs many AgentRuns of one Agent in parallel: a concurrency limit, a dependency graph, a shared cost cap and one cancel over its member runs. Members are AgentRuns created with spec.group, one per task, singly or as an AgentRunList of up to 100.

object
apiVersion
string
kind
string
metadata
object
annotations
object
key
additional properties
string
creationTimestamp
string
deletionGracePeriodSeconds
integer format: int64
deletionTimestamp
string
finalizers
Array<string>
nullable
generateName
string
generation
integer format: int64
labels
object
key
additional properties
string
managedFields
Array<object>
nullable
object
apiVersion
string
fieldsType
string
fieldsV1
object
key
additional properties
manager
string
operation
string
subresource
string
time
string
name
string
namespace
string
ownerReferences
Array<object>
nullable
object
apiVersion
required
string
blockOwnerDeletion
boolean
controller
boolean
kind
required
string
name
required
string
uid
required
string
resourceVersion
string
selfLink
string
uid
string
spec
required

AgentGroupSpec describes an AgentGroup.

object
agent
required

Agent names the Agent every member run runs: an Agent in the project, or a template in project nodus.

string
evaluation

AgentGroupEvaluation selects a reproducible Environment task manifest. Compute for the agent and grader Sandboxes is billed separately from maxCostUSD and remains subject to project and organization budgets.

object
environment
required

Environment is a project or nodus/name@version reference, resolved to an immutable image digest.

string
repetitions

Repetitions runs each task this many times; tasks times repetitions must be at most 100.

integer format: int32
seed

Seed selects the deterministic task manifest.

integer format: int64
split

Split is train or test; test by default.

string
tasks
required

Tasks takes the first N tasks in manifest order, 1 to 100.

integer format: int32
timeout

Timeout bounds the batch from creation, including manifest preparation and queued time; 30m by default, 1m to 24h.

string
limits

AgentGroupLimits is spec.limits.

object
maxActive

MaxActive is how many member runs may run at once, 1 to 1000; 10 when zero.

integer format: int32
maxPending

MaxPending is how many unfinished member runs the group admits, 1 to 10000; 10000 when zero.

integer format: int32
maxCostUSD

MaxCostUSD is one cap on the Claude usage (model and routing calls) of every member run together; none when empty. A member run starts only while what the group has spent, plus the per-run cost caps of its started unfinished runs, plus this run’s cap fits under it, so the members together never spend more on Claude. The Sandbox each run works in is billed on its own and is not counted. It can only be raised.

string
sealed

Sealed closes the group to new runs. It goes from false to true only; a group finishes once it is sealed and every member run is terminal.

boolean
state

State is Running (the default) or the cancel state, which cancels every unfinished member run.

string
status

AgentGroupStatus is what Nodus observed about an AgentGroup.

object
blockedReasons

BlockedReasons says why queued member runs have not started, with how many wait for each reason.

Array<object>
nullable

AgentGroupBlocked is one entry of status.blockedReasons.

object
count
required

Count is how many queued member runs wait for it.

integer format: int32
reason
required

Reason is DependencyWait, MaxActiveReached or MaxCostReached.

string
cleanup

Cleanup is Pending while a canceled or finished group still has unfinished member runs, then Complete. A terminal member run holds no Sandbox.

string
completionTime

CompletionTime is when the group reached a terminal phase.

string
cost

Cost is status.cost on every kind that spends money. It is a display copy of the ledger: amounts are decimal USD strings, and nothing is charged from these fields.

object
bySegment

CostSegments splits a charge by billing segment.

object
bootUSD

BootUSD is the charge from the start of billing until the program started.

string
coveredByNodus

CoveredByNodus lists the segments (Boot, Running, Restore, Teardown) with time Nodus paid for instead of charging it, such as the start and teardown of a run that failed because of Nodus.

Array<string>
nullable
restoreUSD

RestoreUSD is the charge for bringing a replacement up after capacity was lost.

string
runningUSD

RunningUSD is the charge while the program ran.

string
teardownUSD

TeardownUSD is the charge from stop until deletion was confirmed, with the billing increment.

string
final

Final is true once the final charge has posted.

boolean
fundedUntilTime

FundedUntilTime is when the current holds stop paying for the object.

string
heldUSD

HeldUSD is what is currently held for it.

string
limitUSD

LimitUSD is the object’s maxCostUSD, if it has one.

string
rateUSDPerHour

RateUSDPerHour is the sum of the hourly rates of its capacity that is still billing.

string
totalUSD

TotalUSD is what has been charged for this object so far.

string
counts
required

AgentGroupCounts is status.counts.

object
active
required

Active runs are running.

integer format: int32
cancelled
required

The runs canceled by request or because a dependency did not succeed.

integer format: int32
failed
required

Failed runs failed.

integer format: int32
queued
required

Queued runs have not started: they wait for their dependencies, a free slot or room under the cost cap.

integer format: int32
succeeded
required

Succeeded runs finished their work.

integer format: int32
total
required

Total is the number of member runs.

integer format: int32
waiting
required

Waiting runs wait for a message or for funds; their Sandbox may remain allocated until cleanup.

integer format: int32
evaluation

AgentGroupEvaluationStatus contains only aggregate results and pinned provenance. Unscored failures are excluded from passRate and meanReward; a zero denominator leaves both absent.

object
agentRevision

AgentRevision is the revision pinned by every member.

integer format: int64
agentUID

AgentUID and AgentRevision identify the definition pinned by every member of this batch.

string
cancelled
required

Canceled cases are not scored.

integer format: int32
environmentDigest

EnvironmentDigest is the resolved grading image, checked before every grading operation.

string
failed
required

Failed counts failed member executions, which are not scored.

integer format: int32
incorrect
required

Incorrect counts scored wrong answers.

integer format: int32
infrastructureFailure
required

InfrastructureFailure counts unscored grader or environment failures.

integer format: int32
initialized
required

Initialized says the fixed member batch has been created atomically.

boolean
invalidOutput
required

InvalidOutput counts scored answers that failed the output contract.

integer format: int32
meanReward

MeanReward averages reward over scored verdicts; absent if none.

number format: double
missingAnswer
required

MissingAnswer counts completed runs without a readable answer and removed members.

integer format: int32
passRate

PassRate is Correct divided by the number of scored verdicts; absent if none.

number format: double
passed
required

Passed counts Correct verdicts.

integer format: int32
pending
required

Pending counts cases not yet terminal or awaiting a verdict.

integer format: int32
total
required

Total is the requested number of cases, including repetitions.

integer format: int32
message

Message explains the phase in a sentence.

string
observedGeneration

ObservedGeneration is the spec generation this status reflects.

integer format: int64
phase

Phase is Running until the group is sealed and every member run is terminal, then Succeeded, or Failed when a member run failed; the cancel state moves it through the canceling phase to the canceled one.

string
reason

Reason is the machine-readable reason for the phase, such as RunsFailed.

string
startTime

StartTime is when the first member run started.

string
kind
string
metadata
object
continue
string
remainingItemCount
integer format: int64
resourceVersion
string
selfLink
string
shardInfo
object
selector
required
string
Example generated
{
"apiVersion": "example",
"items": [
{
"apiVersion": "example",
"kind": "example",
"metadata": {
"annotations": {
"additionalProperty": "example"
},
"creationTimestamp": "example",
"deletionGracePeriodSeconds": 1,
"deletionTimestamp": "example",
"finalizers": [
"example"
],
"generateName": "example",
"generation": 1,
"labels": {
"additionalProperty": "example"
},
"managedFields": [
{
"apiVersion": "example",
"fieldsType": "example",
"fieldsV1": {
"additionalProperty": "example"
},
"manager": "example",
"operation": "example",
"subresource": "example",
"time": "example"
}
],
"name": "example",
"namespace": "example",
"ownerReferences": [
{
"apiVersion": "example",
"blockOwnerDeletion": true,
"controller": true,
"kind": "example",
"name": "example",
"uid": "example"
}
],
"resourceVersion": "example",
"selfLink": "example",
"uid": "example"
},
"spec": {
"agent": "example",
"evaluation": {
"environment": "example",
"repetitions": 1,
"seed": 1,
"split": "example",
"tasks": 1,
"timeout": "example"
},
"limits": {
"maxActive": 1,
"maxPending": 1
},
"maxCostUSD": "example",
"sealed": true,
"state": "example"
},
"status": {
"blockedReasons": [
{
"count": 1,
"reason": "example"
}
],
"cleanup": "example",
"completionTime": "example",
"cost": {
"bySegment": {
"bootUSD": "example",
"coveredByNodus": [
"example"
],
"restoreUSD": "example",
"runningUSD": "example",
"teardownUSD": "example"
},
"final": true,
"fundedUntilTime": "example",
"heldUSD": "example",
"limitUSD": "example",
"rateUSDPerHour": "example",
"totalUSD": "example"
},
"counts": {
"active": 1,
"cancelled": 1,
"failed": 1,
"queued": 1,
"succeeded": 1,
"total": 1,
"waiting": 1
},
"evaluation": {
"agentRevision": 1,
"agentUID": "example",
"cancelled": 1,
"environmentDigest": "example",
"failed": 1,
"incorrect": 1,
"infrastructureFailure": 1,
"initialized": true,
"invalidOutput": 1,
"meanReward": 1,
"missingAnswer": 1,
"passRate": 1,
"passed": 1,
"pending": 1,
"total": 1
},
"message": "example",
"observedGeneration": 1,
"phase": "example",
"reason": "example",
"startTime": "example"
}
}
],
"kind": "example",
"metadata": {
"continue": "example",
"remainingItemCount": 1,
"resourceVersion": "example",
"selfLink": "example",
"shardInfo": {
"selector": "example"
}
}
}

An error: a metav1.Status whose reason is a registered code.

Media type application/json

Status is the error body of every API response: a Kubernetes metav1.Status (so kubectl and client-go understand it) plus three top-level extensions that those clients ignore (ADR-028).

object
apiVersion
string
code
integer format: int32
details
object
causes
Array<object>
nullable
object
field
string
message
string
reason
string
group
string
kind
string
name
string
retryAfterSeconds
integer format: int32
uid
string
docs

Docs is the URL of the code’s docs page.

string
fix

Fix says what to do next, for example a CLI command or the field to change.

string
kind
string
message
string
metadata
object
continue
string
remainingItemCount
integer format: int64
resourceVersion
string
selfLink
string
shardInfo
object
selector
required
string
reason
string
requestId

RequestID identifies the request in logs and support tickets.

string
status
string
Example generated
{
"apiVersion": "example",
"code": 1,
"details": {
"causes": [
{
"field": "example",
"message": "example",
"reason": "example"
}
],
"group": "example",
"kind": "example",
"name": "example",
"retryAfterSeconds": 1,
"uid": "example"
},
"docs": "example",
"fix": "example",
"kind": "example",
"message": "example",
"metadata": {
"continue": "example",
"remainingItemCount": 1,
"resourceVersion": "example",
"selfLink": "example",
"shardInfo": {
"selector": "example"
}
},
"reason": "example",
"requestId": "example",
"status": "example"
}