--:--:--
← tutte le chat Cowork

2026-07-03 ricerca-cron-openclaw-agenti-non-main

cowork0 messaggi

Chat log — Ricerca: cron affidabili per agenti non-main su OpenClaw (claude-cli)

Data: 2026-07-03

Messaggio utente (1)

Richiesta di ricerca tecnica su OpenClaw: trovare un modo affidabile per schedulare via cron lavoro agentico (con tool) per agenti NON-main (archimede, creso) su host con solo backend claude-cli.

Fatti verificati forniti:

  • Backend unico claude-cli (OAuth abbonamento flat, nessuna ANTHROPIC_API_KEY)
  • Sandbox off, 3 agenti: main (Romeo, sessione viva), archimede, creso (on-demand)
  • tools.agentToAgent OFF
  • Problema: ogni cron agentTurn fallisce con "CLI backend claude-cli cannot enforce runtime toolsAllow" perché il gateway inietta d'ufficio una toolsAllow ristretta
  • Già escluso: agentTurn isolato/dedicato, patch toolsAllow:null, workaround systemEvent+main (solo per Romeo), runtime embedded (richiede API key)

6 domande di ricerca: (1) systemEvent+wakeMode:now crea la main se non viva? (2) keep-alive per main non-main? (3) modo per disattivare l'iniezione toolsAllow? (4) runtime embedded con backend locale (Ollama) solo per i cron? (5) pattern orchestrato via Romeo con agentToAgent OFF? (6) costo reale via API key + modello ibrido.

Output richiesto: raccomandazione primaria con comandi esatti, 1-2 alternative con trade-off, strade morte, citazioni docs/sorgenti.

Risposta finale

Ricerca completata verificando i sorgenti OpenClaw (clone di github.com/openclaw/openclaw, commit e272da5c del 2026-07-03) e i docs in-tree. Report completo salvato in 01_STRUMENTI_di_LAVORO/RICERCA_cron-agenti-non-main_claude-cli.md.

Conclusioni chiave:

  1. L'errore toolsAllow scatta solo se il payload HA una toolsAllow (src/agents/cli-runner/prepare.ts:267). Il gateway/CLI non la iniettano: la inietta solo il tool cron usato dall'agente (src/agents/tools/cron-tool.ts:467-511). Nelle versioni correnti il default-stamp viene comunque scartato a runtime per i runner CLI (src/cron/isolated-agent/run-executor.ts:165-181).
  2. RACCOMANDAZIONE PRIMARIA: aggiornare OpenClaw, openclaw cron edit <id> --clear-tools sui job esistenti, creare i nuovi cron agentTurn isolati via CLI senza --tools → girano su claude-cli con permessi pieni, senza main viva. Costo zero.
  3. Alternativa B (funziona anche su versioni vecchie): cron command → curl POST /hooks/agent con agentId: archimede/creso — il payload interno non contiene toolsAllow (src/gateway/server/hooks.ts:115-150).
  4. Q1: systemEvent+main+wake:now NON richiede una sessione viva (le sessioni sono record; il cron accoda l'evento e lancia l'heartbeat per l'agentId del job), MA richiede heartbeat abilitato per quell'agente (isHeartbeatEnabledForAgent, modalità esplicita se un agente ha già il blocco heartbeat). Piano C.
  5. Keep-alive: concetto inesistente; heartbeat per-agente con HEARTBEAT.md vuoto = costo ~zero (skip in preflight, ma i wake da cron bypassano il gate).
  6. Ollama embedded per i cron: possibile senza API key, ma qualità tool-calling bassa — solo per job semplici. Via API key ibrida: supportata (runtime per-modello), ~1-15 €/mese per 4 run/giorno con light-context.

Messaggio utente (2)

"come posso fare quindi per risolvere questo problema che ho con i cron job sugli agenti secondari?"

Risposta finale (2)

Procedura pratica (via A del report):

  1. Aggiornare OpenClaw e riavviare il gateway (la re-iniezione su patch null indica build vecchia).
  2. Bonificare i job esistenti: openclaw cron list --agent archimedeopenclaw cron edit <jobId> --clear-tools (idem per creso).
  3. Creare i cron via CLI/Control UI (mai tramite Romeo col tool cron) e SENZA --tools: senza toolsAllow nel payload, claude-cli parte con permessi pieni, senza main viva. Esempio: openclaw cron add --agent archimede --name rassegna-mattina --cron "0 7 * * *" --tz Europe/Rome --session isolated --wake now --message "..." --announce --channel discord --to <channelId>. I job isolati supportano --announce (niente workaround message send).
  4. Verifica con job usa-e-getta --at "+2m" e openclaw cron runs --id <jobId>: atteso ok senza errore toolsAllow. Piano B senza update: hooks abilitati + cron command che fa curl POST /hooks/agent con agentId archimede/creso (payload senza toolsAllow).

Messaggio utente (3)

"sarebbe possibile creare i cronjob nel catpit?"

Risposta finale (3)

Sì, tre vie (verificate su sorgenti/docs OpenClaw):

  1. Plugin ufficiale admin-http-rpc (off di default): openclaw plugins enable admin-http-rpc + restart → espone POST /api/v1/admin/rpc con Bearer token gateway; allowlist include cron.status/list/get/runs/add/update/remove/run (docs/plugins/admin-http-rpc.md:178). Da una API route Next.js di CATPIT si chiama {"method":"cron.add","params":{...}} — payload agentTurn SENZA toolsAllow. Con cron.list/cron.runs CATPIT può fare da pannello scheduler completo (stato + storico per gatto). Forma esatta dei params: creare un job via CLI e leggerlo con cron.get.
  2. Shell-out CLI da API route (child_processopenclaw cron add ...).
  3. POST /hooks/agent per bottone "Esegui ora" on-demand (mai toolsAllow in quel percorso). Sicurezza: admin-rpc è piano di controllo completo → solo loopback, token dedicato. Idea di design: i prompt_avvio di task_details.json diventano il campo message dei job (CATPIT frontend, OpenClaw motore).
LIVE
1 AGENTE AL LAVORO ora · Archimede: chat Webchat (sessione principale)26 task in corso su 16818 progetti monitoratiHomelab · Censire HD e creare gallerie dei contenutiHomelab · RAG + NotebookLM locale per documenti voluminosiKB · Costruzione KB (template + 3 argomenti pilota)KB · Obsidian: setup e usoVita · Automazione piano pasti (dispensa→ricette→spesa→piano)Vita · Lista ingredienti collegata a ricette + preferite77 sessioni registrate1 AGENTE AL LAVORO ora · Archimede: chat Webchat (sessione principale)26 task in corso su 16818 progetti monitoratiHomelab · Censire HD e creare gallerie dei contenutiHomelab · RAG + NotebookLM locale per documenti voluminosiKB · Costruzione KB (template + 3 argomenti pilota)KB · Obsidian: setup e usoVita · Automazione piano pasti (dispensa→ricette→spesa→piano)Vita · Lista ingredienti collegata a ricette + preferite77 sessioni registrate