# YAML Over SDK

Valohai is built on a simple principle: **your ML code should not be entangled with your MLOps platform**.

Many tools ask you to decorate functions, subclass Tracker objects, or wrap training loops in platform-specific APIs. We don't.

## Why We Avoid SDK Integration

Valohai treats `valohai.yaml` as the single source of truth for your ML workflows. This architectural choice brings immediate benefits:

* **No vendor lock-in** — Your ML code stays agnostic, portable, and unmodified
* **Zero hidden orchestration** — What you see in YAML is what runs
* **No tight coupling** — Platform configuration lives separately from business logic

## Benefits of YAML-First Architecture

### Portability Without Pain

Delete Valohai tomorrow and your code still runs. No refactoring, no API removal, no broken imports.

### Git-Native Configuration

Your entire pipeline configuration lives in version control:

* Track changes with standard Git workflows
* Review pipelines in pull requests
* Roll back configurations instantly

### Team-Friendly Reviews

Platform engineers can audit pipelines without understanding your ML framework. Data scientists can focus on algorithms without learning orchestration APIs.

## The Philosophy in Practice

When you run an execution, Valohai:

1. Reads your `valohai.yaml` configuration
2. Provisions the compute environment
3. Injects parameters command line arguments or through JSON/YAML files
4. Runs your code exactly as written

Your training script doesn't need to know it's running on Valohai. That's the point.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.valohai.com/readme/philosophy/yaml-over-sdk.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
