Créer votre propre boucle d’agent
Utilisez le harness intégré d’Outpost avec un fournisseur de modèle, des outils et des limites explicites.
Choisir la boucle intégrée
Section intitulée « Choisir la boucle intégrée »Choisissez le harness intégré si vous voulez contrôler vous-même l’API du modèle, les outils et les règles d’exécution de l’agent. La boucle s’exécute dans votre processus Node.js, tandis que ses outils agissent dans la sandbox de la tâche.
| Agent CLI | Harness intégré | |
|---|---|---|
| Où tourne la boucle | Dans la sandbox, comme processus de la CLI | Dans votre processus Node.js |
| Outils | Ceux de la CLI | Uniquement ceux passés à tools |
| Accès au modèle | Connexion de compte ou clé d’API | Une clé d’API sur un fournisseur de modèle |
| Image de la sandbox | Contient la CLI, ou l’installe au démarrage | Aucune CLI d’agent à installer |
| Contrôle | Réglages de la CLI | Permissions, hooks et limites par appel, et sous-agents |
| Remontée de la consommation | Dépend de la CLI | Après chaque réponse du modèle |
Choisir un agent compare toutes les capacités.
Lancer une tâche
Section intitulée « Lancer une tâche »createHarness() configure la boucle ; createAgent() l’associe à un modèle. L’agent passe ensuite à dispatch() comme n’importe quel autre.
Définissez ANTHROPIC_API_KEY, puis lancez node harness-review.ts. result.text contient la réponse finale du modèle. Ces outils ne font que lire des fichiers : l’agent ne peut pas modifier le dépôt.
Étapes de la boucle
Section intitulée « Étapes de la boucle »Outpost vérifie les limites avant chaque étape et après chaque réponse du modèle. La première atteinte termine le tour par une OutpostError.
Limiter un échange avec le modèle
Section intitulée « Limiter un échange avec le modèle »limits borne la boucle ; toolExecution règle l’exécution des appels d’outils.
Référence API : HarnessLimits et HarnessToolExecution.
Avec onError par défaut, un appel en échec ou expiré revient au modèle comme résultat d’erreur, et la boucle continue. usage compte les sous-agents et les résumés de contexte, et exige un fournisseur de modèle qui remonte une consommation complète.
Délais du dispatch
Section intitulée « Délais du dispatch »deadlineMs et idleMs de dispatch() bornent aussi chaque tour du harness : sa durée totale et le silence entre deux événements de la boucle. Un appel d’outil en cours suspend le délai d’inactivité ; toolExecution.deadlineMs le borne à la place. Voir Limites et annulation.
Observer la boucle
Section intitulée « Observer la boucle »Référence API : AgentObservation.
Suivez les appels d’outils et les requêtes au modèle pendant l’exécution du harness. Cet exemple active l’observation détaillée pour que la fonction de rappel puisse examiner la requête complète au modèle.
tool-output diffuse la sortie des commandes, rattachée à son appel par callId. Les contenus complets de model-request et model-response n’existent qu’avec un hub d’observation détaillé. Ils contiennent toute la conversation, et le journal normal les écarte.
Aller plus loin
Section intitulée « Aller plus loin »- Fournisseurs de modèlesBrancher une API compatible OpenAI ou Anthropic.
- OutilsDonner au modèle fichiers, recherche, édition, Git, un shell ou vos propres outils.
- Permissions et hooksAutoriser, refuser ou réécrire les appels d’outils avant leur exécution.
- Sous-agentsDéléguer une partie d’un tour à un agent enfant dans la même sandbox.
- Contexte et compétencesContenir l’historique et charger des instructions à la demande.
- Serveurs MCPAjouter les outils de serveurs Model Context Protocol.
- L’accès au modèle exige une clé d’API, ou un serveur local sans clé. Les connexions de compte des CLI ne s’appliquent pas.
- Le code des outils s’exécute dans votre processus, avec vos droits. Seul ce qu’il fait via
context.sandboxs’exécute dans la sandbox. - Les requêtes au modèle partent de votre processus : les restrictions réseau de la sandbox ne s’y appliquent pas.
API : createHarness · HarnessOptions · HarnessLimits · HarnessToolExecution · createAgent · createObservationHub.
Router chaque étape de modèle
Section intitulée « Router chaque étape de modèle »Ajoutez une déclaration routing facultative pour choisir parmi les modèles du provider de ce harness après compaction et avant les hooks du modèle. Outils et hooks voient le modèle sélectionné tandis que la sandbox et l’historique restent disponibles. Consultez le routage de modèles pour la validation des candidats, l’état, le repli et l’usage.