Skip to content

Publish and install templates#

This page covers the workspace side of the marketplace: starting from a built-in agent, publishing an agent or a flow for the rest of your organisation, installing a template, and updating what you installed. Approving publications and the organisation-wide view are in Agent governance.

Before you begin#

  • The workspace's editor or admin role to publish and install.
  • For the API: ASTRA_TOKEN and the console API, $ASTRA_URL/api/v1 (see REST API). The CLI has no marketplace commands.

Start from a built-in agent#

Open Anemoi → Marketplace. Under Built in, each starter shows what it does and the services it connects to. Start from it opens New agent filled in: choose the model and the credentials, adjust, and create it. The same starters are offered under Start from in New agent.

GET $WS/agent-templates lists them under starters, with their instructions, connections, access levels and sandbox.

Publish an agent or a flow#

  1. On the agent's (or flow's) page press Publish.
  2. Title, Description, Tags, Icon (initials), Version (the current one by default) and What changed.
  3. Offered to: the whole organisation, or named workspaces.
  4. Publish. If the organisation requires approval and you are not an organisation admin, the version waits for an admin; you are told when it is approved or rejected, with the reason.
$ curl -sS -X POST "$ASTRA_URL/api/v1/orgs/acme/workspaces/research/marketplace/publish" \
    -H "Authorization: Bearer $ASTRA_TOKEN" -H "Content-Type: application/json" \
    -d '{"cluster": "main", "kind": "agent", "name": "researcher", "title": "Web researcher (sourced)",
         "description": "Answers in five bullet points, each with its source.", "tags": ["research"],
         "notes": "First version.", "visibility": "org"}'

201 with the template and the version. To publish a new version of an existing template, add "template": "<slug>"; a new template's slug is slug, or the name (lowercase letters, digits and -, 2 to 60). visibility is org or workspaces (with workspaces: [slugs]).

The template keeps the version's specification with names local to your workspace, and lists what it references — credentials, deployments, agents, flows, drives — as requirements. A specification that looks like it holds a secret value is refused.

Install a template#

  1. In Anemoi → Marketplace, under From your organisation, search by name, Agents or Flows, or tag.
  2. Press Install, choose the Version and the name it takes (As), and bind each requirement to a name of your workspace (Names what, in its workspace): your GitHub credential, your deployment, your drive.
  3. Press Install. The agent or flow is made in your workspace, with the same checks as making it by hand.
$ curl -sS -X POST "$ASTRA_URL/api/v1/orgs/acme/workspaces/support/marketplace/web-researcher-sourced/install" \
    -H "Authorization: Bearer $ASTRA_TOKEN" -H "Content-Type: application/json" \
    -d '{"cluster": "main", "name": "researcher", "bindings": {"deployments": {"chat": "support-chat"}}}'

bindings maps each requirement's name in the template to a name in your workspace, under credentials, deployments, agents, flows and drives; every requirement must be bound. GET $ASTRA_URL/api/v1/orgs/{org}/workspaces/{ws}/marketplace lists what you may install.

Installing over an agent or flow that exists is refused with 409 ALREADY_EXISTS, unless you update it.

Take an update#

A template you installed shows when a newer version is published. Update installs it as a new version of your agent or flow — current unless you say otherwise; with an evaluation gate, it must pass first.

$ curl -sS "$ASTRA_URL/api/v1/orgs/acme/workspaces/support/marketplace/installs" -H "Authorization: Bearer $ASTRA_TOKEN" \
    | jq '.items[] | {template, latest_version, update_available}'
$ curl -sS -X POST "$ASTRA_URL/api/v1/orgs/acme/workspaces/support/marketplace/web-researcher-sourced/install" \
    -H "Authorization: Bearer $ASTRA_TOKEN" -H "Content-Type: application/json" \
    -d '{"cluster": "main", "name": "researcher", "update": true, "current": false, "bindings": {"deployments": {"chat": "support-chat"}}}'