Saltar al contenido principal
DocumentoConstruir flujo de trabajoSintaxis YAML

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.

analizador autorizado

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 webYAML
groupChatgroup_chat
agentBasedagent_based
stateMachinestate_machine
repeatUntilrepeat_until
iterateOveriterate_over
manualApprovalmanual_approval
onSuccess / onFailureon_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:

yaml
agents:
  planner:
    preset: universal
  coder:
    preset: coder
    overrides:
      max_iterations: 2000

Referencia variable

  • Variables del flujo de trabajo: {{var:name}}
  • Salida del paso: {{steps.step_name.output}}
yaml
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 false
  • contains / contains_cs — Comprobación de inclusión, distingue mayúsculas y minúsculas
  • contains_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:

yaml
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 == true

No escribas:

yaml
condition: "{{var:route}} == coding"      # don't — write the variable name directly
condition: (a == 1 || b == 2) && c == 3   # don't — parentheses are not supported

No 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:

yaml
code_preamble:
  python:
    ref: ./lib/shared_utils.py

O utilice el formulario en línea:

yaml
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:

yaml
on_success:
  - next: publish

on_failure:
  - notify: slack
    message: implementation failed
    stop: true

Cuando se exporta como Web DTO, corresponde a:

json
{
  "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/parse volver a leer
  • condition no lleva variables de plantilla y la combinación && / || no usa paréntesis
  • manualApproval / onFailure / repeatUntil Después de exportar el campo DTO, se convierte en Snake_case