Naar de inhoud
Alle hulpmiddelen

recipe_save

Skills en recepten · macOS · Windows

Effect: schrijven. Status: voorwaardelijk beschikbaar.

‘Voorwaardelijke beschikbaarheid’ betekent dat het hulpmiddel kan afhangen van versie, platform, machtigingen, account of configuratie. Het is niet in elke installatie actief.

macOS

Doel

Slaat een herbruikbare SKILL op — een benoemde recipe (een geordende reeks LMCP-toolaanroepen met parameters) — op deze Mac zodat de gebruiker hem op elk moment opnieuw kan uitvoeren met recipe_run. Een gebruiker zou er een opslaan om een LMCP-workflow met meerdere stappen die hij herhaalt (een ochtendoverzicht, inbox-triage, een weekrapport, een gegevensophaling) om te zetten in één herbruikbare opdracht. Opgeslagen skills kunnen via recipe_export met andere mensen worden gedeeld. Het manifest moet een name en een niet-lege steps-array hebben. Een stap kan zichzelf niet bevestigen: `confirm` in de args van een stap wordt bij het opslaan verwijderd (confirm_removed_steps zegt hoeveel stappen er een hadden) en bij het uitvoeren genegeerd, dus een stap waarvan de tool om bevestiging vraagt, antwoordt met zijn voorbeeld in plaats van uit te voeren. Een name die al een recipe is, wordt geweigerd met recipe_exists en er wordt niets geschreven; geef overwrite: true mee om te vervangen. Geeft {name} terug.

Vereiste invoer

De namen blijven exact zoals het hulpmiddel ze vereist. De canonieke technische definities in het Engels staan in het uitklapbare schema hieronder.

Machtigingen en bevestiging

Het schema bevat geen expliciete bevestigingsparameter. Dit geeft geen toestemming om te handelen; controleer het effect en vraag autorisatie.

Canoniek technisch schema in het Engels — macOS
{
  "properties": {
    "manifest": {
      "description": "The recipe manifest. Shape: {\"name\": string (required), \"description\": string, \"params\": [{\"name\": string, \"type\": \"string\"|\"int\"|\"bool\", \"default\": any}], \"steps\": [ ... ] (required, non-empty), \"outputs\": [{\"kind\": string}]}. A step is EITHER a tool call {\"tool\": <tool_name>, \"args\": {...}} OR a pause {\"wait\": {\"seconds\": N}} (also {\"wait\": N}). A tool-call step may add \"optional\": true (a boolean; default false): if it fails, recipe_run records {ok:false, error} for it, lists it in skipped_optional and carries on with the next step, instead of stopping — use it for a source the user may not have (an app, a permission). Any arg string may interpolate a declared param with ${name} (e.g. \"limit\": \"${count}\"); an arg that is exactly \"${name}\" keeps the param's type. Steps run in order; a later step can consume an EARLIER step's output with \"${steps[N].result.KEY}\" (0-based; supports .key and [i], e.g. \"account\": \"${steps[0].result.accounts[0].name}\"). A step cannot confirm itself: do not put `confirm` in a step's args (it is removed when saving and ignored when running). recipe_run asks for one confirmation when the recipe has state-changing steps; a step whose tool asks for its own confirmation then answers with its preview and is not executed. A step that names a note should give note_name (the note's title): a note_id only names the note on the Mac that issued it, so a step that gives both is saved with note_name alone.",
      "type": "object"
    },
    "overwrite": {
      "description": "Must be true to replace a recipe that already has this name. Without it, a taken name is refused with recipe_exists and the existing recipe is left as it was.",
      "type": "boolean"
    }
  },
  "required": [
    "manifest"
  ],
  "type": "object"
}

Documentatievoorbeeld

Documentatievoorbeeld voor recipe_save. Voer dit voorbeeld niet uit. De getoonde argumenten verwijzen naar fictieve gegevens; zoek vóór een echte aanroep de werkelijke identificatoren op en vraag toestemming.

{
  "manifest": {
    "description": "Read the local date and time.",
    "name": "Demo morning brief",
    "steps": [
      {
        "args": {},
        "tool": "get_datetime"
      }
    ]
  }
}

Windows

Doel

Slaat een herbruikbare SKILL op — een benoemde recipe (een geordende reeks LMCP-toolaanroepen met parameters) — op deze machine zodat de gebruiker hem op elk moment opnieuw kan uitvoeren met recipe_run. Een gebruiker zou er een opslaan om een LMCP-workflow met meerdere stappen die hij herhaalt (een ochtendoverzicht, inbox-triage, een weekrapport, een gegevensophaling) om te zetten in één herbruikbare opdracht. Het manifest moet een name en een niet-lege steps-array hebben. Een stap mag "optional": true toevoegen (een boolean; standaard false): als hij mislukt, legt recipe_run {ok:false, error} ervoor vast, vermeldt hem in skipped_optional en gaat door met de volgende stap in plaats van te stoppen — gebruik dit voor een bron die de gebruiker mogelijk niet heeft (een app, een machtiging). Een arg-string mag een gedeclareerde param invoegen met ${name}; een arg die precies "${name}" is, behoudt het type van de param. Een latere stap kan de uitvoer van een eerdere stap gebruiken met "${steps[N].result.KEY}" (0-gebaseerd; ondersteunt .key en [i]). Een stap kan zichzelf niet bevestigen: confirm in de args van een stap wordt verwijderd, dus een stap waarvan de tool om bevestiging vraagt (om te verzenden, te verwijderen, een bestand te vervangen, een opdracht uit te voeren) geeft zijn voorbeeld terug. Een name die al een recipe is, wordt geweigerd met recipe_exists en er wordt niets geschreven; geef overwrite: true mee om te vervangen. Geeft {name, step_count} terug.

Vereiste invoer

De namen blijven exact zoals het hulpmiddel ze vereist. De canonieke technische definities in het Engels staan in het uitklapbare schema hieronder.

Machtigingen en bevestiging

Het schema bevat geen expliciete bevestigingsparameter. Dit geeft geen toestemming om te handelen; controleer het effect en vraag autorisatie.

Canoniek technisch schema in het Engels — Windows
{
  "properties": {
    "manifest": {
      "description": "The recipe manifest. Shape: {\"name\": string (required), \"description\": string, \"schema_version\": int, \"params\": [{\"name\": string, \"type\": string, \"default\": any}], \"steps\": [{\"tool\": string, \"args\": object, \"optional\": bool}] (required, non-empty)}.",
      "type": "object"
    },
    "overwrite": {
      "description": "Must be true to replace a recipe that already has this name. Without it, a taken name is refused with recipe_exists and the existing recipe is left as it was.",
      "type": "boolean"
    }
  },
  "required": [
    "manifest"
  ],
  "type": "object"
}

Documentatievoorbeeld

Documentatievoorbeeld voor recipe_save. Voer dit voorbeeld niet uit. De getoonde argumenten verwijzen naar fictieve gegevens; zoek vóór een echte aanroep de werkelijke identificatoren op en vraag toestemming.

{
  "manifest": {
    "description": "Read the local date and time.",
    "name": "Demo morning brief",
    "steps": [
      {
        "args": {},
        "tool": "get_datetime"
      }
    ]
  }
}