Hermes Agent, l’agente open-source di Nous Research, ha ricevuto una funzionalità fondamentale: il comando /learn. Questo comando permette all’agente di analizzare e trasformare in modo automatico una vasta gamma di fonti—come documenti locali, URL, note o passi precedentemente completati—nelle competenze riusabili necessarie per svolgere compiti futuri.
Il Sistema di Competenze di Hermes
I Hermes Agent gestisce le competenze come documenti su richiesta che vengono caricati quando necessario. Ogni competenza è una cartella che include un file SKILL.md con le istruzioni corrispondenti.
Questo sistema segue un modello di disclosure progressiva, che mantiene un basso utilizzo di token—una pratica cruciale per ottimizzare l’efficienza computazionale.
Tutte le competenze sono archiviate nella directory ~/.hermes/skills/, definita unico punto di verità. Su un’installazione nuova, le competenze vengono copiate direttamente dal repository. Allo stesso modo, le competenze generate automaticamente e quelle installate da un hub finiscono lì.
Quando si esegue un comando come '/plan' o '/axolotl', l’agente carica le istruzioni della competenza corrispondente direttamente nel turno corrente.
Una competenza può essere vista come un documento informativo che l’agente consulta esclusivamente in contesti opportuni. In contrapposizione, la memoria dell’agente mantiene fatti piccoli ma cruciali sempre attivi nel contesto.
Come Funziona /learn
Il comando /learn elimina la necessità di costruire manualmente SKILL.md. L’utente indica un’origine—una directory locale, una URL, una conversazione passata, o delle note e l’agente elabora una competenza conforme agli standard.
Ad esempio, un utente potrebbe usare un comando come:
- # /learn the REST client in ~/projects/acme-sdk, focus on auth + pagination
- # /learn https://docs.example.com/api/quickstart
- # /learn how I just deployed the staging server
- # /learn filing an expense: open the portal, New > Expense, attach receipt, submit
Dopo il comando, l’agente genera una competenza che segue gli standard di scrittura Hermes. Include una descrizione limitata a 60 caratteri, l'ordine standard delle sezioni e l'inquadramento del tool Hermes.
Agente e Interfaccia
Ciò funziona in modo coerente su CLI, interfaccia messaggistica, TUI, dashboard e qualsiasi backend, locale, Docker o remoto. L'interfaccia grafica fornisce un pulsante specifico "Learn a skill" con caselle per URL, directory e input testuale.
L’agente salva il risultato utilizzando lo strumento skill_manage. Se il gate di scrittura è attivo, l’approvazione viene comunque richiesta.
Perché Le Competenze Sono Economiche
Le competenze vengono caricate in tre livelli distinti:
- Livello 0: skills_list() — Nome, descrizione, categoria (costo ~3k tokens)
- Livello 1: skill_view(nome) — Contenuto completo e metadata (costo variabile)
- Livello 2: skill_view(nome, path) — File di riferimento specifici (costo variabile)
L’agente vede sempre un indice compatto. Carica il contenuto completo delle competenze solamente quando i compiti lo richiedono. Questo mantiene una grande libreria di competenze senza saturare la finestra di contesto dell’utente.
Quattro Modi per Creare una Competenza
/learn è solo uno dei metodi disponibili:
- Scrittura manuale: ideale per chi ha pieno controllo sulla formula
- /learn: veloce per trasformare materiale esistente in competenza
- skill_manage (automatico): consente all’agente di memorizzare le procedure utili
- Installazione da Skills Hub: riusa abilità di terze parti
Le competenze generate autonomamente dall’agente rappresentano la sua memoria procedurale. L’agente potrebbe creare una competenza dopo aver completato un compito complicato o risolto un problema.
Se write_approval è impostato su "true", ogni scrittura richiede un controllo preventivo salvata in ~/.hermes/pending/skills/.
Casi d’Uso con Esempi
- Gestione API interna: eseguire /learn su URL delle proprie documentazioni e creare una competenza per le chiamate, l’autenticazione e paginazione.
- Runbook Deploy: camminare con l’agente attraverso un deploy, quindi richiedere /learn su come è stato completato.
- Agruppo di Task Recorrente: utilizzare un file di competenze che carichi diverse competenze in una volta sola.
Esempio di Comando:
Esempio di comando YAML:
name: backend-dev
description: Backend feature work — review, test, PR workflow.
skills:
- github-code-review
- test-driven-development
- github-pr-workflow
instruction: |
Always start by writing failing tests, then implement.
Formato del File SKILL.md
Un’abilità è prevalentemente un file markdown con frontmatter YAML. Il corpo del documento segue un ordine fisso:
- Nome
- Descrizione
- Versione
- Metadata con tag e categoria
Le sezioni include: Quando usarlo, Procedure, Potenziali Errori, e Verifica.
Premessa e Applicazione Reale
Key takeaways di /learn: nessuna scrittura manuale, nessun motore di ingestione separato, struttura compatibile con l’interfaccia e il formato standardizzato Hermes.
La scoperta progressiva riduce la pesantezza token. Il sistema di gestione skill_manage include l’approvazione scrittura predefinita o richiede l'autorizzazione.
Risorse
- Sistema di Competenze: Hermes Agent documentation
- Creare le competenze: Hermes Agent documentation
- Documentazione principale: Hermes Agent documentation
- Progetto GitHub: NousResearch/hermes-agent
- Nous Research: twitter.com/@NousResearch