Automazione AI

Come utilizzare il comando Hermes /Goal per ottimizzare i tuoi progetti

Foto di Steve A Johnson (@steve_j) su Unsplash

La maggior parte degli assistenti basati sull'intelligenza artificiale è in grado di rispondere efficacemente a una singola richiesta. Risultano invece meno affidabili quando un compito richiede diverse fasi di analisi, esecuzione, verifica e correzione.

Agenti Hermes /obiettivo Il comando è stato progettato proprio per colmare questa lacuna. Anziché considerare ogni risposta come la fine dell’interazione, mantiene attivo un unico obiettivo per più turni. Dopo ogni turno, un modello di valutazione leggero verifica se l’ultimo lavoro soddisfa l’obiettivo. In caso contrario, Hermes si auto-stimola a continuare fino a quando l’obiettivo non viene raggiunto, l’utente non mette in pausa o annulla l’operazione, oppure il budget di turni consentito non viene esaurito.

Questo fa sì che /obiettivo utile per attività che altrimenti richiederebbero istruzioni ripetitive quali “continua”, “prova di nuovo” o “porta a termine le voci rimanenti”. Può essere d’aiuto nella programmazione, nella ricerca, nell’elaborazione dei dati, nelle verifiche e in altre attività articolate in più fasi, a condizione che il risultato richiesto possa essere definito e verificato.

Questo comando è meno adatto ad ambizioni vaghe, decisioni delicate o progetti che richiedono frequenti valutazioni umane. Hermes può continuare a lavorare per raggiungere un obiettivo, ma ha comunque bisogno di una descrizione precisa di cosa si intenda per “completamento”.

Cosa /obiettivo cambia effettivamente

Un normale prompt Hermes genera un turno dell'agente. Il modello può richiamare diversi strumenti durante quel turno, ma una volta fornita la risposta finale, si interrompe e attende l'utente.

Un obiettivo rimane attivo dopo tale risposta.

Quando accedi:

/obiettivo: correggere tutti i test che falliscono nella directory `tests/hermes_cli/` e assicurarsi che lo script `scripts/run_tests.sh` superi i test per quella directory

Hermes inizia immediatamente a lavorare. Al termine del primo turno, il giudice valuta se l’obiettivo dichiarato è stato raggiunto. Se i test continuano a fallire, Hermes avvia automaticamente un altro turno. Questo processo continua finché i test non vengono superati, l’obiettivo non raggiunge il limite di turni o il processo non viene interrotto.

Il budget predefinito è di 20 turni, anche se può essere modificato nelle impostazioni. Tale limite è importante perché, in caso contrario, un agente intrappolato in un ciclo improduttivo potrebbe continuare a consumare token, tempo di utilizzo degli strumenti e crediti per servizi esterni.

Il sistema garantisce quindi la persistenza, non un'autonomia illimitata.

Usalo per lavori in cui il punto di arrivo è ben visibile

Il più forte /obiettivo Le attività presentano tre caratteristiche: richiedono diverse fasi, Hermes ha accesso agli strumenti necessari per portarle a termine e il risultato può essere verificato.

Il lavoro nel settore del software ne è un esempio lampante:

/obiettivo: Effettuare l'aggiornamento del progetto a Python 3.13, aggiornare le dipendenze incompatibili, eseguire la suite di test completa e interrompere l'operazione solo quando tutti i test saranno stati superati.

La condizione di completamento è ben definita. Hermes può verificare il progetto, modificare i file, installare o aggiornare le dipendenze ed eseguire i test. Il superamento della suite di test dimostra che il risultato principale è stato raggiunto.

La stessa logica può essere applicata anche al di fuori della programmazione:

/obiettivo Esaminare tutti i file CSV presenti nella cartella "reports", individuare i valori mancanti e i record duplicati, produrre una versione pulita di ciascun file e creare un rapporto di sintesi che elenchi tutte le modifiche apportate.

Oppure:

/obiettivo: Effettuare una ricerca sui cinque maggiori produttori europei di batterie, verificare i dati più recenti relativi alla loro capacità produttiva attingendo a fonti primarie e redigere una tabella comparativa corredata di riferimenti bibliografici.

Queste attività comportano diverse operazioni, ma definiscono comunque un risultato osservabile.

Un esempio di obiettivo non valido sarebbe:

/obiettivo Migliorare la mia attività.

Hermes non dispone di criteri affidabili per stabilire quando l’attività sia stata migliorata. Potrebbe elaborare delle idee, continuare a svilupparle e alla fine interrompere il processo perché il giudice ritiene che una risposta generica sia sufficiente.

Il problema non è l'intelligenza del modello, bensì l'assenza di uno standard di completamento.

Stilare un contratto di completamento

Hermes supporta contratti di completamento strutturati per obiettivi che richiedono maggiore precisione. La documentazione ufficiale raccomanda di definire cinque elementi: il risultato desiderato, il metodo di verifica, i vincoli, i limiti e la condizione in base alla quale l'agente deve interrompersi e richiedere input.

Puoi chiedere a Hermes di redigere questa struttura utilizzando:

/goal draft

Un contratto utile potrebbe presentarsi, a livello concettuale, in questo modo:

Risultato:
Il sito web viene compilato correttamente e il modulo di checkout non funzionante ora funziona.

Verifica:
Eseguire la compilazione di produzione, eseguire i test di checkout e verificare che tutti abbiano esito positivo.

Vincoli:
Non modificare il design visivo né rimuovere gli strumenti di analisi esistenti.

Limiti:
Modificare solo i file presenti nelle directory src/checkout, tests/checkout e nella configurazione del pacchetto.

Interrompere l’operazione quando:
È richiesta una credenziale del fornitore di servizi di pagamento, una decisione aziendale o una modifica distruttiva al database.

Questo è decisamente più sicuro che chiedere semplicemente all'agente di “sistemare il checkout”.

Il risultato indica a Hermes ciò che deve essere vero. La verifica gli indica come dimostrare il risultato. I vincoli proteggono le parti del sistema che devono rimanere invariate. I confini limitano l’ambito in cui deve operare. La condizione di arresto impedisce all’agente di improvvisare quando giunge a una decisione che dovrebbe spettare a una persona.

Il giudice può valutare solo i criteri che gli sono stati forniti. Un obiettivo vago porta a una supervisione vaga.

Utilizza i comandi di controllo

Una volta avviato un goal, sono disponibili diversi comandi che consentono di esaminarlo o controllarlo.

/stato del gol

mostra l'obiettivo attivo, il suo stato e il numero di turni utilizzati.

/visualizza obiettivo

visualizza il contratto di completamento corrente.

/pausa dell'obiettivo

interrompe la continuazione automatica senza eliminare l'obiettivo.

/curriculum vitae per il ruolo di portiere

riavvia il ciclo e azzera il contatore dei turni.

/obiettivo raggiunto

elimina completamente l'obiettivo.

La sospensione è utile quando l'agente si sta muovendo nella direzione sbagliata o quando si desidera esaminare i file prima di apportare ulteriori modifiche. L'annullamento è più indicato quando l'obiettivo stesso non è più valido.

Hermes supporta inoltre /sottoobiettivo, che aggiunge un ulteriore criterio a un obiettivo già in corso. Il giudice valuterà quindi sia l'obiettivo originario sia il requisito aggiuntivo prima di dichiarare l'opera completata.

Ad esempio:

/sotto-obiettivo Aggiungere le note sulla migrazione al file README e verificare che la configurazione precedente rimanga retrocompatibile.

Ciò consente di aggiungere un requisito senza sostituire l'obiettivo principale del progetto.

Reindirizzare anziché riavviare

I progetti di lunga durata raramente procedono esattamente come previsto. Hermes include un /manovra comando per fornire indicazioni mentre l'agente è al lavoro.

/steer Non sostituire la libreria di autenticazione. Verifica prima la configurazione esistente.

L'istruzione viene eseguita dopo la successiva chiamata allo strumento da parte dell'agente, senza interrompere l'esecuzione corrente né avviare un nuovo turno utente. Ciò la rende utile quando si nota che Hermes sta adottando un approccio indesiderato, ma non si desidera scartare il lavoro già completato.

Un nuovo messaggio inviato da un utente normale può interrompere il ciclo automatico degli obiettivi. Ciò offre all'utente la possibilità di riprendere il controllo, ma significa anche che una conversazione non pertinente può interrompere un progetto in corso. Per lavori di una certa entità, di solito è più opportuno mantenere l'obiettivo in una sessione dedicata.

Distinguere gli obiettivi a lungo termine dal lavoro programmato

/obiettivo è pensata per raggiungere un obiettivo specifico. Non è la funzionalità più adatta a ogni tipo di automazione.

Un obiettivo come “riparare l’applicazione e far sì che tutti i test abbiano esito positivo” ha un punto di completamento. Una richiesta come “controllare il sito web ogni mattina e segnalare eventuali interruzioni del servizio” invece no. Questa rientra tra le attività pianificate.

Hermes include uno scheduler cron per l'automazione ricorrente, oltre a sessioni in background e alla delega a subagenti per le attività che devono essere eseguite separatamente o in parallelo. La sua architettura più ampia supporta l'accesso ai terminali, le piattaforme di messaggistica, gli strumenti esterni e diversi fornitori di modelli.

La distinzione è di natura pratica:

  • Utilizzo /obiettivo per un obiettivo a più fasi che alla fine dovrebbe concludersi.
  • Utilizza l'automazione programmata per le attività ricorrenti.
  • Utilizza una sessione in background quando desideri continuare a utilizzare la conversazione corrente.
  • Utilizzare i subagenti quando è possibile far procedere in parallelo flussi di lavoro distinti.

Cercare di far sì che un unico obiettivo gestisca tutti e quattro gli schemi di solito porta a un flusso di lavoro meno controllabile.

Non confondere la tenacia con il giudizio

Il modello del giudice non esamina la realtà in modo autonomo, come farebbe un responsabile di progetto umano. Valuta il lavoro dell’agente in relazione all’obiettivo e alle prove disponibili.

Se l'agente segnala che un'attività è stata completata con successo ma non ha eseguito un test significativo, il giudice può accettare un risultato incompleto. Ecco perché la verifica dovrebbe specificare, ove possibile, un controllo eseguibile.

Debole:

Verificare che l'applicazione funzioni correttamente.

Più forte:

Esegui pytest, npm run build e i test del checkout di Playwright. L'obiettivo è considerato raggiunto solo se tutti i comandi vengono completati con successo.

Ai fini della ricerca, la verifica potrebbe richiedere uno standard di riferimento:

Utilizza i documenti depositati dalle società, le informazioni fornite dalle autorità di vigilanza e le statistiche ufficiali. Non considerare i comunicati stampa o le sintesi di seconda mano come conferma dei dati finanziari.

Per la produzione di contenuti, potrebbe essere necessaria una checklist di verifica finale:

Fornire sei articoli da 800 a 1.000 parole ciascuno, tutti con un approccio originale, fonti verificate, senza sezioni duplicate e sottoposti a una revisione finale per garantire la coerenza editoriale.

Più il risultato è soggettivo, più diventa importante la revisione umana. Un modello può confermare l’esistenza di sei articoli, ma è meno affidabile nel determinare se tutti e sei siano realmente approfonditi o idonei alla pubblicazione.

Limitare l'accesso prima di aumentare l'autonomia

Hermes è in grado di interagire con file locali, terminali, servizi esterni e piattaforme di messaggistica. Il framework è progettato per funzionare su macchine locali, server remoti e diversi ambienti operativi, e può avvalersi di diversi fornitori di modelli e set di strumenti.

Tale flessibilità rende /obiettivo utile, ma aumenta il costo di un'istruzione specificata in modo errato.

Un agente con accesso in scrittura a un repository può modificare numerosi file nel tentativo di raggiungere un obiettivo generale. Chi dispone di accesso alla shell può installare pacchetti o eseguire script. Chi è connesso ai sistemi aziendali potrebbe agire su dati reali anziché su un ambiente di test.

Prima di fissare un obiettivo a lungo termine:

  • concedere solo le autorizzazioni necessarie per l'attività;
  • utilizzare, ove possibile, un ramo, un albero di lavoro, un container o un ambiente di test;
  • creare uno snapshot o un checkpoint prima di apportare modifiche significative;
  • escludere le credenziali e i dati di produzione, a meno che non siano effettivamente necessari;
  • definire le azioni che richiedono l'approvazione umana;
  • e verificare le differenze, i log e i risultati dei test prima della distribuzione.

Hermes mette a disposizione comandi per il checkpoint e lo snapshot del filesystem, ma gli strumenti di ripristino non possono sostituire la necessità di limitare l'accesso fin dall'inizio.

Il --yolo L'opzione, che consente di bypassare l'approvazione dei comandi pericolosi, non dovrebbe essere considerata una semplice comodità di routine. Essa amplia la gamma di azioni che l'agente può compiere senza intervento umano e, di conseguenza, aumenta le conseguenze di un'ipotesi errata.

Un flusso di lavoro pratico

Un affidabile /obiettivo Il progetto può essere suddiviso in cinque fasi.

Innanzitutto, definisci un unico risultato. Evita di combinare obiettivi non correlati tra loro, come la correzione di un software, la redazione della documentazione e la definizione di una nuova strategia di prodotto, a meno che non facciano effettivamente parte dello stesso risultato finale.

In secondo luogo, specificare le prove. Indicare i test, i file, i rapporti o le verifiche che attestano il completamento.

In terzo luogo, definire i limiti. Specificare quali directory, sistemi, account o fonti di dati Hermes può utilizzare.

In quarto luogo, individuare i punti di escalation. Indicare all’agente di interrompere l’operazione qualora riscontri credenziali mancanti, requisiti aziendali ambigui, operazioni distruttive o decisioni con conseguenze legali, finanziarie o di sicurezza.

Infine, esamina le prove concrete anziché limitarti ad accettare il messaggio di completamento. Apri il report, controlla le modifiche al codice, ripeti il test e verifica che il risultato soddisfi il vero scopo del progetto.

Un comando ben formato potrebbe essere:

/obiettivo Aggiornare le dipendenze del portale clienti e risolvere tutti gli errori di compatibilità che ne derivano.

Risultato:
Il portale viene compilato e le sue funzioni esistenti rimangono operative.

Verifica:
Eseguire i test unitari, la compilazione di produzione e gli smoke test con Playwright. Tutti devono superare i test.

Vincoli:
Non modificare l’interfaccia utente, lo schema del database o il provider di autenticazione.

Limiti:
Operare esclusivamente nel repository del portale clienti.

Interrompere quando:
È richiesta una credenziale di produzione, una migrazione dello schema o una modifica al comportamento rivolto ai clienti.

Ciò non garantisce un'esecuzione impeccabile. Fornisce però a Hermes un obiettivo sufficientemente preciso verso cui tendere, senza che l'utente debba fornirgli indicazioni dopo ogni fase intermedia.

Il valore di /obiettivo non sta nel fatto che gestisca un progetto per conto di un'organizzazione. Elimina una forma specifica di supervisione: chiedere ripetutamente a un agente di continuare.

Se utilizzato con verifiche chiare, autorizzazioni limitate e condizioni di interruzione ben definite, può trasformare Hermes da un assistente in grado di fornire una sola risposta a un collaboratore di progetto costante. Se invece utilizzato con un obiettivo ambiguo e un accesso ampio al sistema, può semplicemente continuare a ripetere gli stessi errori più a lungo.

  Come utilizzare il comando Hermes /Goal per ottimizzare i tuoi progetti