October 28, 2026
API & Services
- Files can now be addressed by their
fil_id: New endpoints look up a file by its TypeID instead of its filename:GET /api/files/{fil_id}returns its metadata,GET /api/files/{fil_id}/contentdownloads it, andDELETE /api/files/{fil_id}deletes it. A newGET /api/fileslists your files. The existing endpoints that look up files by filename are still available. - File downloads support byte ranges: Both download endpoints now honor a single
Range: bytes=header (bytes=a-b,bytes=a-orbytes=-n) and answer206withContent-Range. A range that selects no bytes returns416, and multi-range or malformed headers get the full file with200. Downloads now carryAccept-Ranges: bytesand a strongETag, andIf-Rangeis honored so a resumed download can’t mix two versions of a file. - Downloading a file that isn’t available yet now returns
409: A download of a file that is still uploading, corrupt, or has no chunks yet returns409instead of400. The error code staysfile_not_available. - Filenames are limited to 512 characters: Every upload path now rejects a filename longer
than 512 characters with
400. Before, the simple upload paths failed with500, and direct-upload initiate accepted names up to 1024 characters that could never be stored. - New endpoint lists a fine-tuning job’s input files:
GET /api/fine-tuning/jobs/{id}/inputsreturns the job’s training and validation files, newest first, with cursor pagination. Filter withroleand narrow byfile_idwith a case-insensitivesearch. - Batch registry lists now use the standard pagination envelope:
GET /api/batch/registry/pipelines,GET /api/batch/registry/componentsand their/key/{key}/versionslists now return{data, has_more, next_cursor, prev_cursor}. The defaultlimitis now 100 instead of 50. Breaking change: thepipelinesandcomponentsarrays are renamed todata, and thelimitfield is no longer returned in the body. - The Python client now uses the
/api/<domain>routes: The default endpoint is nowhttps://platform.u1.archetypeai.app/api. Breaking change: endpoints in the old format, such ashttps://api.u1.archetypeai.app/v0.5, no longer work, and thefiles_endpoint,lens_endpointandagent_endpointoverrides are removed. The capabilities, sensors, messaging, kafka andfiles.s3APIs are removed, andclient.lensis deprecated with aFutureWarning. - The Python client supports packages:
client.agents.packagesaddscreate,list,get,deleteandwait_until_ready.client.agents.instances.createruns a ready package as a batch or serving agent,wait_until_runningwaits for a serving agent to start, andquerysends it a payload.wait_until_donenow raises an error for a serving agent, which never completes. - New Python client examples for RED and Anomaly Discovery:
examples/agents/agent_red_lifecycle.py(pump sensor data) andexamples/agents/agent_ad_lifecycle.py(Tennessee Eastman Process data) each optimize the canonical blueprint, promote the best trial, eval it, then bundle and run it.
Agents
- Projects group blueprints, evals, optimizations and packages: The new
/api/projectsendpoints create, list, get, update and delete projects. A project is visible to its creator and to organization admins, and viewers have read-only access. Blueprints can be registered in a project or copied into one withPOST /api/agents/blueprints/{reference}/copy. Evals, optimizations and packages made from a project blueprint land in its project, and their list endpoints accept aproject_idfilter. Agent runs inherit the project of the package they run, report itsproject_id, and can be filtered by it onGET /api/agents/instances. An eval, optimization or run in a project may only read input files the project’s creator can see, and any other input file returns400. - Packages are the new way to deploy a blueprint: A package is an immutable build of a
blueprint that resolves every model slot once. Create and manage packages with
POST /api/agents/packages,GET /api/agents/packagesandGETorDELETE /api/agents/packages/{package_id}. Run a ready package as a batch or serving agent withPOST /api/agents/instances, and list its runs with the newpackage_idfilter onGET /api/agents/instances. - Serving mode is now available to agents: When starting an agent, you can now specify
that it should start in
batchmode (process the inputs then end) orservingmode (which stays active to answer queries). An agent inservingmode lasts as long as the agent exists. - Anomaly Discovery can be optimized: The canonical
adblueprint’s detector is now fit by an optimization from normal-only training examples, andthreshold,n_neighbors,metricandpca_componentsare tunable. - RED is fit by optimization and declares its metrics: The canonical
redblueprint now has ametricssection, and its classifier is fit by an optimization instead of shipping pre-fit. Optimizations must set its neweventsandbackgroundvalues, and itsmetricis tunable. - New objectives score detection against a background class: When a category target names
a
backgroundlabel,foreground_macro_f1,detection_recallanddetection_precisionare available as objectives and as theprimarymetric. Binary targets get them too, with the non-positive class as the background. - Eval and optimization lists can be sorted:
GET /api/agents/evalsandGET /api/agents/optimizationstake asortofcreated_at(the default),nameorscore, and anorderofascordesc. Rows with no score sort last. Theafterandbeforecursors are now opaque and tied to the sort they came from, and replaying one under a differentsortreturns400. - A blueprint’s
sourcesays how it was derived:sourcenow has akindfield:promotionfor a blueprint promoted from an optimization trial, orcopyfor one copied into a project. The promotion fields are unchanged. - Optimization trials run in parallel: Trials that don’t share encoder settings now run across up to eight jobs at once, instead of one after another in a single job.
- Blueprints can pin a model by its
mdl_id: A model slot in a blueprint or bundle can now be a model registrymdl_id, as well as a registry tag or anaar_artifact ref. A pinned id keeps resolving after its tags are archived. Canonical blueprints and bundles still require tags. - Fine-tuned Newton-C LoRA models can be served by id: A blueprint can name a fine-tuned
Newton-C model (variants
newton-c-2.5-8b-loraandnewton-c-2.5-2b-lora) by itsmdl_id or a tag that points at one. The platform resolves the base model and LoRA adapter and merges them at load. Naming a LoRA model in a slot whose node can’t apply an adapter returns400. - Optimizations take
targetsoverrides and aseed:targetsoverrides work the same way they do on eval requests, and the response includesresolved_targets. An optional non-negativeseedmakes trial sampling reproducible for the same search space. - Evals and optimizations can score per-class
precision,recallandf1: These objectives take aclassparameter, for example{ name: f1_bearing, f1: { class: bearing } }, and can be used as theprimarymetric. An eval’s per-targetobjectivesoverride now replaces the blueprint’s list instead of only narrowing it. - Examples can hold several input files, and blueprints can have several targets: The new
per_inputground-truth form labels each input file of an example. A blueprint is no longer limited to one target. - Prediction files map each line back to its inputs: Each line of an eval’s predictions
file now has an
inputfield naming the input it came from and akeysfield with thepredictedandexpectedpairing keys. Theabstainedfield is removed; a prediction with no value now haspredictedset tonull. - Eval results appear while the eval runs: Per-example reports are now saved as each example completes. Partial results are visible during a run and are kept if the eval fails late or is cancelled.
- One bad example no longer fails a whole eval: An example whose inputs or ground truth
can’t be read now fails on its own, with a
failedstatus and anerror, and is left out of the pooled metrics. The eval fails only if every example fails. In an optimization, a failed example still fails its trial. - New canonical blueprint,
omega-embeddings: It produces Omega embeddings from multi-channel numeric time-series data. It runs in batch mode only.
Console & UI
- Evals and optimizations have views for detection agents: The eval and optimization pages now show results for Anomaly Discovery and RED agents.
- Optimization trials open in a side panel: Selecting a trial opens its results and config in a side panel, where you can promote it. The new optimization form also has an optional seed field.
- The fine-tuning job’s Training files tab loads from the server: The tab uses the new inputs endpoint for paging, with role and search filters.
- File Manager asks before deleting a file: The delete button now opens a confirmation dialog.
- The login page has a new design.
- API-key logins show
N/Aas the role: The sidebar profile no longer shows Viewer for every API-key login, because the role isn’t available for those sessions.
Bug Fixes
- Cancelling an agent run frees its slot right away: Cancelling a run now also cancels its backing job. Before, an orphaned job could keep holding a slot of the organization’s concurrency limit, so new runs were skipped.
- A batch run with no source file is refused: A batch run whose
connectors.sourcehas nofileref now returns400. Before, it was accepted and stayedrunningfor hours. - Ground-truth labels for the canonical AD blueprint are no longer refused: Optimize, eval
and training jobs refused
constantandper_inputlabels such asnormalwhen a target’slabelsheld${values.*}references, as the canonical AD blueprint’s do. These labels are now checked after the references are filled in.