New in 1.3.0 AI build assistance: coding agents that never see a row

Machine learning on Google Cloud, released like software.

Describe a model in YAML. Pipewright releases it, runs it, judges it against the model it would replace and asks a person before it goes live, with every step on the record.

pip install "pipewright-mlops[gcp]==1.3.0"
Open source, Apache-2.0Runs in your projectAgent Platform or GKE
Built on Google Cloud Agent PlatformBigQueryBigQuery MLFeature StoreModel RegistryCloud RunPub/SubGKECloud KMS
Why Pipewright

Most models never reach production. The ones that do drift away.

Not because the models are wrong. Because every team rebuilds the same plumbing, a run is not a release, settings hide in notebooks, and nobody can say later why a model was trusted. Pipewright closes those gaps once, the same way for every use case.

01

Rebuilt plumbing

Every team writes its own triggers, deployment scripts and identities.

One shared launcher per environment starts every team's runs, as each team's own identity.

02

Runs are not releases

"Which code trained this model?" has no reliable answer.

pipewright release pins images and pipelines by digest in a write-once contract. Rollback is one command.

03

Settings in code

Thresholds, features and gates live in notebook cells nobody reviews.

Data contract, features, gates and monitoring in YAML, checked against schemas and each other before anything runs.

04

Teams blocking each other

ML teams wait on tickets for buckets, datasets and service accounts.

The platform team publishes one manifest per environment. Use cases refer to names, never create infrastructure.

05

Blind retraining

A cron job retrains on drifted data and ships whatever comes out.

Drift opens a decision case with the facts. Named approvers decide; nothing trains until they agree.

06

Governance after the fact

Before an audit, someone reconstructs the story from tickets and memory.

Every release, run, approval and deployment is an event with who did it. pipewright lineage reads it back.

How it works

Four commands from YAML to a model a person signed off.

Your pipeline code stays plain Kubeflow Pipelines. Pipewright supplies the rest: the release, the run, the gates, the decision and the record.

usecases/churn/
$ pipewright new-usecase --name churn --tenant retention --owner team-retention
created usecases/churn from the churn example

usecases/churn/
  usecase.yaml            what it is, who owns it, how it is served
  config/data.yaml        contract, label, split, features
  config/evaluation.yaml  gates, champion, slices, fairness
  config/operations.yaml  monitoring, alerts, retraining
  training_pipeline.py    plain Kubeflow Pipelines v2
  components/             your code, your libraries

$ pipewright validate --env dev
ok: schemas, references and cross-checks, offline

Editors suggest and explain every key; pipewright explain data.split.strategy prints any key's meaning, type and default.

In the open-source core

Everything a model needs between a notebook and a decision.

The Pipewright core is free under Apache-2.0. These are not demos: each one is built and tested end to end on live Google Cloud environments before it ships.

Release

Write-once releases, promotion by digest

A release pins the component image and every pipeline template by digest. pipewright promote carries the tested release and the approved model to production; nothing is rebuilt, and anything that differs is turned back.

release contractsverify gaterollbackpromoteCI from GitHub
Decide

A person in every decision that matters

Drift opens a case, not a retrain. Training starts when every required group has approved.

ml-leadsapproved
model-riskapproved
the requestercannot approve
snoozed, then worsere-opened
servinggated in CI
Data

Features, point in time

From feature tables or Feature Store groups, as of each row’s cut-off. Nothing from the future reaches training.

SQL

BigQuery ML, governed

Classification, segments, PCA, forecasts and imported models, with the same gates and approvals.

Serve

Endpoints, canaries and online features

Deploy an approved version with a canary. Callers send a customer ID; the endpoint reads the latest features from the online store, from the training definitions.

Scale

Ray, GPUs and synthetic data

A Ray cluster per step, made and removed for you; GPUs within the platform’s limits; synthetic data learned and gated inside your environment.

Runs where you do

Google’s managed services, or your own GKE cluster.

The same use case file and the same release run on either. The platform team picks per environment; ML teams change nothing.

Agent Platform

Google runs the machines. The simplest path, and where most teams start.

PipelinesAgent Platform Pipelines
Scale-outRay on Agent Platform
ServingAgent Platform endpoints
SchedulesCloud Scheduler

Private GKE

Your cluster, your node pools, inside your perimeter. For teams that already run Kubernetes.

PipelinesKubeflow Pipelines
Scale-outKubeRay
ServingKServe
SchedulesKubernetes CronJobs

One line in the environment’s manifest decides: orchestrator: kfp. Everything outside the cluster, from BigQuery to Model Registry, is the same.

Pipewright Enterprise

Private by default. Evidence for every model.

For organisations that answer to a regulator, a risk committee or a security team: the core, plus a private environment blueprint, write-once evidence packs, governed synthetic data releases, and Fleet View across every environment. With support from the people who built it.

  • Private-managed blueprint: CMEK, VPC Service Controls, no public endpoints
  • Evidence packs: fifteen controls per model, hashed and kept write-once
  • Fleet View: every model in every environment, with its lineage
  • AI build assistance: coding agents that build use cases and never see a row, with the proof (1.3.0)
https://fleet.acme.example/lineage/churn-versions/production/2
IAP
Fleet View showing one model version's lineage, from its data to its use
Open source

Start in an afternoon. Keep it for years.

The starter Terraform builds a working environment in one project. Install the CLI, copy the churn example, and your first model is released, trained and judged the same day.

your first afternoon
# 1. an environment (the starter, in your project)
$ git clone https://github.com/fluxorsoft/pipewright-starter
$ terraform apply env.tfplan

# 2. the CLI
$ pip install "pipewright-mlops[gcp]==1.3.0"

# 3. a use case, checked, released and run
$ pipewright new-usecase --name churn --tenant retail --owner me
$ pipewright validate --env dev && pipewright doctor --env dev
$ pipewright tables sync --env dev
$ pipewright release --env dev
live: churn -> 3d1f0aa
$ pipewright run --env dev --usecase churn --source-uri gs://…
$ pipewright model list --env dev --usecase churn
  v1  DEFAULT  auc=0.8124  [gates pass]
Get started

Put your next model on a governed path.

Free and open source, in your own Google Cloud. Enterprise when you need private networking, evidence and support.