Saltar para o conteúdo principal
DocsCompilar o workflowSintaxe YAML

Referência de sintaxe YAML

Referências variáveis, expressões condicionais, predefinições do agente, code preamble - a referência completa e autoritária para Braidrun YAML.

O Web DTO do Braidrun executa ida e volta em nível de byte YAML, mas usa um estilo de nomenclatura de campo diferente: camelCase vs snake_case.

analisador oficial

Verificação e viagem de ida e volta YAML ambos usam a interface de análise de plataforma /api/workflows/parse , para evitar escrever outro conjunto de regras no lado do navegador.

Nomenclatura: camelCase ↔ cobra_case

Web JSON usa camelCase; execução YAML usa snake case:

DTO da WebYAML
groupChatgroup_chat
agentBasedagent_based
stateMachinestate_machine
repeatUntilrepeat_until
iterateOveriterate_over
manualApprovalmanual_approval
onSuccess / onFailureon_success / on_failure

Predefinições e substituições de agentes

Recomenda-se usar predefinições para declarar o Agente e usar substituições para cobrir quaisquer campos quando necessário:

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

Referência de variável

  • Variáveis de workflow: {{var:name}}
  • Saída da etapa: {{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]

Expressão condicional (condição)

A forma básica é "operador esquerdo direito", e o operador deve ter espaços em ambos os lados. Operadores apoiados:

  • == / != — Comparação de texto exata, sensível a maiúsculas
  • > < >= <= — Comparação numérica; se nenhum dos lados é um número, a condição é tratada como falsa
  • contains / contains_cs — Contém verificação, sensível a maiúsculas
  • contains_ci — Contém verificação, caso- insensível

As comparações múltiplas podem ser combinadas no nível superior com &&(e) e ||(ou); && liga-se mais apertado e é agrupado primeiro. Exemplo:

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

Não escreva:

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

O agrupamento parenthesized não é suportado — quando você precisa de lógica de agrupamento mais complexa, use classifier para produzir uma variável de roteamento ou dividi-la em várias etapas. Escreva nomes de variáveis claramente; não use sintaxe variável- modelo dentro de uma condição. Uma condição que não pode ser analisada é tratada como falsa, e o passo é ignorado.

code_preamble — preâmbulo de código compartilhado

Quando várias etapas de código precisam compartilhar as funções de importação ou helper, use o preamble de código de nível superior. É agrupado por linguagem de programação e, em tempo de execução, automaticamente pré-preparado para os scripts de passos de código na mesma linguagem:

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

Ou use o formulário embutido:

yaml
code_preamble:
  python:
    inline: |
      import json, os
      def log(msg):
          print(f"[workflow] {msg}")

Ação de Transição(on_success / on_failure)

Use o formato de objeto de ação em vez de array de strings:

yaml
on_success:
  - next: publish

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

Quando exportado como Web DTO, corresponde a:

json
{
  "onSuccess": [{"next": "publish"}],
  "onFailure": [
    {
      "notify": "slack",
      "message": "implementation failed",
      "stop": true
    }
  ]
}

Verificar lista de cláusulas

  • Uso de referência variável {{var:name}}
  • O YAML exportado ainda é aprovado /api/workflows/parse leia de volta
  • A condição não tem variáveis de modelo, e a combinação && / / om uses no parênteses
  • manualApproval / onFailure / repeatUntil Após a exportação do campo DTO, ele foi convertido em Snake_case