Confronto
Un’alternativa a HumanLayer per le approvazioni degli agenti
4 nov 2026 · 5 min di lettura
In breve
HumanLayer è nato come SDK che permetteva agli agenti di chiedere a una persona prima di agire: require_approval per bloccare una funzione, human_as_tool per fare una domanda. Oggi HumanLayer sviluppa un IDE per agenti di programmazione, e l’SDK per le approvazioni non riceve una release da giugno 2025. Se dipendi ancora da quello, Run it by copre gli stessi due schemi, e la persona che risponde ha bisogno solo di un link.
Verificato sulle pagine di HumanLayer a novembre 2026. Non abbiamo trovato alcun avviso ufficiale di dismissione, quindi chiedi a HumanLayer prima di basare i tuoi piani sulla nostra lettura.
Cosa è cambiato in HumanLayer
- humanlayer.dev ora descrive un IDE multiplayer e un cloud per eseguire Claude Code, Codex e altri agenti di programmazione.
- L’ultima release del pacchetto humanlayer su PyPI è la 0.7.9, di giugno 2025.
- La documentazione sulle approvazioni non è più sul sito, e il repository ora ospita il nuovo prodotto.
È una mossa sensata per HumanLayer, e se supervisioni agenti di programmazione in team, il nuovo prodotto è fatto per questo. Lascia solo senza l’SDK che usavano gli agenti che hanno bisogno del via libera di una persona.
Gli stessi schemi in Run it by
-
Bloccare un’azione (
require_approval): crea una richiesta conmode: "approval", il motivo e le persone che decidono. Agisci solo quando l’esito èapproved. -
Fare una domanda (
human_as_tool): crea una richiesta conmode: "form"e un JSON Schema per la risposta. Torna validata rispetto a quello schema. -
Ricevere la risposta: un webhook firmato,
getStatuscon un’attesa fino a 25 secondi oppure, via MCP su Builder e Pro, una notifica nel momento in cui qualcuno risponde.
Esempio
Un piccolo require_approval in Python sopra l’API REST. Resta in attesa dentro la chiamata; in produzione preferisci il webhook.
import os, requests
API = "https://runitby.app/v1/requests"
AUTH = {"Authorization": f"Bearer {os.environ['RUNITBY_API_KEY']}"}
def require_approval(reason, approvers):
request = requests.post(API, headers=AUTH, json={
"mode": "approval",
"title": reason,
"requester": "The billing agent",
"audience": {"kind": "named", "recipients": approvers},
"approval": {"reason": reason, "policy": "any", "verify": "email"},
"expiresIn": "24h",
"sendEmail": True,
}).json()
while True:
status = requests.get(
f"{API}/{request['requestId']}?wait=25", headers=AUTH
).json()
if status["verdict"]:
return status["verdict"] == "approved"
if require_approval("Refund order #4821, $1,200",
[{"name": "Emily Lee", "email": "emily@acme.com"}]):
issue_refund("4821")
declined e expired restituiscono entrambi False, così il silenzio non diventa mai un rimborso.
Cosa cambia
- Chi approva non ha bisogno di Slack né di un account. Ogni persona nominata riceve il proprio link per email, oppure passi tu il link, anche su Slack.
- Più persone che approvano con una regola (una qualsiasi, tutte, maggioranza o un numero), un codice via email facoltativo per ciascuna e una scadenza che termina come
expired. - Non c’è un decoratore da applicare alle tue funzioni; chiami l’API o gli strumenti MCP. Se contavi su approvazioni che arrivano come messaggi Slack con i pulsanti, Run it by non lo fa.
Per uno sguardo più ampio alle alternative, vedi Run it by e gli strumenti di approvazione.
Provalo con il tuo agente
Gratis fino a 250 richieste al mese, senza carta. Aggiungi il server MCP da Claude Code o Codex con un solo comando, oppure usa l’API REST.