Saltar al contenido
Todas las herramientas

recipe_save

Skills y recetas · macOS · Windows

Efecto: escritura. Estado: disponibilidad controlada.

«Disponibilidad controlada» significa que la herramienta figura en los artefactos publicados y puede depender de versión, plataforma, permisos, cuenta o configuración. Esta referencia no promete que esté activa en todas las instalaciones. Que una herramienta figure para macOS no implica que esté disponible en Windows, ni al revés.

macOS

Propósito

Guarda una SKILL reutilizable, una receta con nombre (una secuencia ordenada de llamadas a herramientas de LMCP con parámetros), en este Mac para que el usuario pueda volver a ejecutarla en cualquier momento con recipe_run. Un usuario guardaría una para convertir en un único comando reutilizable un flujo de trabajo de LMCP de varios pasos que repite (un resumen matutino, la clasificación de la bandeja de entrada, un informe semanal, una extracción de datos). Las skills guardadas pueden compartirse con otras personas mediante recipe_export. El manifiesto debe tener un name y un arreglo steps no vacío. Un paso no puede confirmarse a sí mismo: `confirm` en los argumentos de un paso se elimina al guardar (confirm_removed_steps indica a cuántos pasos se lo quitó) y se ignora al ejecutar, de modo que un paso cuya herramienta pide confirmación responde con su vista previa en lugar de ejecutarse. Un nombre que ya es una receta se rechaza con recipe_exists y no se escribe nada; pasa overwrite: true para reemplazarla. Devuelve {name}.

Entradas obligatorias

Los nombres se conservan exactamente como los exige la herramienta. Las definiciones técnicas canónicas, en inglés, están en el esquema expandible de abajo.

Permisos y confirmación

El esquema no declara un parámetro explícito de confirmación. Esto no autoriza a actuar sin permiso: revisa el efecto y obtén autorización antes de una llamada real.

Esquema técnico canónico en inglés — 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"
}

Ejemplo documental

Ejemplo de documentación para recipe_save. No ejecutes este ejemplo. Los argumentos mostrados pertenecen a un conjunto de datos ficticio; resuelve identificadores reales y obtén autorización antes de una llamada real.

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

Windows

Propósito

Guarda una SKILL reutilizable, una receta con nombre (una secuencia ordenada de llamadas a herramientas de LMCP con parámetros), en este equipo para que el usuario pueda volver a ejecutarla en cualquier momento con recipe_run. Un usuario guardaría una para convertir en un único comando reutilizable un flujo de trabajo de LMCP de varios pasos que repite (un resumen matutino, la clasificación de la bandeja de entrada, un informe semanal, una extracción de datos). El manifiesto debe tener un name y un arreglo steps no vacío. Un paso puede agregar "optional": true (un booleano; por defecto false): si falla, recipe_run registra {ok:false, error} para él, lo lista en skipped_optional y continúa con el siguiente paso en lugar de detenerse; úsalo para una fuente que el usuario puede no tener (una app, un permiso). Una cadena de argumento puede interpolar un parámetro declarado con ${name}; un argumento que es exactamente "${name}" conserva el tipo del parámetro. Un paso posterior puede consumir la salida de un paso anterior con "${steps[N].result.KEY}" (base 0; admite «.key» y [i]). Un paso no puede confirmarse a sí mismo: confirm en los argumentos de un paso se elimina, así que un paso cuya herramienta pide confirmación (para enviar, eliminar, reemplazar un archivo o ejecutar un comando) devuelve su vista previa. Un nombre que ya es una receta se rechaza con recipe_exists y no se escribe nada; pasa overwrite: true para reemplazarla. Devuelve {name, step_count}.

Entradas obligatorias

Los nombres se conservan exactamente como los exige la herramienta. Las definiciones técnicas canónicas, en inglés, están en el esquema expandible de abajo.

Permisos y confirmación

El esquema no declara un parámetro explícito de confirmación. Esto no autoriza a actuar sin permiso: revisa el efecto y obtén autorización antes de una llamada real.

Esquema técnico canónico en inglés — 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"
}

Ejemplo documental

Ejemplo de documentación para recipe_save. No ejecutes este ejemplo. Los argumentos mostrados pertenecen a un conjunto de datos ficticio; resuelve identificadores reales y obtén autorización antes de una llamada real.

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