Sur cette page : liste blanche à privilèges minimaux · routage de conversation · gabarit de retry · dé-sensibilisation des journaux · exemples de résumés PR/CI · table budget · FAQ
Objectif : Mac Apple Silicon loué avec passerelle sous launchd. Ici AutoGen (GroupChat, fonctions), pas CrewAI ni Semantic Kernel : retries et plafonds vivent dans vos wrappers d’outils, tandis que la passerelle porte auth, schéma et fusibles. Vous obtienez une procédure reproductible : mêmes ports loopback, même manifeste, mêmes résumés d’échec entre portable et nœud distant. Voir aussi retries schéma, LiteLLM, OTel GenAI, coûts multi-modèles.
1. Outils hors liste blanche vers routes sensibles.
2. Fan-out GroupChat sans plafond d’outils partagé.
3. Journaux ou CI encore chargés de prompts ou de clés.
| Sujet | AutoGen | OpenClaw |
|---|---|---|
| HTTP | Noms issus du manifeste Git uniquement. | Politique route/verbe ; schéma à la frontière. |
| Identité / résilience | En-têtes corrélation ; backoff 429 ; stop 401/403/413. | Jeton passerelle ; fusibles ; 503 + retry_after_ms. |
Liste blanche à privilèges minimaux
Fichier versionné du type config/tools_allowlist.json : name, verbe, route, fragment JSON Schema des arguments. L’assistant rejette tout nom absent au chargement. Jeton dashboard hors git, ex. ~/.openclaw/dashboard.token en chmod 0400, exporté seulement dans l’environnement worker—jamais dans le prompt système ni dans les tours utilisateur.
Miroir côté passerelle pour bloquer les routes inventées. Sur échec local, renvoyez validation_error structuré avant l’amont afin d’économiser TPM ; même discipline que PydanticAI ou Instructor. Toute nouvelle capacité passe par un ticket qui documente périmètre disque et effets réseau.
Routage de conversation
base_url du client vers http://127.0.0.1:PORT/v1 (routage OpenAI-compatible) afin d’unifier complétions et embeddings sous le même bearer. GroupChat : X-Conversation-Id stable par exécution, X-Correlation-Id par outil pour recoller les journaux multi-agents après coup.
HTTP outil ≠ chat : POST uniquement sur routes /tools/… publiées par OpenClaw, jamais sur une URL dictée par le modèle. max_round doit rester sous le RPM du tenant documenté dans vos grilles de coût. L’analogie LangGraph aide sur les nœuds outil ; le câblage AutoGen reste propre aux tours GroupChat.
Gabarit de retry
Client async partagé par tous les agents : retry 429 et erreurs de transport avec backoff exponentiel et jitter complet, plafond trois tentatives. Aucun auto-retry sur 401/403/413, sinon la récursion multi-agents amplifie une mauvaise politique ou un corps trop lourd. Sur disjoncteur 503 avec retry_after_ms, respecter le délai, une relance guidée, puis enveloppe textuelle au tour suivant pour informer le sélecteur.
# MAX=3 ; honorer Retry-After ; pas de boucle sur 401/403/413
# 503 + retry_after_ms → sleep puis une seule relance contrôléeDé-sensibilisation des journaux
JSONL append-only : ts, conversation_id, tool, route, latency_ms, outcome. Retirer préfixes Bearer, corps pouvant contenir des prompts, chemins complets du home ; remplacer clés par empreintes stables ; tronquer les sorties modèle ; filtrer PEM et préfixes sk-. Les dumps bruts restent dans un volume chiffré à accès incident, pas dans les agrégats self-service.
Nommez les champs comme dans la matrice OTel GenAI pour aligner traces AutoGen et spans passerelle lorsque vous exportez vers un backend d’observabilité.
Exemples de résumés PR/CI
Résumés markdown type GITHUB_STEP_SUMMARY (moins de trois cents jetons) pour le user-proxy : statut, route, corrélation, hypothèse courte, prochaine commande. L’objectif est qu’un humain ou un pipeline CI rejoue une action sans rouvrir les logs complets ni recopier des secrets.
## OpenClaw — job (ex.)
État: disjoncteur | Route: POST /tools/docs-index
Corr: c9f2… | Suite: doctor --json ; concurrence=4Bots PR : commentaire JSON avec route, code, hint, retry_after_ms—pas d’HTML d’erreur fournisseur. Ingérez le fichier dans un tour AutoGen dédié pour que le modèle raisonne sur des champs stables plutôt que sur une page d’erreur bruitée.
Budget de concurrence et fusibles (repère rapide)
| Paramètre | Départ | Note |
|---|---|---|
| Outils en vol | 4–8 | Sémaphore asyncio commun à tout le processus. |
| max_round | 12–20 | Rester sous RPM LiteLLM avec marge. |
| Fusible / refroid. | ≈50 % erreurs / 30 s ; 45–90 s | 503 + retry_after_ms lu par le modèle. |
Sept étapes : (1) épingler Python et Node, jeton 0400 hors dépôt ; (2) publier liste blanche et schéma identiques agent et passerelle ; (3) base_url loopback ; (4) wrappers validés plus sémaphore processus ; (5) fusibles par route et fenêtres d’erreur ; (6) enveloppes d’échec homogènes ; (7) fumée GroupChat minimale, openclaw doctor --json archivé avec pip freeze pour comparer les régressions.
FAQ
Jeton par agent ? Plutôt un jeton par machine et par environnement (staging contre production) : moins de rotation, même surface d’audit.
Outil bruyant ? Combiner sémaphore global, fusible par route et résumé CI clair afin que le sélecteur GroupChat retire l’outil du round courant sans bloquer tout le graphe.
Schéma d’abord où ? Valider dans le wrapper Python pour économiser quotas, puis refléter sur la passerelle quand l’option existe ; détails dans le guide retries JSON Schema.
Pages publiques sans connexion : tarifs, achat, aide, index du blog.
Synthèse : AutoGen multi-agents sur Mac distant reste governable lorsque la passerelle porte liste blanche, schéma, jeton, budget de concurrence et résumés d’échec—sans confondre avec les patterns CrewAI ni Semantic Kernel.