Skip to content

Generating DRTML

This page is for external agents / IDE tools. The Framework does not embed an LLM. DRTML and Framework primitives are designed to be machine-generatable and machine-composable; production NL→DRTML agents live outside this package.

  1. Discoverinspect --format json or build_catalog().
  2. Select primitives — filter by kind; read contracts for params/I/O.
  3. Check compositioncan_compose / compatible_consumers.
  4. Draft DRTML — emit YAML using only known ids and namespaces.
  5. Validatevalidate_manifest_path(..., compile=True).
  6. Repair — apply structured errors[].code/path/available/fixes.
  7. Executerun_from_manifest (or Airflow/local runner) when valid.

See examples/agent-pipeline-loop in the Framework repo: a script simulates “NL intent → discovery → bad draft → structured repair → compile” using only Framework APIs.

  • Param namespaces must be in the allowlist (runtime, domain, compute, …) — Namespaces.
  • Dataset backends must be registered (parquet, postgres, …).
  • Patterns / run types must exist in the catalog.
  • PostgreSQL datasets use inline datasets.*.postgres only (no top-level postgres.tables).
  • Do not invent proprietary Ontobuilder step ids inside Framework core docs.