Referencia de sintaxis YAML
Referencias variables, expresiones condicionales, ajuste preestablecido de agente, code_preamble: la referencia completa y autorizada para Braidrun YAML.
Web DTO de Braidrun realiza un viaje de ida y vuelta a nivel de bytes de YAML, pero utiliza un estilo de nomenclatura de campos diferente: camelCase vs snake_case. Esta página explica claramente el mapeo, las variables, las condiciones y las reglas preestablecidas que necesita conocer.
La verificación y el viaje de ida y vuelta YAML utilizan la interfaz de análisis de plataforma /api/workflows/parse , para evitar escribir otro conjunto de reglas en el lado del navegador.
Denominación: camelCase ↔ Snake_case
Web JSON usa camelCase; la ejecución YAML usa Snake_case:
| DTO web | YAML |
|---|---|
groupChat | group_chat |
agentBased | agent_based |
stateMachine | state_machine |
repeatUntil | repeat_until |
iterateOver | iterate_over |
manualApproval | manual_approval |
onSuccess / onFailure | on_success / on_failure |
Preajustes y anulaciones de agentes
Se recomienda utilizar ajustes preestablecidos para declarar el Agente y utilizar anulaciones para cubrir cualquier campo cuando sea necesario:
agents:
planner:
preset: universal
coder:
preset: coder
overrides:
max_iterations: 2000Referencia variable
- Variables del flujo de trabajo:
{{var:name}} - Salida del paso:
{{steps.step_name.output}}
variables:
topic: workflow
workflow:
- step: plan
agent: planner
input: "Plan for {{var:topic}}"
- step: implement
agent: coder
input: "Implement based on {{steps.plan.output}}"
depends_on: [plan]Expresión condicional (condición)
La forma básica es «valor_izquierdo operador valor_derecho»; a ambos lados del operador debe haber un espacio. Operadores admitidos:
==/!=— Comparación exacta de cadenas, distingue mayúsculas y minúsculas><>=<=— Comparación numérica; si alguno de los lados no es un número, la condición se trata como falsecontains/contains_cs— Comprobación de inclusión, distingue mayúsculas y minúsculascontains_ci— Comprobación de inclusión, no distingue mayúsculas y minúsculas
Varias comparaciones se pueden combinar en el nivel superior con &&(y) y ||(o); && tiene mayor prioridad y se agrupa primero. Ejemplo:
condition: route == coding
condition: score >= 8
condition: status == done && score >= 8
# && binds tighter — reads as (a == 1 && b != done) || retry == true
condition: a == 1 && b != done || retry == trueNo escribas:
condition: "{{var:route}} == coding" # don't — write the variable name directly
condition: (a == 1 || b == 2) && c == 3 # don't — parentheses are not supportedNo se admite la agrupación con paréntesis — cuando necesite una lógica de agrupación más compleja, use classifier para producir una variable de enrutamiento o divídalo en varios pasos. Escriba el nombre de la variable directamente; no use la sintaxis de variable de plantilla dentro de condition. Las condiciones que no se puedan analizar se tratan como false y ese paso se salta.
code_preamble — preámbulo del código compartido
Cuando varios pasos de code necesitan compartir imports o funciones auxiliares, use code_preamble de nivel superior. Se agrupa por lenguaje de programación y, en la ejecución, se antepone automáticamente a la cabecera del script de los pasos de code del mismo lenguaje:
code_preamble:
python:
ref: ./lib/shared_utils.pyO utilice el formulario en línea:
code_preamble:
python:
inline: |
import json, os
def log(msg):
print(f"[workflow] {msg}")Transition Action(on_success / on_failure)
Utilice la forma de objeto de acción en lugar de una matriz de cadenas:
on_success:
- next: publish
on_failure:
- notify: slack
message: implementation failed
stop: trueCuando se exporta como Web DTO, corresponde a:
{
"onSuccess": [{"next": "publish"}],
"onFailure": [
{
"notify": "slack",
"message": "implementation failed",
"stop": true
}
]
}Verificar lista de cláusulas
- Uso de referencia variable
{{var:name}} - El YAML exportado todavía pasa
/api/workflows/parsevolver a leer - condition no lleva variables de plantilla y la combinación && / || no usa paréntesis
manualApproval/onFailure/repeatUntilDespués de exportar el campo DTO, se convierte en Snake_case