Studio Node Reference
Every node type available in the FAOS Studio palette, organized by category. Each entry lists what the node does, its key configuration fields, and its runtime support status β this last column is sourced from the same honesty manifest Studio itself uses to warn you on the canvas, so this page never claims more than the product actually does.
Keep this page in sync
This reference is seeded from the palette's own entries (NodePalette.tsx) and the
server-side runtime-support manifest. If you add or change a node type in the palette, update
this page in the same change.
Runtime support statusesβ
| Status | Meaning |
|---|---|
| β Full | The runtime executes this node with its real, intended semantics today. |
| π‘ Authoring-only | You can draw and configure this node, and it exports with full semantics to LangGraph/ADK β but the FAOS runtime itself doesn't execute its distinct behavior yet. Studio tells you this on the canvas; it never fakes a pass. |
(There is no "degraded" status today β every previously-degraded node type has graduated to full support.)
Flow Controlβ
| Node | Description | Key config | Status |
|---|---|---|---|
| Start | Entry point | triggerType (manual / scheduled / event / webhook) | β (flow boundary, not a step) |
| End | Terminal node | outputVariable | β (flow boundary, not a step) |
| Loop | Iterate or repeat | maxIterations, condition, loopVariable | π‘ Authoring-only β no loop construct in the executor yet |
| Parallel Branch | Concurrent paths | branches[], joinStrategy (all / any / first) | β
Full β compiled away into real depends_on fan-out/fan-in; the executor already runs same-level steps concurrently |
| Condition (Rule) | Rule-based branch | ruleExpression, trueLabel, falseLabel | β
Full β compiles to a dmn step |
| Condition (Agent) | Agent-evaluated branch | agentId, evaluationPrompt, trueLabel, falseLabel | π‘ Authoring-only β no LLM-routing branch construct yet (rule-based dmn only) |
AIβ
| Node | Description | Key config | Status |
|---|---|---|---|
| Agent | AI agent task | agentId, model, skills[], timeout, systemPrompt | β Full |
| LLM | Direct LLM call (no agent roster resolution) | promptTemplate, model, temperature, maxTokens, responseFormat | β
Full β a thin step calling resolve_model() directly; a missing model config fails the step honestly rather than silently falling back |
Handoff Patternsβ
| Node | Description | Key config | Status |
|---|---|---|---|
| Manager Agent | Delegates to sub-agents | agentId, model, skills[], sub_agent_pool[], delegation_criteria | β Full β compiles to a structured-prompt agent invocation (its semantic is a governed agent step) |
| A2A Delegate | Delegates to an external agent over the A2A protocol | endpoint_url, agent_card_url, protocol_version, timeout_seconds | β Full β same structured-prompt compile as Manager Agent |
Complianceβ
| Node | Description | Key config | Status |
|---|---|---|---|
| Compliance Gate | Multi-check gate | checks[] (type, action, threshold), failStrategy | β
Full β runs the real DefaultComplianceEvaluator; unbacked check kinds record not_evaluated, never a fabricated pass |
| Audit Log | Records an audit trail | retentionYears, logInputs, logOutputs, hashSensitive | β
Full β writes a real AuditLogEntry |
| Policy Check | Regulatory framework check | frameworks[] (SOX / GDPR / CCPA / MiFID II / Dodd-Frank / ECOA / FINRA), action | β Full |
| PII Scanner | Detects and redacts PII | entityTypes[] (SSN, DOB, account number, name, address, phone, email), action, redactionPattern | β Full β real PII detection via the canonical DLP scanner |
| Bias Check | Bias detection | domain (lending / insurance / hiring / general), regulations[], sensitivity | β
Full β regulatory/bias check kinds honestly record not_evaluated where no scoring model is bound, rather than fabricating a pass |
Interactionβ
| Node | Description | Key config | Status |
|---|---|---|---|
| Human Input | Requests input from a person mid-flow | inputPrompt, inputType (text / choice / file), timeout | π‘ Authoring-only β no mid-flow input capture in the executor yet (distinct from Approval Gate, which pauses for a yes/no decision and is implemented) |
| Approval Gate | Requires human approval before continuing | requiredApprovers[], approvalType (any / all), timeout, escalationEmail | β Full |
| Direct Reply | Sends a response to the user | responseTemplate, channel (chat / email / webhook) | β
Full β compiles to a delivery step |
Executionβ
| Node | Description | Key config | Status |
|---|---|---|---|
| Tool Call | Executes a configured tool | toolName, parameters, retryOnFailure, maxRetries | β Full β invokes through the MCP layer with tenant policy enforced; an unbound tool fails honestly rather than silently running as a generic agent step |
Case Managementβ
| Node | Description | Key config | Status |
|---|---|---|---|
| Create Case | Opens a new case | caseType, initialPriority (P1-P4), sla (goal/deadline) | β Full β dispatches onto the real case engine |
| Update Case | Updates case fields | fields[] (field/value pairs) | β Full |
| Route Case | Routes a case to an agent | strategy (skill-based / round-robin / manual), agentPool[], requiredSkills[] | β Full |
| Escalate | Escalates a case | reason, targetTier, urgency | β Full |
| Resolve | Resolves a case | resolutionCode, summaryTemplate | β Full |
| SLA Timer | Monitors a case against an SLA | goalHours, deadlineHours, passedDeadlineHours, autoEscalate | π‘ Authoring-only β SLA timing lives inside the case-lifecycle workflow's own stages, not as an independent playbook step, today |
| Satisfaction Survey | Sends a customer survey | surveyTemplate, channel (email / SMS / in-app) | π‘ Authoring-only β the survey send-only substrate exists, but response collection into the playbook does not yet |
See alsoβ
- Studio Quickstart β your first Journey in 10 minutes, walking through five of these node categories on a real example.