Poller workstation
Configure behavior = POLLER for long-lived poller scheduling and keep it distinct from type = POLLER_RUN.
How To Use
Author a workstation with behavior POLLER. Keep type on the runtime axis for the execution family you need — use type POLLER_RUN when the step must run through a poller worker, or another WorkstationType when a different runtime is correct. Bind a worker when the type requires one. Wire inputs plus outputs, onContinue, onRejection, and onFailure so long-lived outcomes route correctly. Do not set cron on POLLER. Choose STANDARD for fire-once dispatch, REPEATER for change-triggered loops, or CRON for schedules. POLLER is not a WorkstationType. POLLER_RUN is the runtime type for poller-worker execution — configure both axes when a step needs poller scheduling and poller-worker runtime together.Discriminator: behavior = POLLER
POLLER is scheduling behavior. POLLER_RUN is a runtime type. Do not collapse the two axes — open the poller-run page when you need poller-worker execution.
POLLER is compatible with every published WorkstationType. Use poller-run when the runtime must be POLLER_RUN; bind a matching Worker for worker-backed types; LOGICAL_MOVE stays worker-free.
Schema reference
The embed below shows the live Workstation base definition with POLLER overlay applicability. POLLER has no selected exclusive fields. Excluded fields belong to other WorkstationType families or to CRON scheduling and must not appear on this behavior. Open the full Factory schema reference for exhaustive field lookup rather than copying contract text into this page.Workstation
objectA processing step in the factory graph. Workstations consume authored work states, run a worker or logical move, and emit the next work states.
- additionalProperties
false (closed)
Fields
Scheduling behavior for this workstation, such as STANDARD, REPEATER, or CRON execution.
- body
bodyOptionalstringInline workstation instructions or script body when authored directly in factory config.
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.
- copyReferencedScripts
copyReferencedScriptsOptionalbooleanCopy supported referenced script files into the expanded workstation layout when config expand runs.
Cron trigger configuration for workstations whose behavior is CRON.
Optional localized customer-facing explanation of this workstation.
Environment variables added to the workstation execution context.
Guarded loop breakers should use `VISIT_COUNT` guards here with a `LOGICAL_MOVE` workstation instead of top-level exhaustion rules.
- id
idOptionalstringOptional durable public identifier for this workstation. Graph and layout references should use this id instead of the mutable name.
Work states this workstation can consume before it dispatches.
Retry and execution ceilings applied to this workstation.
- name
nameRequiredstringCustomer-authored workstation name used by guards, diagnostics, and authored references.
Optional destination emitted when the workstation makes partial progress and should continue iterating. Classifier workstations must not declare onContinue.
Optional destination emitted when the workstation fails permanently.
Optional destination emitted when the worker rejects the current work without a hard failure. Classifier workstations must not declare onRejection.
Uppercase provider-agnostic operation requested by `MODEL_INVOKE` workstations, such as `TTS`.
Optional workstation-authored slot bindings that resolve operation inputs from runtime content or static config content.
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.
- outputSchema
outputSchemaOptionalstringExcludedJSON schema string used to validate or parse structured model output when configured.
Work states emitted after a non-classifier workstation succeeds. Classifier workstations must use classificationRoutes instead of normal success outputs.
- promptFile
promptFileOptionalstringExcludedPath to a prompt template file loaded for model-oriented workstation execution.
Resource capacity this workstation consumes while one dispatch is in flight.
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.
- stopWords
stopWordsOptionalarrayExcludedStop words authored on the topology entry for model-oriented dispatches.
Runtime workstation implementation type, equivalent to the workstation AGENTS.md frontmatter type.
Optional policy for whether downstream work uses the workstation output payload or preserves the consumed input payload.
- worker
workerRequiredstringName of a worker declared in the workers list.
- workingDirectory
workingDirectoryOptionalstringGo template resolved from token tags at dispatch time.
- worktree
worktreeOptionalstringGo template resolved and passed as the worktree path to CLI dispatchers.
Examples
Use the minimal valid example when starting a POLLER workstation with type POLLER_RUN. The misuse example collapses the axes by putting POLLER on the type field — POLLER is a behavior value, not a WorkstationType.Minimal valid POLLER workstation:
{
"name": "long-lived-ingress",
"worker": "poller-main",
"type": "POLLER_RUN",
"behavior": "POLLER",
"inputs": [
"ready"
],
"outputs": [
"accepted"
],
"onContinue": [
"ready"
],
"onFailure": [
"failed"
]
}
Incompatible misuse — POLLER as type (axis collapse):
{
"name": "long-lived-ingress",
"worker": "poller-main",
"type": "POLLER",
"behavior": "STANDARD",
"inputs": [
"ready"
],
"outputs": [
"accepted"
]
}
POLLER is a WorkstationKind behavior value, not a WorkstationType. Put POLLER on behavior, and use type POLLER_RUN when poller-worker execution is required.