hachiflow.com

Cet article parle de Buzz, notre produit précédent. Aujourd'hui, nous construisons Waggle.

Agents

Votre agent est une clé, pas un ordinateur

GrokBot de xAI donne à chaque agent un ordinateur cloud avec vos identifiants côté serveur. L'expérience est juste. La garde ne l'est pas. Buzz sépare les deux, et la séparation tient que l'agent tourne sur le mac mini de mon bureau ou sur du calcul loué à l'heure.

Un agent est une paire de clés. Tout le reste en découle.

Dans Buzz, un agent n'est pas un compte sur le serveur de quelqu'un d'autre. C'est une paire de clés Nostr. Quand vous créez un agent, l'application de bureau génère une clé privée, et quiconque détient cette clé est l'agent. Nous avons décrit cette propriété pour les humains dans l'identité est une clé ; les agents ont droit au même régime, plus une signature supplémentaire.

Cette signature supplémentaire, c'est l'attestation du propriétaire : vous signez, sur la clé publique de l'agent, une déclaration qui dit « cette clé agit avec mon autorité », et elle voyage dans chaque événement que l'agent publiera. Le relais vérifie trois choses sur chaque message : l'événement est signé par la clé de l'agent, l'attestation est signée par la vôtre, et vous êtes toujours membre de l'espace de travail. Pas de comptes. Pas de sessions. Pas de tokens d'API. Retirez l'humain, et tous les agents dont il se portait garant s'éteignent à la connexion suivante.

Rien ne se publie tout seul

Un processus harness détient la clé de l'agent, se connecte au relais en tant qu'agent et parle l'Agent Client Protocol (du simple JSON-RPC) à Claude Code, Codex, Goose ou tout autre outil qui parle ACP. Le protocole fait entrer les prompts et sortir le travail. Il ne transporte aucune identité.

La réponse du modèle ne revient donc pas par un tuyau qui la tamponnerait au nom de l'agent. Le harness ne publie jamais la sortie du modèle. L'agent publie lui-même son travail, sous forme d'appel d'outil, avec la CLI buzz présente dans son PATH et la clé dans son environnement. Le prompt de plateforme de Buzz le dit sans détour : si vous ne l'avez pas publié, ça n'a pas eu lieu.

vous votre relais processus de l'agent @agent réveil de : l'agent vérifie : signature de l'agent · signature du propriétaire · adhésion signer l'événement clé de l'agent + attestation du propriétaire POST /events
La boucle. ACP transporte les prompts et le travail ; l'identité vit entièrement dans le chemin de signature. L'agent signe lui-même son message, votre attestation l'accompagne, et le relais vérifie le tout avant que quiconque ne voie un mot.
kelsey · session en sandbox
# l'agent publie lui-même son travail, signé en son propre nom $ buzz messages send --channel infra \ --content "canary green. promoting the rest of the fleet." {"event_id": "9f2c41…", "accepted": true}

La réponse n'est acheminée par aucun tuyau. C'est un événement dont l'agent est l'auteur, qui porte les deux signatures et que le relais accepte comme le message de n'importe quel membre.

Premier modèle : la machine

Le déploiement simple, et celui que j'ai fait tourner en premier : tout sur une seule machine qui vous appartient. L'application de bureau supervise un harness par agent, le harness pilote Claude Code ou Codex en local, et les agents héritent de toutes les connexions déjà ouvertes sur la machine. claude auth, vos identifiants GitHub, vos clés SSH, vos dépôts clonés. Intégrer un agent ne coûte rien, parce que vous avez déjà payé ce prix.

Une seule machine à sécuriser. Un seul jeu d'identifiants. Un seul endroit où regarder quand quelque chose cloche. La contrepartie, pour être honnête, c'est que les agents vivent et meurent avec la machine : fermez le laptop, perdez la flotte. Ce qui nous amène à la partie intéressante.

Deuxième modèle : le muscle loué, les clés gardées

L'application de bureau de Buzz a pour cela une jointure volontairement banale. Un fournisseur de backend est n'importe quel exécutable nommé buzz-backend-<id> dans votre PATH ; déployer veut dire que l'application écrit la fiche de l'agent en JSON sur l'entrée standard du binaire et relit du JSON en retour. Les versions les plus récentes en livrent un d'origine : un fournisseur Kubernetes qui fait tourner chaque agent dans un pod, avec une image épinglée par digest parce que, selon ses propres termes, ce pod détient la clé privée de l'agent.

La même jointure accueille des exécuteurs plus riches. Fountain est une plateforme d'agents multi-tenant open source : des sandboxes avec injection chiffrée des secrets, une mise en pause et une reprise au lieu d'une mort par délai d'inactivité, et les mêmes runtimes ACP que Buzz pilote déjà. Un petit adaptateur de fournisseur lui transmet la fiche de l'agent, et le sandbox démarre en détenant exactement trois choses qui comptent : la clé privée de l'agent, votre attestation et l'URL du relais.

Dans ce sandbox, le même harness pilote le même runtime, et la même CLI signe les mêmes événements. Le relais ne voit pas la différence, et ce n'est pas une faille du modèle. C'est le modèle : l'identité, c'est la clé, pas la machine. Votre agent, ce sont en réalité deux clés : une clé d'identité et une clé d'inférence, et les deux voyagent. La même injection qui transporte la clé privée de l'agent peut transporter un token d'abonnement Claude, si bien que l'agent facture votre forfait où qu'il se réveille. Louez le muscle à qui vous voulez. Les clés, le relais et le journal d'audit ne vous quittent jamais.

VOTRE MACHINE desktop + harness claude code · vos identifiants SANDBOX LOUÉ · FOUNTAIN, K8S même harness + runtime injecté : clé · attestation · URL du relais votre relais événements signés même clé · mêmes signatures · le relais ne distingue pas, et ne le devrait pas
La seule chose qui change entre les deux modèles, c'est l'endroit où atterrissent trois variables d'environnement. Identité, adhésion et audit restent inchangés ; le relais ne distingue pas quel côté a signé, et ne le devrait pas.

La mémoire suit la clé

L'objection évidente : si un agent peut démarrer sur n'importe quelle machine, n'importe où, de quoi se souvient-il ? Le prompt injecté est le chargeur d'amorçage, pas le disque. À chaque nouvelle session, le harness assemble le même sandwich : règles de la plateforme, persona, mémoire centrale, contexte récent du canal et message de réveil.

La tranche porteuse, c'est la mémoire centrale, et elle est récupérée depuis le relais à ce moment-là. Dans Buzz, les mémoires d'agent sont des événements chiffrés, et la clé de déchiffrement dérive mathématiquement de la clé privée de l'agent et de la clé publique du propriétaire. Emportez la clé, et la mémoire vient à vous. Le relais stocke un chiffré qu'il ne peut pas lire ; le propriétaire peut toujours tout lire.

Ce qui voyage, c'est donc tout ce qui vit sur le relais : la mémoire centrale et les notes à long terme, l'historique des canaux, les canvases, les dépôts git que vous pouvez cloner de n'importe où. Ce qui reste derrière, c'est la session de modèle en cours et le disque de travail local. Construisez vos agents selon cette discipline, et « démarre sur n'importe quelle machine, n'importe où » cesse d'être une réserve. C'est simplement ce que fait la conception.

CHAQUE NOUVELLE SESSION, N'IMPORTE OÙ règles de la plateforme persona mémoire centrale contexte du canal le message de réveil relais : mémoire chiffrée un chiffré que le relais ne peut pas lire récupérée au démarrage la clé de déchiffrement dérivée de la propre clé de l'agent. elle voyage.
Le chargeur d'amorçage. Rien de durable ne vit sur la machine ; le sandwich est reconstruit depuis le relais là où la clé se réveille.

La ligne de garde

L'avenir des agents toujours actifs arrive de toute façon. La question est de savoir où passe la ligne de garde : qui détient les clés, qui détient l'espace de travail, qui détient la trace de ce qui s'est passé. GrokBot trace cette ligne autour d'un datacenter que vous ne verrez jamais. Cette architecture la trace autour de vous, et laisse le calcul appartenir à n'importe qui.

C'est aussi la forme de ce que nous hébergeons. Une ruche hachiflow, c'est votre relais, vos clés, votre piste d'audit ; l'endroit où tourne le muscle de vos agents est un simple menu déroulant. Possédez le relais. Gardez les clés. Louez le muscle à celui qui est le moins cher ce mois-ci.

← Toutes les notes