Étendre Outpost
Trouvez le contrat à implémenter pour ajouter un agent, une sandbox, un service de modèle, un stockage ou une file.
Choisir le contrat à implémenter
Section intitulée « Choisir le contrat à implémenter »Choisissez le contrat qui correspond à l’intégration souhaitée. Chaque contrat a une responsabilité précise : vous pouvez ajouter un adaptateur d’agent, un fournisseur de sandbox ou un transport de stockage sans remplacer le reste d’Outpost.
- Ajouter un agent CLIConstruire la commande qui lance la CLI et décoder ses lignes de sortie.
- Formats de conversation natifsTrouver, capturer et restaurer les transcriptions qu’écrit une CLI.
- Ajouter un fournisseur de sandboxAllouer un environnement, exécuter des commandes, transférer des fichiers, le libérer.
- Fournisseurs de modèlesEnvoyer les requêtes du harness intégré à une API de modèle.
- Où vivent les donnéesLire, lister et écrire sous condition des octets versionnés pour chaque stockage durable.
- Files de jobsConserver les jobs, protéger les baux des workers et garder leurs résultats.
Remplacer une intégration
Section intitulée « Remplacer une intégration »L’adaptateur d’agent décrit la commande à lancer et interprète sa sortie. Le fournisseur de sandbox exécute cette commande. En séparant ces responsabilités, le même adaptateur peut fonctionner avec différents fournisseurs.
Passer cet agent sur votre propre sandbox ne change que sandboxProvider. Stocker les checkpoints dans votre propre système de stockage ne change que le transporter des stockages.
Ce qu’Outpost continue de faire
Section intitulée « Ce qu’Outpost continue de faire »Outpost continue de gérer le cycle d’exécution autour de votre intégration. Votre adaptateur ou fournisseur implémente son contrat, tandis que l’application prend en charge les opérations suivantes.
- Supervision des processusAttend le code de sortie, borne la sortie et arrête les agents inactifs.
- AnnulationTransmet signaux et échéances aux commandes, aux transferts et aux requêtes de modèle.
- Reprises et réparationsReprises de tâche, réparations des réponses typées, pauses de quota et agents de secours.
- ObservationTransmet les événements décodés aux observateurs et aux journaux, et cumule les tokens consommés.
- Workspace et GitWorktrees, verrous de branche, intégration et synchronisation vers l’hôte.
- Répertoire personnel de l’agentInstalle les plans d’identifiants et de configuration de l’adaptateur dans le répertoire personnel privé de la sandbox.
Valider une intégration
Section intitulée « Valider une intégration »Testez ce qu’un utilisateur observe quand les choses tournent mal : un code de sortie non nul, une sortie fermée avant la fin du processus, une exécution annulée ou expirée, une libération appelée deux fois. Vérifiez qui possède chaque ressource et que les fichiers temporaires disparaissent en cas de succès, d’échec et d’annulation.
Pour un fournisseur de sandbox, diagnose() lance une sonde limitée contre une vraie sandbox : Node.js, Git, flux de sortie séparés, code de sortie non nul, répertoire personnel et, avec transfers, transferts de fichiers binaires.
Isoler les dépendances facultatives
Section intitulée « Isoler les dépendances facultatives »Chargez un SDK tiers uniquement depuis le point d’entrée de votre intégration, et déclarez-le comme dépendance pair optionnelle. Outpost fait de même : @elie-laloum/outpost/providers/vercel, /transports/s3 et /queues/bullmq chargent leur SDK, l’import principal non.
Pour ajouter à Outpost lui-même un agent ou un fournisseur intégré, suivez AGENTS.md dans le dépôt.
API : CliHarness · AgentAdapter · ConversationStore · SandboxProvider · SandboxLease · ModelProvider · Transport · TaskQueue · diagnoseSandbox.
Connecter des services de décision
Section intitulée « Connecter des services de décision »DecisionProvider évalue des questions typées sur un état JSON sans perte. Il est indépendant de ModelProvider et n’alloue aucune sandbox. Utilisez l’adapter HTTP System One commun à Jev et aux endpoints Laya compatibles, ou implémentez une requête annulable renvoyant les réponses natives et l’usage disponible. Voir les décisions typées et le routage par étape.