Poller-run workstation

Configure type = POLLER_RUN for poller worker execution and keep it distinct from behavior = POLLER.

How To Use

Author a workstation with type POLLER_RUN and bind a POLLER_WORKER. Choose behavior for the scheduling axis you need — POLLER for long-lived poller ingress, STANDARD for fire-once dispatch, REPEATER for change-triggered loops, or CRON for schedules. Wire inputs plus outputs, onContinue, onRejection, and onFailure so poller outcomes route correctly. Do not put POLLER_RUN on the behavior field, and do not set promptFile, openCodeAgent, classificationRoutes, or operation bindings that belong to other WorkstationType families. Choose SCRIPT_RUN for command-backed scripts, AGENT_RUN for agent loops, or INFERENCE_RUN for bounded inference. POLLER_RUN is not a scheduling behavior. POLLER is the WorkstationKind for long-lived poller scheduling — configure both axes when a step needs poller-worker runtime and poller scheduling together.

Discriminator: type = POLLER_RUN

POLLER_RUN is a runtime type. POLLER is scheduling behavior. Do not collapse the two axes — open the poller workstation page when you need long-lived poller scheduling.

POLLER_RUN requires a POLLER_WORKER companion and is compatible with every published WorkstationKind. Bind the poller worker, then choose scheduling on the behavior axis — use POLLER when long-lived poller ingress is required.

Schema reference

The embed below shows the live Workstation base definition with POLLER_RUN overlay applicability. POLLER_RUN has no selected exclusive fields. Excluded fields belong to other WorkstationType families or to CRON scheduling and must not appear on this type. Open the full Factory schema reference for exhaustive field lookup rather than copying contract text into this page.

Workstation

object

A processing step in the factory graph. Workstations consume authored work states, run a worker or logical move, and emit the next work states.

  • additionalPropertiesfalse (closed)

Fields

  • behaviorbehaviorOptionalWorkstationKind

    Scheduling behavior for this workstation, such as STANDARD, REPEATER, or CRON execution.

  • bodybodyOptionalstring

    Inline workstation instructions or script body when authored directly in factory config.

  • classificationRoutesclassificationRoutesOptionalClassificationRoute[]Excluded

    Explicit label-to-destination routing used only by CLASSIFIER_WORKSTATION definitions. Each route must declare a unique non-empty label and one or more outputs.

  • copyReferencedScriptscopyReferencedScriptsOptionalboolean

    Copy supported referenced script files into the expanded workstation layout when config expand runs.

  • croncronOptionalWorkstationCronExcluded

    Cron trigger configuration for workstations whose behavior is CRON.

  • descriptiondescriptionOptionalNameValue

    Optional localized customer-facing explanation of this workstation.

  • envenvOptionalStringMap

    Environment variables added to the workstation execution context.

  • guardsguardsOptionalWorkstationGuard[]Excluded

    Guarded loop breakers should use `VISIT_COUNT` guards here with a `LOGICAL_MOVE` workstation instead of top-level exhaustion rules.

  • ididOptionalstring

    Optional durable public identifier for this workstation. Graph and layout references should use this id instead of the mutable name.

  • inputsinputsRequiredWorkstationIO[]

    Work states this workstation can consume before it dispatches.

  • limitslimitsOptionalWorkstationLimits

    Retry and execution ceilings applied to this workstation.

  • namenameRequiredstring

    Customer-authored workstation name used by guards, diagnostics, and authored references.

  • onContinueonContinueOptionalWorkstationIO[]

    Optional destination emitted when the workstation makes partial progress and should continue iterating. Classifier workstations must not declare onContinue.

  • onFailureonFailureOptionalWorkstationIO[]

    Optional destination emitted when the workstation fails permanently.

  • onRejectiononRejectionOptionalWorkstationIO[]

    Optional destination emitted when the worker rejects the current work without a hard failure. Classifier workstations must not declare onRejection.

  • operationoperationOptionalModelOperationNameExcluded

    Uppercase provider-agnostic operation requested by `MODEL_INVOKE` workstations, such as `TTS`.

  • operationBindingsoperationBindingsOptionalWorkstationOperationBinding[]Excluded

    Optional workstation-authored slot bindings that resolve operation inputs from runtime content or static config content.

  • outcomeFormatoutcomeFormatOptionalWorkstationOutcomeFormatExcluded

    Optional worker-output parsing mode for model workstations. When set to `decision-envelope`, agent output is parsed as a reviewer/checker JSON envelope that maps directly onto WorkResult outcome, feedback, output, and optional recorded output work instead of stop-token routing.

  • outputSchemaoutputSchemaOptionalstringExcluded

    JSON schema string used to validate or parse structured model output when configured.

  • outputsoutputsOptionalWorkstationIO[]

    Work states emitted after a non-classifier workstation succeeds. Classifier workstations must use classificationRoutes instead of normal success outputs.

  • promptFilepromptFileOptionalstringExcluded

    Path to a prompt template file loaded for model-oriented workstation execution.

  • resourcesresourcesOptionalResourceRequirement[]

    Resource capacity this workstation consumes while one dispatch is in flight.

  • runnerrunnerOptionalRunnerID

    Optional workstation-specific runner override. When omitted, dispatch falls back to the factory runner, then worker modelProvider compatibility when no explicit runner is configured, then the default codex runner.

  • stopWordsstopWordsOptionalarrayExcluded

    Stop words authored on the topology entry for model-oriented dispatches.

  • typetypeOptionalWorkstationType

    Runtime workstation implementation type, equivalent to the workstation AGENTS.md frontmatter type.

  • workPropagationworkPropagationOptionalWorkPropagation

    Optional policy for whether downstream work uses the workstation output payload or preserves the consumed input payload.

  • workerworkerRequiredstring

    Name of a worker declared in the workers list.

  • workingDirectoryworkingDirectoryOptionalstring

    Go template resolved from token tags at dispatch time.

  • worktreeworktreeOptionalstring

    Go template resolved and passed as the worktree path to CLI dispatchers.

Examples

Use the minimal valid example when starting a POLLER_RUN workstation with behavior POLLER. The misuse example collapses the axes by putting POLLER_RUN on the behavior field — POLLER_RUN is a WorkstationType value, not a WorkstationKind.

Minimal valid POLLER_RUN workstation:

{
  "name": "long-lived-ingress",
  "worker": "poller-main",
  "type": "POLLER_RUN",
  "behavior": "POLLER",
  "inputs": [
    "ready"
  ],
  "outputs": [
    "accepted"
  ],
  "onContinue": [
    "ready"
  ],
  "onFailure": [
    "failed"
  ]
}

Incompatible misuse — POLLER_RUN as behavior (axis collapse):

{
  "name": "long-lived-ingress",
  "worker": "poller-main",
  "type": "POLLER_RUN",
  "behavior": "POLLER_RUN",
  "inputs": [
    "ready"
  ],
  "outputs": [
    "accepted"
  ]
}

POLLER_RUN is a WorkstationType value, not a WorkstationKind. Put POLLER_RUN on type, and use behavior POLLER when long-lived poller scheduling is required.

Tags