Convoy AI

Product Station · Platform

Convoy

Template

Gives your agent access to the Convoy platform to create, configure and test a station, within your rules.

The control station, in brief

This station sits between your agent and the tool. Before any call, it checks who is acting, shows only the useful tools, applies the rules below and keeps track of the task.

It can

  • Create a station draft
  • Edit its configuration
  • Run test scenarios

It asks a human for

  • Publish a station

It never has access to

  • Delete another account's station
  • Read another account's keys

Scenario Replays

An agent works through the station. Simulated scenarios, no real data, no key required.

Publish too early

What you will see: The playbook enforces the order (test, then publish) and publishing keeps a human approval point.

Agent connected to the station through MCP
  1. HumanPublish my new station now.
  2. AgentI'll try to publish it.
  3. MCP callpublishStation(station: "ma-station")
  4. StationRefused: no passing test for this version. Run the test scenarios first.REFUSEDRule applied: test-before-publish
  5. MCP callrunTest(station: "ma-station")
  6. StationPassing test on 3 scenarios.OKRule applied: playbook build-a-station
  7. MCP callpublishStation(station: "ma-station")
  8. StationPublication ready. It goes out only after a human approves.PENDINGRule applied: human-for-publish
These rules are not yours?

Copy the station, change a limit or an approval step in its configuration file, and get your own station.

Copy and adapt

The configuration in detail

convoy.yamlRead the docs →

Everything the station does fits in this file. The replay above applies it, and a copy starts from it. The values are examples to adapt, not a recommendation.

station:
  id: convoy
  kind: product
  policies:
    - {policy: test-before-publish, at: submit}
    - {policy: human-for-publish, at: submit}

global:
  language: en
  timezone: Europe/Paris

apis:
  - id: convoy-platform
    operations:
      createStationDraft:  {access: write, risk: low}
      updateConfig:        {access: write, risk: medium}
      runTest:             {access: read}
      publishStation:      {access: write, risk: high}
    # not listed, so not available to the agent:
    # deleteStation, readOtherAccountKeys

profiles:
  builder:
    allow: [createStationDraft, updateConfig, runTest, publishStation]

policies:
  test-before-publish:
    type: rule
    when: "action == publishStation and not tested"
    effect: deny
    reason: "A station is published only after a passing test."
  human-for-publish:
    type: rule
    when: "action == publishStation"
    effect: needs-human
    reason: "Publishing needs a human's approval."

skills:
  - {id: create-station-draft, uses: createStationDraft}
  - {id: update-config, uses: updateConfig}
  - {id: run-test, uses: runTest}
  - {id: publish-station, uses: publishStation}

playbooks:
  - id: build-a-station
    tasks: [create-station-draft, update-config, run-test, publish-station]

Shared copies

Copies that their authors choose to share will appear here. Each one keeps a link to this original station.