Back to docs

Tool Persona Delete

Remove a custom persona from every store it lives in.

Requires an explicit confirmation. Built-in personas cannot be deleted.


Usage

{
  "tool": "persona_delete",
  "params": {
    "persona_name": "abandoned-draft",
    "confirm": true
  }
}
{
  "persona": "abandoned-draft",
  "fileStore": { "deleted": true },
  "cms": { "ok": true, "detail": "CMS delete ok" },
  "note": "Removed from both stores."
}

Confirmation is required

Without confirm: true the tool describes what it would remove and does nothing:

{
  "error": "confirmation_required",
  "message": "Deleting \"abandoned-draft\" removes it from the file store and the CMS. Re-send with confirm:true.",
  "wouldDelete": { "name": "abandoned-draft", "description": "..." },
  "deleted": false
}

The caller here is usually a model, and this is the only tool in the persona surface that destroys something. A dry run you have to opt out of is cheaper than a deletion you have to explain.

A partial delete is reported, not hidden

If one store accepts the deletion and the other does not, the persona still resolves through whichever tools read the surviving copy β€” and it will look like the delete silently failed.

{
  "fileStore": { "deleted": true },
  "cms": { "ok": false, "detail": "no API key in session β€” the CMS copy was NOT updated" },
  "note": "Partially removed β€” the stores now disagree. A persona left in one store still resolves through the tools that read it."
}

What it refuses

  • Built-in personas. They ship with the package and are shared by every install.
  • Unknown personas. Nothing to delete.

There is no undo here

Deletion removes the persona file and the CMS row. Anything referencing that persona by name β€” saved journeys, comparison runs, report history β€” will stop resolving it.

If the goal is to correct a persona rather than remove it, persona_update patches individual fields and preserves the rest.


Related

From the Blog