Understudy Labs · Arazzo Workflow

Download, warm, and chat with a local model on Understudy Desktop

Version 1.0.0

The core Understudy Desktop journey over the loopback Agent API - pick a model from the catalog, start and track its download, add a residency slot, assign and warm the model in the slot, then send a conversation turn and stream the run's events.

1 workflow 5 source APIs 1 provider
View Spec View on GitHub Artificial IntelligenceLLM GatewayMachine-LearningOpen-SourceModel RoutingEvaluationsFine-TuningAI InfrastructureDeveloper ToolsArazzoWorkflows

Provider

understudy-labs

Workflows

download-warm-and-chat
From catalog to a locally-served conversation turn.
All calls target the authenticated loopback API described by the desktop capability file. Nothing leaves the machine unless a remote route is explicitly selected.
8 steps inputs: model_id, prompt, session_id outputs: run_id
1
browseCatalog
List downloadable models and confirm the target model exists.
2
startDownload
Start downloading the chosen model.
3
pollDownload
Poll the download until it completes.
4
addSlot
Add a residency slot to hold the model.
5
assignModel
Assign the downloaded model to the slot.
6
warmSlot
Warm the slot so the model is resident and ready.
7
sendTurn
Send the first conversation turn to the warmed model.
8
streamRunEvents
Stream the canonical ConversationRuntime events for the run.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Download, warm, and chat with a local model on Understudy Desktop
  version: 1.0.0
  summary: The core Understudy Desktop journey over the loopback Agent API - pick a model from the catalog, start and track its download, add a residency slot, assign and warm the model in the slot, then send a conversation turn and stream the run's events.
sourceDescriptions:
- name: conversationsApi
  url: ../openapi/understudy-labs-conversations-api-openapi.yml
  type: openapi
- name: downloadsApi
  url: ../openapi/understudy-labs-downloads-api-openapi.yml
  type: openapi
- name: modelsApi
  url: ../openapi/understudy-labs-models-api-openapi.yml
  type: openapi
- name: residencyApi
  url: ../openapi/understudy-labs-residency-api-openapi.yml
  type: openapi
- name: runsApi
  url: ../openapi/understudy-labs-runs-api-openapi.yml
  type: openapi
workflows:
- workflowId: download-warm-and-chat
  summary: From catalog to a locally-served conversation turn.
  description: All calls target the authenticated loopback API described by the desktop capability file. Nothing leaves the machine unless a remote route is explicitly selected.
  inputs:
    type: object
    properties:
      model_id:
        type: string
        description: Catalog model to download and serve (e.g. understudy-small).
      session_id:
        type: string
        description: Conversation session identifier.
      prompt:
        type: string
        description: First user message for the warmed model.
  steps:
  - stepId: browseCatalog
    description: List downloadable models and confirm the target model exists.
    operationId: desktopModelCatalog
    successCriteria:
    - condition: $statusCode == 200
  - stepId: startDownload
    description: Start downloading the chosen model.
    operationId: desktopDownloadStart
    requestBody:
      contentType: application/json
      payload:
        model: $inputs.model_id
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      download_id: $response.body#/download_id
  - stepId: pollDownload
    description: Poll the download until it completes.
    operationId: desktopDownloadStatus
    parameters:
    - name: download_id
      in: path
      value: $steps.startDownload.outputs.download_id
    successCriteria:
    - condition: $statusCode == 200
  - stepId: addSlot
    description: Add a residency slot to hold the model.
    operationId: desktopResidencyAddSlot
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      slot_id: $response.body#/slot_id
  - stepId: assignModel
    description: Assign the downloaded model to the slot.
    operationId: desktopResidencyAssign
    requestBody:
      contentType: application/json
      payload:
        slot_id: $steps.addSlot.outputs.slot_id
        model: $inputs.model_id
    successCriteria:
    - condition: $statusCode == 200
  - stepId: warmSlot
    description: Warm the slot so the model is resident and ready.
    operationId: desktopResidencyWarm
    requestBody:
      contentType: application/json
      payload:
        slot_id: $steps.addSlot.outputs.slot_id
    successCriteria:
    - condition: $statusCode == 200
  - stepId: sendTurn
    description: Send the first conversation turn to the warmed model.
    operationId: conversationTurn
    parameters:
    - name: session_id
      in: path
      value: $inputs.session_id
    requestBody:
      contentType: application/json
      payload:
        message: $inputs.prompt
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      run_id: $response.body#/run_id
  - stepId: streamRunEvents
    description: Stream the canonical ConversationRuntime events for the run.
    operationId: conversationRunEvents
    parameters:
    - name: run_id
      in: path
      value: $steps.sendTurn.outputs.run_id
    successCriteria:
    - condition: $statusCode == 200
  outputs:
    run_id: $steps.sendTurn.outputs.run_id

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/understudy-labs-download-warm-and-chat"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.