Flow YAML Schema#
Experimental feature
This is an experimental feature, and may change at any time. Learn more.
The source JSON schema can be found at Flow.schema.json
YAML syntax#
Key |
Type |
Description |
---|---|---|
|
string |
The YAML schema. If you use the prompt flow VS Code extension to author the YAML file, including |
|
object |
Dictionary of flow inputs. The key is a name for the input within the context of the flow and the value is the flow input definition. |
|
object |
The flow input definition. See Flow input for the set of configurable properties. |
|
object |
Dictionary of flow outputs. The key is a name for the output within the context of the flow and the value is the flow output definition. |
|
object |
The component output definition. See Flow output for the set of configurable properties. |
|
array |
Sets of dictionary of individual nodes to run as steps within the flow. Node can use built-in tool or third-party tool. See Nodes for more information. |
|
object |
Dictionary of nodes with variants. The key is the node name and value contains variants definition and |
|
object |
The environment to use for the flow. The key can be |
|
object/string |
Environment variables to set by specifying a property path and value. Example: |
|
array |
Additional includes is a list of files that can be shared among flows. Users can specify additional files and folders used by flow, and prompt flow will help copy them all to the snapshot during flow creation. |
Flow input#
Key |
Type |
Description |
Allowed values |
---|---|---|---|
|
string |
The type of flow input. |
|
|
string |
Description of the input. |
|
|
int, double, bool, string, list, object, image |
The default value for the input. |
|
|
boolean |
Whether the input is the chat flow input. |
|
|
boolean |
Whether the input is the chat history for chat flow. |
Flow output#
Key |
Type |
Description |
Allowed values |
---|---|---|---|
|
string |
The type of flow output. |
|
|
string |
Description of the output. |
|
|
string |
A reference to the node output, e.g. ${<node_name>.output.<node_output_name>} |
|
|
boolean |
Whether the output is the chat flow output. |
Nodes#
Nodes is a set of node which is a dictionary with following fields. Below, we only show the common fields of a single node using built-in tool.
Key |
Type |
Description |
Allowed values |
---|---|---|---|
|
string |
The name of the node. |
|
|
string |
The type of the node. |
Type of built-in tool like |
|
object |
Dictionary of node inputs. The key is the input name and the value can be primitive value or a reference to the flow input or the node output, e.g. |
|
|
object |
Dictionary of tool source used by the node. The key contains |
|
|
string |
It indicates the provider of the tool. Used when the |
|
|
string |
The connection name which has been created before. Used when the |
|
|
string |
The api name of the provider. Used when the |
|
|
string |
The module name of the tool using by the node. Used when the |
|
|
bool |
Whether the node has variants. |
Node variants#
Node variants is a dictionary containing variants definition for nodes with variants with their respective node names as dictionary keys. Below, we explore the variants for a single node.
Key |
Type |
Description |
Allowed values |
---|---|---|---|
|
string |
The name of the node. |
|
|
string |
Default variant id. |
|
|
object |
This dictionary contains all node variations, with the variant id serving as the key and a node definition dictionary as the corresponding value. Within the node definition dictionary, the key labeled ‘node’ should contain a variant definition similar to Nodes, excluding the ‘name’ field. |
Examples#
Flow examples are available in the GitHub repository.