Passa al contenuto principale

Panoramica dell'architettura dei Workflow personalizzati

Il sistema di Workflow di Zotero Agents utilizza un'architettura plug-in — ogni Workflow è una directory indipendente e autonoma che richiede solo un file manifesto workflow.json e i corrispondenti script Hook. Il Workflow Manager del plugin lo scopre e lo carica automaticamente.

Struttura delle directory

I Workflow possono essere memorizzati in due posizioni:

PosizioneTipoDescrizione
Pacchetto ufficiale dei WorkflowUfficialeInstallato indipendentemente tramite il Feed dei contenuti. Si trova in <Zotero Data>/zotero-agents/content/official/workflows/
Directory dei Workflow dell'utentePersonalizzatoConfigurata nelle preferenze; il Workflow Manager la scansiona automaticamente

Il Workflow Manager del plugin scansiona ricorsivamente la directory del pacchetto ufficiale e la directory dei Workflow dell'utente, scopre i file workflow.json e li registra come Workflow disponibili.

Un esempio minimo di Workflow

Creare un Workflow personalizzato richiede solo 2 file:

my-workflow/
├── workflow.json
└── hooks/
└── applyResult.mjs

workflow.json

{
"id": "hello-world",
"label": "Hello World",
"provider": "pass-through",
"inputs": {
"unit": "parent"
},
"hooks": {
"applyResult": "hooks/applyResult.mjs"
}
}

hooks/applyResult.mjs

export function applyResult({ parent, runtime }) {
const title = runtime.helpers.resolveItemRef(parent).getField("title");
runtime.hostApi.notifications.toast({
text: `Hello, ${title}!`,
type: "success",
});
return { greeted: true };
}

Dopo aver posizionato my-workflow/ nella directory dei Workflow dell'utente, riapri la Dashboard per vedere il Workflow.

Livelli dell'architettura dei Workflow

Il ciclo di vita di un Workflow coinvolge i seguenti livelli:

Azione dell'utente (Menu contestuale / Dashboard)


Workflow Manager — Scopri, carica, valida

├── Input — Quali elementi ha selezionato l'utente?
├── Parametri — Quali parametri ha impostato l'utente?
├── Hook — Preelaborazione, costruzione delle richieste, gestione dei risultati
└── Esecuzione — Dispatchato a un backend dal Provider


Provider (SkillRunner / ACP / Generic HTTP / Pass-through)


Backend — Motore di esecuzione remoto o locale

Classificazione dei pattern dei Workflow

In base al metodo di esecuzione e al tipo di backend, i Workflow possono essere classificati come segue:

PatternCaso d'uso tipicoTipo di backend
pass-throughOperazioni puramente locali (esportazione, elaborazione file), nessun backend remoto necessarioNessuno
skillrunner.job.v1Esecuzione di una singola skill inviata a SkillRunnerskillrunner / acp
skillrunner.sequence.v1Esecuzione di skill concatenate a più passaggi, con passaggio del testimone tra i passaggiacp
generic-http.request.v1Singola chiamata API HTTPgeneric-http
generic-http.steps.v1Chiamate API HTTP a più passaggigeneric-http

Concetti chiave di workflow.json

{
"id": "identificatore univoco",
"label": "nome visualizzato",
"provider": "tipo di backend",
"inputs": { "unit": "tipo di unità di input" },
"parameters": { /* parametri configurabili */ },
"execution": { /* controllo dell'esecuzione */ },
"request": { "kind": "tipo di richiesta" },
"hooks": { "applyResult": "percorso dello script per la gestione dei risultati" }
}

La pagina successiva spiega il significato e l'utilizzo di ogni campo in dettaglio.

Passi successivi