> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Creazione di playbook

> Crea una libreria di prompt riutilizzabili per la tua organizzazione

export const PromptBlock = ({children, type, agent, intent, playbookId}) => {
  var utm = 'utm_source=docs&utm_medium=use-case-gallery&utm_campaign=prompt-block';
  var tag = 'docs-use-case-gallery';
  var agentParams = (agent ? '&agent=' + agent : '') + (intent ? '&intent=' + intent : '') + (playbookId ? '&playbookId=' + playbookId : '');
  var label = type === 'schedule' ? 'Schedule in Devin' : type === 'playbook' ? 'Create Playbook' : type === 'knowledge' ? 'Add to Knowledge' : agent === 'advanced' ? 'Try in Devin' : agent === 'dana' ? 'Try in Dana' : agent === 'ada' ? 'Try in Ask Devin' : 'Try in Devin';
  var buildUrl = function (text) {
    var encoded = encodeURIComponent(text);
    if (type === 'schedule') return 'https://app.devin.ai/settings/schedules/create?' + utm + agentParams + '&prompt=' + encoded;
    if (type === 'playbook') return 'https://app.devin.ai/settings/playbooks/create?' + utm + '&body=' + encoded;
    if (type === 'knowledge') return 'https://app.devin.ai/knowledge?' + utm + '&body=' + encoded;
    if (agent === 'ada') return 'https://app.devin.ai/search?' + utm + '&noSubmit=true&prompt=' + encoded;
    return 'https://app.devin.ai/?tags=' + tag + '&' + utm + agentParams + '&prompt=' + encoded;
  };
  const ref = React.useRef(null);
  const [href, setHref] = React.useState('#');
  React.useEffect(() => {
    if (!ref.current) return;
    var codeEl = ref.current.querySelector('pre code');
    if (codeEl) {
      var text = codeEl.textContent.trim();
      if (text) setHref(buildUrl(text));
    }
    var header = ref.current.querySelector('[data-component-part="code-block-header"]');
    if (header && !header.querySelector('.prompt-block-devin-link')) {
      var link = document.createElement('a');
      link.href = href;
      link.target = '_blank';
      link.rel = 'noopener noreferrer';
      link.className = 'prompt-block-devin-link';
      link.style.cssText = 'display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:#fff;font-size:11px;font-weight:500;padding:4px 10px;border-radius:6px;white-space:nowrap;background:#317CFF;transition:background 0.2s;margin-left:8px;';
      link.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg> ' + label;
      link.onmouseenter = function () {
        link.style.background = '#2968D9';
      };
      link.onmouseleave = function () {
        link.style.background = '#317CFF';
      };
      header.appendChild(link);
    }
    var existingLink = ref.current.querySelector('.prompt-block-devin-link');
    if (existingLink && href !== '#') existingLink.href = href;
  });
  return <div className="prompt-block" ref={ref}>{children}</div>;
};

<div id="what-are-playbooks">
  ## Cosa sono i playbook?
</div>

<div id="playbooks-are-easily-shareable-reusable-prompts-for-repeated-tasks">
  ### I Playbook sono prompt facilmente condivisibili e riutilizzabili per attività ripetute
</div>

Un Playbook è come un prompt di sistema personalizzato per un'attività ricorrente. Per esempio, se hai bisogno di molte sessioni di Devin, diverse tra loro, che integrino tutte la stessa libreria di terze parti ma in parti diverse della tua applicazione, potresti voler usare un Playbook.

I Playbook sono anche facilmente condivisibili e riutilizzabili, quindi, una volta che qualcuno ottiene buoni risultati con Devin, gli altri possono replicare più facilmente quel successo!

<Tip>La maggior parte delle best practice, delle guide di stile o di altre istruzioni specifiche di progetto dovrebbe essere condivisa con Devin usando [Knowledge](/it/product-guides/knowledge). Ti consigliamo di leggere la documentazione relativa a Knowledge prima di creare Playbook, per capire quale metodo si adatta meglio alle tue esigenze.</Tip>

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/p6mfZwd14EeP9cx_/images/playbooks1.png?fit=max&auto=format&n=p6mfZwd14EeP9cx_&q=85&s=881388e8e5f66ec8c4b83495577de4c8" alt="Devin" width="2468" height="1438" data-path="images/playbooks1.png" />
</Frame>

Ti consigliamo di usare i Playbook quando:

* Tu o i tuoi colleghi riutilizzerete il prompt in più sessioni.
* Ti ritrovi a ripetere le stesse indicazioni a Devin.
* Il caso d'uso può essere rilevante per altri — nella tua organizzazione o all'interno della community di utenti Devin.

<div id="getting-started-with-playbooks">
  ## Introduzione ai Playbook
</div>

<Tip> I Playbook possono sbloccare immediatamente la capacità di Devin di contribuire in un’ampia gamma di ambiti, ma al momento richiedono una certa competenza per essere scritti. In modo simile al prompt engineering, scrivere playbook richiede tentativi ed errori. Il frutto di questo lavoro, però, è un documento che sblocca la capacità di Devin di affrontare in modo indipendente attività complesse, dall’ingestione di dati in Redshift e l’esecuzione di migrazioni di database all’utilizzo di diversi software e API: ad esempio Together, Plaid, Stripe, Modal, Spring Boot, Odoo e Storybook.</Tip>

Ti consigliamo di scrivere il tuo primo playbook partendo da una semplice attività in più fasi che vuoi che Devin gestisca.

1. Crea un documento che descriva...
   1. Il risultato che vuoi che Devin raggiunga
   2. I passaggi necessari per arrivarci
2. **Opzionale**: aggiungi sezioni come **Procedura**, **Specifiche**, **Consigli**, **Azioni vietate** o **Richiesto dall'utente**
   1. **Procedura**: Delinea l’intero ambito dell’attività. Includi almeno un passaggio per il setup, il lavoro vero e proprio e la consegna.
   2. **Specifiche**: Descrivi le postcondizioni: cosa deve essere vero dopo che Devin ha finito?
   3. **Consigli**: Includi suggerimenti per correggere i presupposti iniziali di Devin
   4. **Azioni vietate**: Includi qualsiasi azione che Devin non deve assolutamente intraprendere
   5. **Richiesto dall'utente**: Descrivi qualsiasi input o informazione richiesti all’utente
3. Crea il playbook direttamente nella web app facendo clic su [Create a new Playbook](https://app.devin.ai/settings/playbooks/create). In alternativa, salva un file con estensione `.devin.md` e trascinalo nella web app quando avvii una sessione con Devin

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/p6mfZwd14EeP9cx_/images/playbooks2.png?fit=max&auto=format&n=p6mfZwd14EeP9cx_&q=85&s=80bc8065ad88a19a668d1989673e24ab" alt="Devin" width="1226" height="386" data-path="images/playbooks2.png" />
</Frame>

<Tip> Hai collegato correttamente un playbook a una sessione se vedi apparire una pillola blu, insieme a un componente inline per modificare il playbook prima di iniziare la sessione. </Tip>

<Frame>
  <img src="https://mintcdn.com/cognitionai-enterprise/p6mfZwd14EeP9cx_/images/playbooks3.png?fit=max&auto=format&n=p6mfZwd14EeP9cx_&q=85&s=8ef6abaa79e6e8f5249da8160fb82ce1" alt="Devin" width="1920" height="416" data-path="images/playbooks3.png" />
</Frame>

<div id="writing-a-great-playbook">
  ## Come scrivere un playbook efficace
</div>

<div id="procedure">
  ### Procedura
</div>

La sezione Procedura dovrebbe...

* Avere **un passo per riga**, ogni riga scritta in forma imperativa
* Coprire l’intero ambito dell’attività
* Includere almeno un passo per la configurazione iniziale, il compito effettivo e la consegna
* Puntare a rendere i passi **mutuamente esclusivi** e **collettivamente esaustivi**
* **Suggerimenti aggiuntivi**
  * Le procedure dovrebbero aiutarti a definire l’ordine delle azioni di Devin, come if/else/loops/goto nel codice
  * Non rendere i compiti troppo specifici a meno che non sia davvero necessario: questo può ridurre la capacità di Devin di risolvere problemi
  * Ogni passo della procedura dovrebbe contenere un verbo d’azione, ad es. Scrivi, Vai a, ecc.

<div id="advice-and-pointers">
  ### Consigli e indicazioni
</div>

Condividi consigli e indicazioni con Devin se...

* Hai un modo preferito di svolgere le attività
* Il consiglio si applica all’intera attività o a più passaggi. I consigli specifici per un singolo passaggio andrebbero scritti accanto a quel passaggio (ad es. come sotto-elenco puntato)
* Stai correggendo le assunzioni di base di Devin. I consigli possono funzionare come commenti su pseudocodice che ne influenzano l’esecuzione.

<Tip> Se il consiglio si applica solo a un singolo passaggio della procedura, inserisci il consiglio sotto quel passaggio usando punti elenco annidati </Tip>

<div id="specifications">
  ### Specifiche
</div>

La sezione **Specifiche** può essere utile per descrivere le postcondizioni del playbook: che cosa dovrebbe essere vero una volta che Devin ha terminato?

<div id="whats-needed-from-user">
  ### Cosa è necessario dall'utente
</div>

Valuta tutto ciò che è necessario ma che è al di fuori del controllo di Devin. Ad esempio, se l'utente deve fornire un token o informazioni che non sono pubblicamente disponibili per Devin.

<div id="other-tips-tactics">
  ### Altri suggerimenti e tattiche
</div>

<AccordionGroup>
  <Accordion title="Iterare e migliorare tramite tentativi ed errori">
    * Esegui 2 o più Devin in parallelo con lo stesso playbook per identificare rapidamente possibili errori.
    * Se Devin ha bisogno di aiuto, interagisci in chat per aiutarlo a progredire. Poi aggiorna il tuo playbook in modo che la volta successiva Devin riesca a completare il lavoro senza intervento.
  </Accordion>

  <Accordion title="Spiega a Devin come si presenta un buon risultato">
    Sii esplicito su qual è il deliverable e su come Devin deve comunicare che è completato (ad es. quali file allegare o quali link condividere, se necessario).
  </Accordion>

  <Accordion title="Ottimizza la velocità di esecuzione del tuo playbook">
    Esplora le diverse decisioni che Devin può prendere e guida Devin lungo il percorso più efficiente all’interno del playbook.
  </Accordion>

  <Accordion title="Comandi specifici, “incantesimi” e stringhe sono assolutamente validi">
    * Possono fare la differenza tra un playbook funzionante e uno che non funziona.
    * Ad esempio, quanto segue può essere un ottimo dettaglio da includere perché alloy e tts-1 probabilmente non sono elementi che Devin sceglierebbe altrimenti, e questo guida Devin in una direzione con maggiore probabilità di successo!

    ```
    3. Create request dict with model: "tts-1", voice: "alloy"
    ```
  </Accordion>
</AccordionGroup>

<div id="example-playbook">
  ## Esempio di playbook
</div>

Visualizza le sessioni di esempio che utilizzano il playbook qui sotto [qui](https://app.devin.ai/sessions/93f381206f44492e9fc8b236ee022877) e [qui](https://app.devin.ai/sessions/eed1a18b9ce348f69e6bac84bb42d992).

<div id="macros">
  ## Macro
</div>

Puoi assegnare una **macro** a qualsiasi playbook: un identificatore breve che inizia con `!` (ad esempio `!data-tutorial`). Le macro ti consentono di associare rapidamente un playbook a una sessione digitando il nome della macro nel campo di input del prompt. Le macro possono contenere solo lettere, numeri e trattini e devono essere univoche all'interno della tua organizzazione.

<div id="version-history">
  ## Cronologia delle versioni
</div>

I playbook conservano una **cronologia delle versioni** per permetterti di tenere traccia delle modifiche nel tempo. Ogni volta che modifichi e salvi un playbook, viene creata una nuova versione. Puoi visualizzare le versioni precedenti e ripristinarne una precedente se una modifica recente non ha prodotto il risultato previsto.

<div id="enterprise-playbooks">
  ## Playbook Enterprise
</div>

Per i clienti Enterprise, i playbook possono essere gestiti a livello **enterprise** oltre che a livello di organizzazione. I playbook Enterprise sono condivisi tra tutte le org della tua enterprise, semplificando la standardizzazione dei flussi di lavoro tra i team. Gli amministratori Enterprise possono creare e gestire playbook a livello enterprise dalle impostazioni dell'enterprise.

<PromptBlock>
  ```txt R Data Science Tutorial theme={null}
  Playbook: R Data Science Tutorial

  ## Overview
  Crea un tutorial di data science utilizzando un notebook R Markdown.

  ## What’s Needed From User
  - Link a un dataset (file CSV in allegato o link Kaggle)
  - Attività specifica per cui creare un tutorial di data science

  ## Procedure
  1. Scarica il dataset fornito dall'utente.
  -  Se necessario, scarica il dataset utilizzando la Kaggle CLI: non ti servono credenziali per farlo.
  2. Crea un notebook R Markdown intitolato `data_science_tutorial.Rmd`.
  3. Crea un file `tmp.Rmd` per scrivere e salvare il codice intermedio.
  4. Crea 5 sezioni principali all'interno del file `data_science_tutorial.Rmd` e aggiungi il codice dal file `tmp.Rmd` contenente quanto segue:
  - Statistiche del dataset. Genera un riepilogo statistico del dataset.
  - EDA (Exploratory Data Analysis). Crea un grafico a barre e uno scatter plot per i dati forniti.
  - Suddivisione train-test. Suddividi i dati con un rapporto 80:20. Salva i dati di training e di test.
  - Addestramento del modello di machine learning. Salva il modello una volta addestrato.
  - Inferenza con il modello salvato. Carica il modello salvato e valuta le sue prestazioni sul set di test utilizzando la metrica specificata dall'utente.
  5. Una volta scritto il codice, aggiungi una breve spiegazione per ciascuna sezione.
  6. Converti il notebook R Markdown in formato HTML.
  7. Invia all'utente il notebook R Markdown finale, il file HTML, il modello salvato e i dati di test.

  ## Specifications
  1. Invia all'utente il notebook R Markdown e il file HTML.
  2. Invia all'utente il modello salvato e i dati di test.

  ## Advice and Pointers
  1. Non reinstallare i pacchetti se sono già installati.
  2. Non è necessario effettuare l'accesso a RStudio per completare questa attività.
  3. Esegui l'intero notebook dopo aver aggiunto il codice per ciascuna sezione.

  ## Forbidden Actions
  1. Non sovrascrivere il file `data_science_tutorial.Rmd`.
  ```
</PromptBlock>
