Skip to main content

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​

StatusMeaning
βœ… FullThe runtime executes this node with its real, intended semantics today.
🟑 Authoring-onlyYou 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​

NodeDescriptionKey configStatus
StartEntry pointtriggerType (manual / scheduled / event / webhook)β€” (flow boundary, not a step)
EndTerminal nodeoutputVariableβ€” (flow boundary, not a step)
LoopIterate or repeatmaxIterations, condition, loopVariable🟑 Authoring-only β€” no loop construct in the executor yet
Parallel BranchConcurrent pathsbranches[], 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 branchruleExpression, trueLabel, falseLabelβœ… Full β€” compiles to a dmn step
Condition (Agent)Agent-evaluated branchagentId, evaluationPrompt, trueLabel, falseLabel🟑 Authoring-only β€” no LLM-routing branch construct yet (rule-based dmn only)

AI​

NodeDescriptionKey configStatus
AgentAI agent taskagentId, model, skills[], timeout, systemPromptβœ… Full
LLMDirect 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​

NodeDescriptionKey configStatus
Manager AgentDelegates to sub-agentsagentId, model, skills[], sub_agent_pool[], delegation_criteriaβœ… Full β€” compiles to a structured-prompt agent invocation (its semantic is a governed agent step)
A2A DelegateDelegates to an external agent over the A2A protocolendpoint_url, agent_card_url, protocol_version, timeout_secondsβœ… Full β€” same structured-prompt compile as Manager Agent

Compliance​

NodeDescriptionKey configStatus
Compliance GateMulti-check gatechecks[] (type, action, threshold), failStrategyβœ… Full β€” runs the real DefaultComplianceEvaluator; unbacked check kinds record not_evaluated, never a fabricated pass
Audit LogRecords an audit trailretentionYears, logInputs, logOutputs, hashSensitiveβœ… Full β€” writes a real AuditLogEntry
Policy CheckRegulatory framework checkframeworks[] (SOX / GDPR / CCPA / MiFID II / Dodd-Frank / ECOA / FINRA), actionβœ… Full
PII ScannerDetects and redacts PIIentityTypes[] (SSN, DOB, account number, name, address, phone, email), action, redactionPatternβœ… Full β€” real PII detection via the canonical DLP scanner
Bias CheckBias detectiondomain (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​

NodeDescriptionKey configStatus
Human InputRequests input from a person mid-flowinputPrompt, 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 GateRequires human approval before continuingrequiredApprovers[], approvalType (any / all), timeout, escalationEmailβœ… Full
Direct ReplySends a response to the userresponseTemplate, channel (chat / email / webhook)βœ… Full β€” compiles to a delivery step

Execution​

NodeDescriptionKey configStatus
Tool CallExecutes a configured tooltoolName, 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​

NodeDescriptionKey configStatus
Create CaseOpens a new casecaseType, initialPriority (P1-P4), sla (goal/deadline)βœ… Full β€” dispatches onto the real case engine
Update CaseUpdates case fieldsfields[] (field/value pairs)βœ… Full
Route CaseRoutes a case to an agentstrategy (skill-based / round-robin / manual), agentPool[], requiredSkills[]βœ… Full
EscalateEscalates a casereason, targetTier, urgencyβœ… Full
ResolveResolves a caseresolutionCode, summaryTemplateβœ… Full
SLA TimerMonitors a case against an SLAgoalHours, deadlineHours, passedDeadlineHours, autoEscalate🟑 Authoring-only β€” SLA timing lives inside the case-lifecycle workflow's own stages, not as an independent playbook step, today
Satisfaction SurveySends a customer surveysurveyTemplate, 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.