Skip to main content

Description

Agent Composer uses a YAML-based configuration format to define workflow graphs. This page describes the root-level fields and basic node structure.

Root-Level Fields

At the root level, the Agent Composer YAML format accepts four main fields:

inputs

Lists the inputs of the graph mapped to their accepted types. Type annotations should conform to Python typing syntax.
inputs:
  query: str
The main graph currently only accepts a single str input named query, unless used as a subgraph.

outputs

Lists the outputs of the graph mapped to their types. A graph can have arbitrarily many outputs, as long as their types are JSON-serializable.
outputs:
  response: str
  groundedness_scores: List[Dict[str, float]]

nodes

Lists the nodes in the graph and specifies how they are connected.
nodes:
  preprocess:
    type: PreprocessNode
    input_mapping:
      input: __inputs__#query

  finalize:
    type: FinalizationNode
    input_mapping:
      query: __inputs__#query
      processed_query: preprocess#output

ui_output

Specifies exactly one of the fields listed under outputs as the UI output. Required when there are multiple outputs; optional for single-output graphs.
ui_output: response

Node Format

Nodes represent basic operations in the graph. A typical node definition:
example_node:
  type: PreprocessNode
  config:
    threshold: 0.2
    process_type: standard
  input_mapping:
    preprocessing_input: earlier_node#output_key

Core Node Arguments

FieldDescription
typeThe step type (must be registered in the component registry)
configConfiguration arguments passed to the step constructor
input_mappingDescribes how nodes connect to each other
config_overridesDynamic configuration determined at runtime
ui_stream_typesControls what data streams to the UI

Config Parameters

Config parameters are passed as keyword arguments to the step constructor. Nested configurations are supported:
my_node:
  type: CustomProcessorStep
  config:
    threshold: 0.85
    mode: "strict"
    options:
      enable_caching: true
      timeout_seconds: 30
  input_mapping:
    data: previous_node#output
If a config field is not specified, the platform agent configuration setting is used as the default.

Input and Output Nodes

Every graph has an implicit input node named __inputs__. Access inputs via:
input_mapping:
  current_node_input: __inputs__#query
The output node must be explicitly added:
__outputs__:
  type: output
  input_mapping:
    graph_output: final_node#node_output