
Come automatizzare la creazione di contenuti TikTok Slides con Hermes Agent (Guida passo dopo passo)
AI features
- Views
- 257K
- Likes
- 762
- Reposts
- 56
- Comments
- 30
- Bookmarks
- 2.4K
TL;DR
Questa guida spiega come utilizzare Hermes Agent per automatizzare le Slides di TikTok, dalla ricerca degli hook alla selezione delle immagini, utilizzando la modalità bozza per superare i controlli anti-bot.
Reading the ITALIANO translation
Attualmente, TikTok sta potenziando notevolmente visualizzazioni e coinvolgimento per i slideshow, puoi dare un'occhiata a questi canali.




Perché questa combinazione
I slideshow sono il formato con la massima leva su TikTok al momento:
- L'algoritmo li spinge ancora in modo aggressivo (contenuti economici, problema di offerta infinita dal lato di TT)
- Nessuna ripresa, nessun montaggio, nessun volto richiesto
- Guidato da hook → puoi testare A/B 50 hook al giorno
- I caricamenti in bozza bypassano la maggior parte del rilevamento bot che colpisce l'API di pubblicazione diretta
Il collo di bottiglia non sono mai state le idee. Era la catena di montaggio. Hook → nicchia → direzione dell'immagine → 8 composizioni di slide → didascalia → pianificazione. Fare questo manualmente = 20 minuti per post. Per 30 account = un lavoro a tempo pieno che odi.
Hermes Agent è lo strumento giusto perché non è un framework che installi con npm e colleghi, è un agente CLI autonomo che vive dove lo metti (il mio server Hetzner da $5), con skill integrate, cron, MCP e delega a subagenti. L'intera pipeline è solo skill che l'agente carica + cron job che le attivano secondo programma. Nessuna infrastruttura di code, nessun pool di worker da gestire.
Passo 1: Installa Hermes Agent
Installazione con un comando sul VPS:
1curl -fsSL https://hermes-agent.nousresearch.com/install.sh | sh
Scegli un provider:
1hermes provider set anthropic2# oppure3hermes provider set openrouter
Io uso Anthropic via OAuth (piano Max) per le fasi più agentiche (ricerca hook, direzione immagine, didascalia) e un fallback economico di OpenRouter per i poll ad alto volume. Puoi anche collegare Nous Portal, OpenAI Codex, DeepSeek, Z.AI, Kimi: il modello Hermes ti guida attraverso tutto.
Verifica che funzioni:
1hermes --version
Se risponde, hai superato la parte più difficile. La guida rapida completa è su https://hermes-agent.nousresearch.com/docs/getting-started/quickstart.
Poi installa il gateway come servizio systemd in modo che i cron job vengano eseguiti anche quando non sei connesso:
1hermes gateway install2sudo systemctl enable hermes-gateway3sudo systemctl start hermes-gateway
Questo è il demone che fa scattare lo scheduler ogni 60 secondi ed esegue i job in sessioni agente fresche.
Passo 2: Modello mentale: pipeline = skill + cron, non worker
La maggior parte dei tutorial di automazione ricorre a code e worker. Hermes capovolge questo approccio. L'unità di lavoro è una skill (file markdown in ~/.hermes/skills/) e il trigger è un cron job che carica una o più skill e le esegue.
Ecco la mappatura per la pipeline TikTok:

Ogni skill è un file markdown che l'agente carica su richiesta. I cron job le concatenano tramite context_from. Lo scheduler di Hermes esegue ogni job in una sessione isolata fresca, quindi nessuna corruzione dello stato tra account.
Passo 3: Crea le skill
Le skill risiedono in ~/.hermes/skills/<categoria>/<nome-skill>/SKILL.md. L'agente può crearle da solo tramite skill_manage, oppure puoi scriverle a mano. Io faccio un misto: abbozzo la struttura, poi lascio che Hermes la perfezioni dopo averla vista funzionare.
Skill Hook Researcher
1~/.hermes/skills/tiktok/hook-researcher/SKILL.md:23# Ricercatore di Hook45Sei un ricercatore di hook per slideshow TikTok nella nicchia {argument name="nicchia" default="fitness"}.67## Istruzioni81. Analizza i primi 20 slideshow virali in questa nicchia degli ultimi 7 giorni.92. Identifica i pattern di hook utilizzati (es., gap di curiosità, problema-soluzione, listicle, ecc.).103. Genera 10 nuove idee di hook che probabilmente funzioneranno bene.114. Per ogni hook, fornisci:12 - Il testo dell'hook (max 150 caratteri)13 - L'archetipo dell'hook14 - Perché funzionerebbe per questa nicchia1516## Formato di output17Restituisci un array JSON di oggetti hook.
Skill Image Source Router
Questa decide tra Pinterest e AI gen per ogni slot.
1~/.hermes/skills/tiktok/source-router/SKILL.md:23# Router delle Fonti Immagine45Ricevi un hook e una nicchia. Devi decidere se ogni slide deve usare un'immagine presa da Pinterest o generata dall'AI.67## Regole8- Nicchie "autentiche" (fitness, viaggi, cibo, moda) → Pinterest9- Nicchie "astratte" (concetti, motivazione, citazioni) → AI gen10- Se Pinterest, specifica la query di ricerca11- Se AI gen, specifica il prompt di generazione1213## Output14Restituisci un array JSON di {slot_index, source, query_or_prompt}.
Skill Pinterest Scraper
Questa ha bisogno di uno script helper perché l'agente non dovrebbe fare logica di rotazione HTTP in-context.
1~/.hermes/skills/tiktok/pinterest-scraper/SKILL.md:23# Pinterest Scraper45Usa lo script Python in `scripts/scrape.py` per scaricare immagini da Pinterest.67## Parametri8- query: la query di ricerca da Pinterest9- count: numero di immagini da scaricare (default: 8)1011## Output12Salva le immagini in `output/{job_id}/images/` e restituisci un array di percorsi file.
~/.hermes/skills/tiktok/pinterest-scraper/scripts/scrape.py è un normale script Python. L'agente lo invoca tramite execute_code o terminal e analizza stdout. Il PROXY_POOL_URL dichiarato sopra viene passato automaticamente nei sandbox di execute_code — questa è una funzionalità di Hermes che mi ha risparmiato un sacco di configurazioni di env.
Slide Compositor (modalità senza agente)
Questa fase è completamente deterministica. Nessun LLM necessario. Hermes ha la modalità no_agent proprio per questo:
1~/.hermes/scripts/compose-slides.py:
Poi pianificalo come cron job no_agent: wakeAgent non si attiva mai, nessun costo LLM in questo passaggio.
Skill Publisher
1~/.hermes/skills/tiktok/publisher/SKILL.md:23# Publisher45Carica lo slideshow completato su TikTok tramite Postiz.67## Parametri8- account_id: l'ID dell'account TikTok su Postiz9- media_dir: directory contenente le slide ordinate10- caption: la didascalia generata11- draft: booleano, se vero carica come bozza1213## Flusso141. Compila le slide in un video (se necessario)152. Chiama Postiz per creare un post pianificato163. Se draft=True, imposta content_posting_method="UPLOAD"174. Restituisci l'ID del post
Passo 4: L'uccisore di shadow ban: sempre modalità bozza
Questa è la parte che la maggior parte dei tutorial salta, ed è il motivo principale per cui i nuovi account muoiono.
Se un account ha meno di 30 giorni, carica SEMPRE come bozza. Nessuna eccezione.
I nuovi account su TikTok sono in prova. L'algoritmo profila:
- Pubblicare tramite l'API Content Posting → rischio bot +1
- IP di pubblicazione non corrispondente all'IP abituale del dispositivo → +1
- Intervalli sospettosamente regolari → +1
- Metadati incompleti o incoerenti rispetto alla cattura su dispositivo → +1
Accumula 2-3 di questi su un account nuovo e vieni shadow bannato silenziosamente. Nessuna notifica. Video bloccati a 50-200 visualizzazioni per sempre. Penserai che i tuoi contenuti facciano schifo. Non è vero: l'account è morto.
La skill Publisher qui sopra imposta la modalità bozza per qualsiasi account con meno di 30 giorni / meno di 20 post. Postiz lo carica come bozza, poi la mia farm di iPhone prende la bozza (tramite automazione WebDriverAgent) e preme Pubblica da un dispositivo reale con un IP reale. TikTok vede una pubblicazione iniziata da un umano da un dispositivo noto — pulito.
Protocollo di riscaldamento:
- Giorni 1-7: l'account non fa altro che scorrere, mettere like, seguire
- Giorni 8-14: pubblica 1 bozza/giorno, pubblicata dal dispositivo 2-4 ore dopo la creazione della bozza
- Giorni 15-30: aumenta a 2-3 bozze/giorno, randomizza gli orari di pubblicazione entro ±90 min
- Giorno 30+: ritmo completo della pipeline, sempre modalità bozza
Hermes cron + Postiz Cloud + pubblicazione da dispositivo della farm di iPhone = indistinguibile dal comportamento organico per i classificatori di TikTok.
Passo 5: Collega tutto insieme con cron + context_from
Questa è la magia del sistema cron di Hermes. Ogni fase della pipeline è un cron job separato. Il job N legge l'output più recente del job N-1 tramite context_from. La catena viene eseguita end-to-end senza che io orchestri nulla.
Creo la catena da una singola sessione di chat con Hermes:
1hermes --tui23> Devo impostare la pipeline TikTok per l'account acc_42, nicchia=fitness.45> Pianifica la pipeline per essere eseguita ogni giorno alle 09:00 UTC.67> Catena: ricerca hook → routing fonti → scrape Pinterest → composizione → didascalia → pubblicazione.89> Ogni fase deve usare la skill corrispondente e ricevere contesto dalla fase precedente.
Hermes usa internamente lo strumento cronjob e crea la catena. Ecco come appaiono le chiamate dirette equivalenti (Hermes lo fa per te):
1hermes cron create \2 --name "hook-research-acc42" \3 --schedule "0 9 * * *" \4 --skill "tiktok/hook-researcher" \5 --workdir "/home/user/accounts/acc42" \6 --context_from "" \7 --deliver "none"89hermes cron create \10 --name "source-route-acc42" \11 --schedule "0 9 * * *" \12 --skill "tiktok/source-router" \13 --workdir "/home/user/accounts/acc42" \14 --context_from "hook-research-acc42" \15 --deliver "none"1617hermes cron create \18 --name "pinterest-scrape-acc42" \19 --schedule "5 9 * * *" \20 --skill "tiktok/pinterest-scraper" \21 --workdir "/home/user/accounts/acc42" \22 --context_from "source-route-acc42" \23 --deliver "none"2425hermes cron create \26 --name "compose-acc42" \27 --schedule "10 9 * * *" \28 --skill "" \29 --script "/home/user/scripts/compose-slides.py" \30 --no_agent True \31 --workdir "/home/user/accounts/acc42" \32 --context_from "pinterest-scrape-acc42" \33 --deliver "none"3435hermes cron create \36 --name "caption-acc42" \37 --schedule "15 9 * * *" \38 --skill "tiktok/caption-writer" \39 --workdir "/home/user/accounts/acc42" \40 --context_from "compose-acc42" \41 --deliver "none"4243hermes cron create \44 --name "publish-acc42" \45 --schedule "20 9 * * *" \46 --skill "tiktok/publisher" \47 --workdir "/home/user/accounts/acc42" \48 --context_from "caption-acc42" \49 --deliver "telegram"
Alcune cose chiave:
context_from concatena gli output. Hermes legge l'output salvato più recente di ogni job upstream da ~/.hermes/cron/output/{job_id}/ e lo prepone al prompt del job successivo come contesto. Niente database, niente code, niente codice colla.
workdir esegue il job all'interno della directory del progetto. Questo significa che AGENTS.md, .cursorrules e qualsiasi file di contesto locale vengono caricati automaticamente. Utile quando tieni le configurazioni degli account e gli override dei prompt in un repository di progetto.
no_agent=True sul compositore. Lavoro puramente deterministico con Sharp/PIL. Nessun motivo per pagare un turno LLM. Lo stdout dello script diventa l'output del job e si concatena normalmente alla fase successiva.
deliver="telegram" mi avvisa quando la pubblicazione è completata. Uso "all" per la fase finale sull'account di alto valore, così ricevo il ping di successo su ogni canale connesso.
Passo 6: Controllo dei toolset per fase (risparmio sui costi)
Di default, i cron job ereditano i toolset che hai configurato per la piattaforma cron tramite hermes tools. Ma per il controllo dei costi sulle fasi ad alta frequenza, blocca i toolset per job:
1hermes cron update hook-research-acc42 --toolsets '["file"]'2hermes cron update pinterest-scrape-acc42 --toolsets '["terminal", "file"]'3hermes cron update compose-acc42 --toolsets '[]' # no_agent, nessun toolset4hermes cron update publish-acc42 --toolsets '["terminal", "file"]'
La ricerca hook non ha bisogno di toolset browser, terminale o delega — quelli gonfiano il prompt dello schema degli strumenti a ogni chiamata LLM. Bloccare il job hook a ["file"] ha ridotto i miei token di generazione hook di circa il 40%. Su 30 account × 1 post/giorno × 30 giorni = soldi veri.
Il job di scrape Pinterest ha bisogno di ["terminal", "file"] per chiamare lo script. Il compositore in modalità no_agent non carica alcun toolset (nessun agente viene eseguito). Il publisher ha bisogno di ["terminal", "file"] per postiz-cli.
Passo 7: Salta l'agente quando non è cambiato nulla
Hermes ha un pattern di script di pre-controllo che è perfetto per il job hook giornaliero. Se i dati di performance della nicchia non sono cambiati da ieri, non c'è motivo di generare nuovi hook — i primi 3 di ieri sono ancora i primi 3.
1~/.hermes/scripts/hook-precheck.py:23#!/usr/bin/env python34import json, sys5from pathlib import Path67# Legge i dati di performance più recenti8perf_file = Path("/home/user/data/niche_performance.json")9if not perf_file.exists():10 sys.exit(1) # nessun dato, lascia che l'agente generi1112with open(perf_file) as f:13 data = json.load(f)1415# Controlla se i dati sono cambiati rispetto all'ultima esecuzione16last_run = Path("/tmp/last_hook_run.txt")17if last_run.exists():18 with open(last_run) as f:19 last_data = f.read()20 if json.dumps(data, sort_keys=True) == last_data:21 sys.exit(0) # niente di nuovo, salta l'agente2223# Salva i dati correnti per il prossimo controllo24with open(last_run, "w") as f:25 f.write(json.dumps(data, sort_keys=True))26sys.exit(1) # dati cambiati, lascia che l'agente generi
Collegalo tramite il parametro script quando crei il cron job. L'agente si sveglia solo quando i dati di performance sono effettivamente cambiati. In un giorno tipico in cui non ho registrato manualmente nulla di nuovo, questo salta completamente l'LLM. Gratis.
Passo 8: Configurazione di Postiz Cloud (o puoi auto-ospitarlo) + la skill ufficiale di Hermes
Ho provato ad auto-ospitare Postiz in Docker per 2 mesi. Ho passato più tempo a sistemare il contenitore che a costruire funzionalità — aggiornamenti dei token OAuth che fallivano, disco dei media che si riempiva, worker di pianificazione che moriva silenziosamente. Postiz Cloud a $29/mese mi ha recuperato circa 5 ore/settimana di debug.
La configurazione in 60 secondi:
1# Installa la skill Postiz ufficiale2hermes skill install postiz-agent34# Configura le credenziali5hermes config set postiz.api_key "il_tuo_api_key"6hermes config set postiz.base_url "https://cloud.postiz.com"
La skill Postiz si espone a Hermes attraverso questo SKILL.md (vive in ~/.hermes/skills/postiz-agent/SKILL.md dopo l'installazione):
1~/.hermes/skills/postiz-agent/SKILL.md:23# Postiz Agent45Interfaccia con Postiz per la pianificazione e pubblicazione dei post.67## Strumenti8- `postiz schedule`: Crea un post pianificato9- `postiz upload`: Carica media10- `postiz status`: Controlla lo stato di un post1112## Parametri13- api_key: {argument name="chiave_api" default="la_tua_chiave"}14- base_url: {argument name="url_base" default="https://cloud.postiz.com"}
Hermes legge questo all'avvio della sessione, registra il binario postiz come strumento, e ora qualsiasi cron job che carica questa skill può chiamarlo.
Nozioni di base sull'API che vale la pena conoscere

Il sistema a due livelli di modalità mette in difficoltà le persone. Postiz ha il suo type: "draft" per i post che rimangono nell'interfaccia di Postiz senza andare da nessuna parte. NON è quello che vogliamo. Vogliamo type: "schedule" con content_posting_method: "UPLOAD" — Postiz pianifica il post, lo invia a TikTok all'orario pianificato, ma come bozza lato TikTok che finisce nella casella di posta dell'account per la farm di iPhone che lo pubblica da un dispositivo reale.
Combinazione sbagliata = risultato sbagliato. Testalo su un account prima.
Auto-ospita solo se hai motivi di conformità o se pubblichi a volumi che lo giustificano. Cloud ha un costo reale (limite di 30 richieste/ora per chiave), ma l'auto- hosting ti mangia ore.
Cosa ho imparato a mie spese
Non fidarti dei tuoi primi hook. Ho eseguito la pipeline per 2 weeks sparando l'archetipo di hook #1. Piatto. Sono passato al test A/B di 3 archetipi per nicchia con un ciclo di valutazione giornaliero che leggeva i conteggi delle visualizzazioni di TikTok → ho eliminato gli archetipi morti, ho raddoppiato sui vincitori. Il CTR è aumentato in una settimana.
Pinterest batte l'AI per le nicchie autentiche. Ho passato 3 mesi a ottimizzare i prompt di generazione immagini per slides di trasformazione fitness. Poi ho testato 50/50 contro equivalenti scrapati da Pinterest. Le slide di Pinterest hanno ottenuto 2,3x i salvataggi. Le foto reali colpiscono diversamente. La soluzione: instrada per nicchia.
La modalità bozza è non negoziabile per i nuovi account. Ho perso 4 account prima di accettarlo. Pubblicare direttamente su un account nuovo = shadow ban silenzioso entro la prima settimana. Non lo saprai finché non avrai sprecato 2 mesi di contenuti su un account morto.
Risorse:
- Hermes Agent: https://hermes-agent.nousresearch.com/
- Postiz: https://postiz.com/
Buona fortuna ragazzi 💪


