Parallel agents with AgentGroups (Beta)
Parallel agents are in Beta. An AgentGroup runs many AgentRuns of one agent: you create the group, add a run for each task, and the group releases them as slots and budget allow.
- Create runs for a group. Give each run
spec.groupand aspec.taskKey.nodus get agshows each group’s phase, finished runs out of all, active runs and cost, andnodus get ar --field-selector spec.group=NAMElists its runs.status.blockedReasonssays why queued runs have not started. - Limit how many run at once.
spec.limits.maxActive(default 10) is how many runs go together, andspec.limits.maxPending(default 10000) is how many unfinished runs the group takes in. - Order runs with dependencies. A run with
spec.dependsOnstarts after those tasks succeed. When one fails or is cancelled, the run is cancelled with reasonDependencyFailedorDependencyCancelled. - One cost cap for the group. With
spec.maxCostUSD, a run starts only while its own cap still fits under what is left, so the runs together never spend more than the cap. - Seal, cancel and delete. Sealing a group says that no more runs are coming, and a sealed group finishes once its
runs have.
nodus cancel ag/NAMEcancels every unfinished run, and deleting the group deletes its runs. - Batches.
POST …/agentrunstakes anAgentRunListof up to 100 runs, created together or not at all. - From Python.
nodus.AgentGroup.create(...)andgroup.submit_many(...)create a group and its runs, ordered by their dependencies, andagent.map(inputs)runs one task per input and yields the answers. These no longer raisenodus.errors.Unsupported;max_held=,evaluation=andgroup.results()still do.
Evals are not available yet. See Run agents in parallel.