[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:fr":3,"public-menus:all":38,"post:managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose:fr":205,"related:post:managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose:fr:1":1769},{"statusCode":4,"data":5,"message":37},200,{"tenantId":6,"lang":7,"defaultLang":8,"siteUrl":9,"contactEmail":10,"brandName":11,"logoUrl":12,"siteName":11,"siteDescription":13,"ogImage":10,"robotsIndex":14,"socialLinks":10,"reservedSlugs":10,"seoPolicy":15},"stajic","fr","de","https:\u002F\u002Fstajic.de",null,"Stajic Platform","\u002FLogo_Planet.svg","Stajic Portal",true,{"branding":16,"relatedContent":17,"crossDomainLinks":18},{"logoUrl":12},{"enabled":14},[19,22,25,28,31,34],{"url":20,"label":21,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Ffigure.rocks","figure.rocks",{"url":23,"label":24,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Floving.rocks","loving.rocks",{"url":26,"label":27,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.com","bazify.com",{"url":29,"label":30,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.de","bazify.de",{"url":32,"label":33,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.at","bazify.at",{"url":35,"label":36,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.ba","bazify.ba","Portal settings resolved",[39,45],{"id":40,"name":41,"location":42,"isActive":14,"isDefault":43,"items":44},1,"main-navigation","header",false,[],{"id":46,"name":47,"location":48,"isActive":14,"isDefault":14,"items":49},4,"main-menu","sidebar",[50,66,79,93,103,118,133],{"id":51,"title":52,"url":60,"target":61,"icon":62,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":64,"portfolioId":10,"children":65},"item-18",{"de":53,"en":54,"es":55,"fr":56,"it":54,"ru":57,"sr":58,"zh":59},"Startseite","Home","Inicio","Accueil","Главная","Почетна","首页","\u002Ffull-stack-web-developer-munich-performance-seo-and-maintainable-builds","_self","i-lucide-home","page",111,[],{"id":67,"title":68,"url":75,"target":61,"icon":76,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":77,"portfolioId":10,"children":78},"item-22",{"de":69,"en":69,"es":70,"fr":69,"it":71,"ru":72,"sr":73,"zh":74},"Vision","Visión","Visione","Видение","Визија","想象","\u002Fueber-uns-webdesign-muenchen-webaplikation","i-lucide-eye",113,[],{"id":80,"title":81,"url":89,"target":61,"icon":90,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":91,"portfolioId":10,"children":92},"item-19",{"de":82,"en":83,"es":84,"fr":83,"it":85,"ru":86,"sr":87,"zh":88},"Leistungen","Services","Servicios","Servizi","Услуги","Услуге","服务","\u002Fservices-dienstleistungen-muenchen","i-lucide-wrench",116,[],{"id":94,"title":95,"url":99,"target":61,"icon":100,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":101,"portfolioId":10,"children":102},"item-23",{"de":96,"en":96,"es":96,"fr":96,"it":96,"ru":97,"sr":97,"zh":98},"Blog","Блог","博客","\u002Fblog","i-lucide-book-open",112,[],{"id":104,"title":105,"url":114,"target":61,"icon":115,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":116,"portfolioId":10,"children":117},"item-32",{"de":106,"en":107,"es":108,"fr":109,"it":110,"ru":111,"sr":112,"zh":113},"Neue Technologien","New Technologies","Nuevas tecnologías","Nouvelles technologies","Nuove tecnologie","Новые технологии","Нове технологије","新技术！","\u002Fneue-webtechnologien","i-lucide-sparkles",122,[],{"id":119,"title":120,"url":129,"target":61,"icon":130,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":131,"portfolioId":10,"children":132},"item-20",{"de":121,"en":122,"es":123,"fr":124,"it":125,"ru":126,"sr":127,"zh":128},"Kontakt","Contact us!","Contacto","Contact","Contatto","Контакт","Контактирајте нас","联系我们！","\u002Fcontact","i-lucide-mail",115,[],{"id":134,"title":135,"url":144,"target":61,"icon":145,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":147},"item-21",{"de":136,"en":137,"es":138,"fr":139,"it":140,"ru":141,"sr":142,"zh":143},"Unsere Arbeit","Our Work","Nuestro trabajo","Nos réalisations","I nostri lavori","Наши работы","Наши радови","文件夹","\u002Fportfolio","i-lucide-briefcase",114,[148,161,175,181,193],{"id":149,"title":150,"url":144,"target":61,"icon":159,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":160},"item-24",{"de":151,"en":152,"es":153,"fr":154,"it":155,"ru":156,"sr":157,"zh":158},"Alle Projekte","All Projects","Todos los proyectos","Tous les projets","Tutti i progetti","Все проекты","Сви пројекти","所有项目","i-lucide-grid-3x3",[],{"id":162,"title":163,"url":171,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":174},"item-29",{"de":164,"en":165,"es":166,"fr":167,"it":168,"ru":169,"sr":170,"zh":143},"Local Roots, Global Reach","Local Roots - Global Reach","Empresa local ","Entreprise locale","Azienda locale","Местная компания","Локално предузеће глобално тржиште","\u002Fportfolio\u002Flocal-roots-global-reach-communication-media-systems-for-modern-business","i-lucide-folder","custom",[],{"id":176,"title":177,"url":179,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":180},"item-28",{"de":178,"en":178,"es":178,"fr":178,"it":178,"ru":178,"sr":178,"zh":178},"Solr Suggester","\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung",[],{"id":182,"title":183,"url":191,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":192},"item-27",{"de":184,"en":185,"es":186,"fr":187,"it":188,"ru":189,"sr":190,"zh":185},"Firmenwebseite SEO","Company Website SEO","Sitio web corporativo SEO","Site web d’entreprise SEO","Sito web aziendale SEO","Корпоративный сайт SEO","Пословна веб-страница SEO","\u002Fportfolio\u002Fseo-sem-branding-mobile-webseite-muenchen",[],{"id":194,"title":195,"url":203,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":204},"item-31",{"de":196,"en":197,"es":198,"fr":199,"it":200,"ru":201,"sr":202,"zh":197},"Digitalisierungsportal","Digitalization Portal","Portal de digitalización","Portail de numérisation","Portale di digitalizzazione","Портал цифровизации","Портал за дигитализацију","\u002Fportfolio\u002Fdigitalisierungsportal-archiv-museum-bibliothek-ead-lido-mets-mods",[],{"statusCode":4,"data":206,"message":1768},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":871,"featuredImage":872,"featuredImageAlt":873,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":874,"publishedAt":875,"createdAt":876,"updatedAt":877,"seoLocalePaths":878,"categories":887,"author":900,"translations":905},"475","Harnais d'agent géré vs boucle d'agent auto-hébergée : ce que vous gagnez, ce que vous perdez","managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","\u003Cnav class=\"editorjs-toc\" data-editorjs-toc=\"true\" aria-label=\"Sommaire\">\u003Cstrong class=\"editorjs-toc__title\">Sommaire\u003C\u002Fstrong>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-0\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-6\" class=\"editorjs-toc__link\">L&#39;erreur : considérer l&#39;auto-hébergement comme une décision unique\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-10\" class=\"editorjs-toc__link\">Trois architectures souvent qualifiées d&#39;« auto-hébergées »\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-12\" class=\"editorjs-toc__link\">Le modèle à deux plans\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-15\" class=\"editorjs-toc__link\">Harness géré : ce que vous y gagnez réellement\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-19\" class=\"editorjs-toc__link\">Harness géré : ce à quoi vous renoncez\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-23\" class=\"editorjs-toc__link\">Environnement d&#39;exécution auto-hébergé : l&#39;architecture intermédiaire\u003C\u002Fa>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-1\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-27\" class=\"editorjs-toc__link\">Quand l&#39;exécution auto-hébergée est suffisante\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-29\" class=\"editorjs-toc__link\">Quand vous pourriez également avoir besoin de gérer le harness\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-33\" class=\"editorjs-toc__link\">Le test d&#39;escalade du contrôle\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-36\" class=\"editorjs-toc__link\">La charge opérationnelle croît de manière non linéaire lorsque vous gérez le harness\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-40\" class=\"editorjs-toc__link\">Frontière de sécurité : auto-héberger le calcul ne rend pas automatiquement l&#39;agent privé\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-44\" class=\"editorjs-toc__link\">Latence et coût : le contrôle peut déplacer les goulots d&#39;étranglement plutôt que de les éliminer\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-47\" class=\"editorjs-toc__link\">Une matrice de décision pour la production\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-49\" class=\"editorjs-toc__link\">L&#39;hybride n&#39;est pas un compromis — c&#39;est souvent l&#39;architecture la plus propre\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-53\" class=\"editorjs-toc__link\">Qu&#39;est-ce qui changerait cette réponse ?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-56\" class=\"editorjs-toc__link\">Limites\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-59\" class=\"editorjs-toc__link\">Conclusion\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-62\" class=\"editorjs-toc__link\">FAQ\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-64\" class=\"editorjs-toc__link\">Glossaire\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-66\" class=\"editorjs-toc__link\">Sources primaires et lectures complémentaires\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fnav>\n\u003Cp>L'expression « agent auto-hébergé » recouvre aujourd'hui au moins trois architectures différentes. Vous pouvez utiliser un harness géré avec une infrastructure de calcul hébergée par OpenAI, un harness géré connecté à une infrastructure que vous exploitez, ou exécuter vous-même le harness et la boucle de l'agent. Ces choix ont des implications très différentes en matière de contrôle, de reprise sur incident, de gestion du contexte, de sécurité, de latence et de charge opérationnelle.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--info my-6 rounded-xl border p-5 border-blue-300 bg-blue-50 dark:border-blue-900 dark:bg-blue-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Réponse directe\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">&lt;strong&gt;Ne choisissez pas entre « géré » et « auto-hébergé » comme s&#39;il s&#39;agissait d&#39;une décision binaire.&lt;\u002Fstrong&gt; Séparez le &lt;strong&gt;plan du harness&lt;\u002Fstrong&gt; du &lt;strong&gt;plan d&#39;exécution&lt;\u002Fstrong&gt;. Un harness géré peut tout à fait utiliser des ressources de calcul auto-hébergées. Un environnement auto-hébergé vous offre le contrôle sur les fichiers, les paquets, l&#39;accès réseau et l&#39;exécution sans vous obliger à gérer la boucle de l&#39;agent. N&#39;exécutez vous-même le harness que lorsque vous avez besoin de contrôler l&#39;orchestration, le cycle de vie, les hypothèses de routage des modèles ou les comportements à l&#39;exécution qu&#39;un harness géré ne peut pas exposer.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--warning my-6 rounded-xl border p-5 border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">À jour au 25 septembre 2026\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">L&#39;API Agents d&#39;OpenAI est en version bêta publique et son architecture peut évoluer. La documentation actuelle sépare le harness Codex hébergé par OpenAI de l&#39;environnement d&#39;exécution et prend explicitement en charge les environnements auto-hébergés. OpenAI expose également le harness Codex séparément via le SDK Codex pour les infrastructures que vous exploitez.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Le modèle utilisé dans cet article\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Le modèle Plan du harness \u002F Plan d&#39;exécution et le test d&#39;escalade de contrôle (Control Escalation Test) ci-dessous sont des outils architecturaux pratiques proposés ici. Il ne s&#39;agit pas d&#39;une terminologie officielle de fournisseur.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-6\">L'erreur : considérer l'auto-hébergement comme une décision unique\u003C\u002Fh2>\n\u003Cp>Dans le logiciel traditionnel, « auto-hébergé » signifie généralement que l'application s'exécute sur une infrastructure que vous contrôlez. Les systèmes d'agents compliquent cette définition car l'environnement d'exécution peut être scindé. La boucle modèles-outils peut s'exécuter à un endroit, tandis que l'exécution de code, les fichiers et l'accès au réseau privé ont lieu ailleurs.\u003C\u002Fp>\n\u003Cp>L'architecture actuelle de l'API Agents d'OpenAI rend cette séparation explicite : OpenAI exécute le harness, tandis que l'environnement d'exécution peut être absent, hébergé par OpenAI ou auto-hébergé. Un environnement auto-hébergé ne signifie donc pas que la boucle de l'agent est auto-hébergée.\u003C\u002Fp>\n\u003Cp>Cette distinction est importante car de nombreuses équipes choisissent un environnement d'exécution plus complexe que nécessaire. Souhaitant un accès au réseau privé ou des paquets personnalisés, elles en concluent que l'agent entier doit être auto-hébergé, et prennent involontairement la responsabilité de la gestion du contexte, de l'orchestration, de la reprise sur incident et du cycle de vie, qui auraient pu rester gérés.\u003C\u002Fp>\n\u003Ch2 id=\"section-10\">Trois architectures souvent qualifiées d'« auto-hébergées »\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Architecture\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Qui exécute le harness ?\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Où le code et les fichiers s'exécutent\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Ce dont vous avez principalement la charge\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness géré + environnement géré\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Plateforme\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Bac à sable hébergé par la plateforme\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Application, outils, logique produit, autorisation\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness géré + environnement auto-hébergé\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Plateforme\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Votre conteneur, machine virtuelle, ordinateur portable, cloud privé ou autre infrastructure de calcul\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Provisionnement de l'environnement, réseau, fichiers et cycle de vie ; la plateforme conserve la responsabilité du harness\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness \u002F boucle d'agent géré(e) par vos soins\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Vous\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'environnement de votre choix\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Processus du harness, orchestration, stratégie de contexte, hébergement, reprise sur incident, exécution et cycle de vie de l'application\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-12\">Le modèle à deux plans\u003C\u002Fh2>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Séparer le plan du harness du plan d&#39;exécution\u003C\u002Fh3>\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left dark:border-gray-700 dark:bg-gray-900\">\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Plan\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Ce qu&#39;il prend en charge\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Questions à se poser\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Plan du harness\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Plan d&#39;exécution\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Plan applicatif\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Caside class=\"editorjs-callout editorjs-callout--success my-6 rounded-xl border p-5 border-emerald-300 bg-emerald-50 dark:border-emerald-900 dark:bg-emerald-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Conséquence architecturale clé\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Vous pouvez auto-héberger le &lt;strong&gt;plan d&#39;exécution&lt;\u002Fstrong&gt; sans auto-héberger le &lt;strong&gt;plan du harness&lt;\u002Fstrong&gt;. C&#39;est souvent le juste milieu.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-15\">Harness géré : ce que vous y gagnez réellement\u003C\u002Fh2>\n\u003Cp>Un harness géré ne se contente pas de supprimer une boucle while. L'actuelle API Agents d'OpenAI gère les sessions, l'orchestration, le compactage du contexte et la reprise sur incident. Les travaux d'Anthropic sur les agents gérés décrivent la même motivation générale : les harness intègrent des hypothèses sur le comportement des modèles, et ces hypothèses doivent évoluer à mesure que les modèles s'améliorent.\u003C\u002Fp>\n\u003Cp>Le gain ne se résume donc pas à quelques lignes de code en moins. La plateforme peut faire évoluer le comportement à l'exécution, le traitement des contextes à long terme, la coordination des sous-agents et la reprise sur incident, sans obliger chaque équipe applicative à réimplémenter ces mécanismes.\u003C\u002Fp>\n\u003Cul>\u003Cli>Moins de code d'orchestration à la charge de l'application.\u003C\u002Fli>\u003Cli>Gestion assurée des sessions durables.\u003C\u002Fli>\u003Cli>Gestion assurée du compactage du contexte et de la reprise sur incident.\u003C\u002Fli>\u003Cli>Un environnement d'exécution capable d'évoluer avec les capacités des modèles.\u003C\u002Fli>\u003Cli>Adoption simplifiée des fonctionnalités natives de sous-agents et d'agents à longue durée de vie de la plateforme.\u003C\u002Fli>\u003Cli>Charge opérationnelle potentiellement réduite pour les équipes dont la valeur ajoutée ne réside pas dans le harness lui-même.\u003C\u002Fli>\u003C\u002Ful>\n\u003Ch2 id=\"section-19\">Harness géré : ce à quoi vous renoncez\u003C\u002Fh2>\n\u003Cp>Déléguer le harness revient également à déléguer une partie du contrôle. Votre application ne maîtrise plus chaque détail de l'itération, de la stratégie de contexte, de l'orchestration et de l'évolution du runtime. Une mise à jour de la plateforme peut améliorer le système, mais elle peut aussi modifier un comportement dont dépendait implicitement votre produit.\u003C\u002Fp>\n\u003Cp>Cela crée une exigence d'ingénierie d'une autre nature : des évaluations rigoureuses, des délimitations de produit explicites et une couche d'intégration qui empêche le comportement de la session gérée de devenir votre source de vérité métier.\u003C\u002Fp>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Compromis du harness géré\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Ce que cela implique sur le plan opérationnel\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Moins de contrôle sur la boucle\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Vous ne pouvez pas supposer que chaque détail d'orchestration est défini par l'application\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Évolution de la plateforme\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le comportement du harness peut s'améliorer ou changer sans modification de votre code\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cycle de vie propre au fournisseur\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les sessions, les événements et la sémantique de récupération intègrent le périmètre d'intégration\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Périmètre d'observabilité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les traces de la plateforme doivent être consolidées avec les données d'audit de l'application\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Coût de portabilité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Migrer vers un autre harness ultérieurement peut exiger bien plus que de simples modifications de points de terminaison de modèle\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-23\">Environnement d'exécution auto-hébergé : l'architecture intermédiaire\u003C\u002Fh2>\n\u003Cp>Le modèle d'environnement auto-hébergé d'OpenAI est important, car il découple le calcul privé de la propriété du harness. La plateforme exécute toujours le harness Codex, tandis qu'un exécuteur fonctionne au sein de votre environnement et reçoit les commandes via une connexion sortante.\u003C\u002Fp>\n\u003Cp>Vous contrôlez le provisionnement, les fichiers, les dépendances, l'accès réseau et le nettoyage. Le harness peut ainsi interagir avec une infrastructure privée ou des logiciels personnalisés sans nécessiter le transfert de l'intégralité du runtime d'agent dans votre application.\u003C\u002Fp>\n\u003Cp>La contrepartie réside dans la responsabilité du cycle de vie. Votre application doit mapper les sessions aux ressources de calcul, éviter les provisionnements en double, reconnecter les environnements, coordonner l'arrêt et conserver les fichiers qui doivent subsister après la fermeture de l'environnement.\u003C\u002Fp>\n\u003Ch3 id=\"section-27\">Quand l'exécution auto-hébergée est suffisante\u003C\u002Fh3>\n\u003Cul>\u003Cli>L'agent a besoin d'accéder à un VPC privé ou à un service interne.\u003C\u002Fli>\u003Cli>L'agent a besoin de binaires, de paquets, de pilotes ou de logiciels système personnalisés.\u003C\u002Fli>\u003Cli>La charge de travail doit s'exécuter sur du matériel ou des comptes cloud que vous contrôlez.\u003C\u002Fli>\u003Cli>Les fichiers doivent rester à l'intérieur d'un environnement maîtrisé.\u003C\u002Fli>\u003Cli>Vous avez besoin de votre propre fournisseur de bac à sable ou modèle d'isolation.\u003C\u002Fli>\u003Cli>Vous souhaitez une orchestration gérée par la plateforme, mais une exécution contrôlée par votre infrastructure.\u003C\u002Fli>\u003C\u002Ful>\n\u003Ch2 id=\"section-29\">Quand vous pourriez également avoir besoin de gérer le harness\u003C\u002Fh2>\n\u003Cp>Gérer soi-même le harness devient justifié lorsque celui-ci fait partie intégrante de la différenciation de votre produit ou de vos contraintes techniques. La présentation actuelle du runtime d'OpenAI positionne le SDK Codex pour faire tourner le harness Codex sur l'infrastructure que vous opérez, tandis que Responses constitue l'option de niveau inférieur lorsque vous souhaitez prendre en charge vous-même la boucle de l'agent.\u003C\u002Fp>\n\u003Cp>L'enjeu consiste à identifier un besoin qui relève véritablement du plan de harness, et non du plan d'exécution.\u003C\u002Fp>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Exigence\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Problème lié au plan d'exécution ou au plan de harness ?\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Orientation probable\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Accès à une base de données privée\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Plan d'exécution\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness géré + environnement auto-hébergé peuvent suffire\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Paquets Linux personnalisés\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Plan d'exécution\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness géré + environnement auto-hébergé\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Matériel GPU sur mesure\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Plan d'exécution\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness géré + environnement auto-hébergé là où c'est pris en charge\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Logique personnalisée d'arrêt de l'agent\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Plan de harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness auto-opéré \u002F boucle sur mesure\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Routage de modèles multi-fournisseurs à chaque étape\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Plan de harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Boucle sur mesure ou harness que vous opérez\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Algorithme personnalisé de compactage de contexte\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Plan de harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness auto-opéré si le runtime géré ne permet pas de l'exposer\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sémantique d'orchestration déterministe exigée par le produit\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Plan de harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness auto-opéré ou boucle sur mesure strictement contrôlée\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Déploiement produit exclusivement local sans dépendance à un harness géré\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Plan de harness + plan d'exécution\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Runtime auto-opéré\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-33\">Le test d'escalade du contrôle\u003C\u002Fh2>\n\u003Cp>Adoptez l'architecture la moins auto-hébergée possible qui réponde à l'exigence réelle. Augmentez le niveau de contrôle couche par couche.\u003C\u002Fp>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Test d'escalade du contrôle\u003C\u002Fh3>\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">1. Commencer par le périmètre applicatif\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Conservez la vérité métier, l'autorisation et les actions opérationnelles critiques dans votre propre produit, quel que soit le runtime d'agent.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">2. Déterminer si l'agent a besoin d'une exécution locale\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Si ce n'est pas le cas, un harness géré sans environnement dédié peut suffire.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">3. Déterminer si les ressources de calcul hébergées par la plateforme sont acceptables\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Si oui, utilisez un environnement géré et évitez la prise en charge inutile d'infrastructures.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">4\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">4. Sinon, auto-héberger le plan d'exécution\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Connectez votre propre environnement pour le réseau privé, les fichiers, les paquets ou le calcul maîtrisé.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">5\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">5. Réévaluer la contrainte restante\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Si l'exigence est désormais satisfaite, arrêtez-vous là. N'auto-hébergez pas le harness uniquement par souci de symétrie architecturale.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">6\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">6. Passer à la gestion du harness uniquement pour des besoins liés au harness\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Prenez en charge le harness Codex ou une boucle d'agent sur mesure lorsque l'orchestration, la stratégie de contexte, le cycle de vie ou la portabilité l'exigent réellement.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">7\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">7. Prouver que le contrôle supplémentaire justifie les opérations additionnelles\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Évaluez la fiabilité, la latence, le coût, la reprise sur panne, l'observabilité et la charge d'ingénierie avant de vous engager.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-36\">La charge opérationnelle croît de manière non linéaire lorsque vous gérez le harness\u003C\u002Fh2>\n\u003Cp>Une boucle auto-opérée semble simple dans une démo : appeler le modèle, inspecter l'appel d'outil, exécuter l'outil, ajouter le résultat, répéter. La production y ajoute l'état durable, les nouvelles tentatives, les événements en double, l'annulation, l'approbation, le dépassement de contexte, les expirations d'outils, les redémarrages de processus, la persistance des traces, la contre-pression, le travail simultané et la récupération après des effets secondaires partiels.\u003C\u002Fp>\n\u003Cp>La recherche d'Anthropic sur les agents à exécution longue montre à plusieurs reprises que la conception du harness influe concrètement sur les performances. Leurs travaux sur le développement d'applications à exécution longue utilisent une planification explicite, des artefacts structurés et des agents évaluateurs, car les boucles naïves ont tendance à perdre leur progression ou à s'interrompre prématurément. Le harness relève donc de la logique de production, et non d'une simple plomberie technique.\u003C\u002Fp>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Si vous gérez le harness, vous devez également répondre à\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Pourquoi c'est important\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">État de session durable\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les processus redémarrent ; le travail à exécution longue doit reprendre correctement\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Compactage du contexte\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'historique finit par dépasser le contexte de travail pratique\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Idempotence des outils\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les nouvelles tentatives ne doivent pas répéter des effets secondaires irréversibles\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Annulation et interruption\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les utilisateurs et les systèmes doivent pouvoir arrêter ou rediriger le travail\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Récupération après exécution partielle\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un outil peut réussir même si l'agent ne reçoit jamais le résultat\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Concurrence\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Plusieurs tâches, workers ou agents peuvent accéder à un état partagé\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Observabilité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le résultat final est insuffisant pour déboguer les défaillances à l'exécution\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Gestion des versions\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les mises à jour du harness peuvent modifier le comportement même lorsque les prompts restent constants\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Évaluation\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les modifications à l'exécution nécessitent des tests de régression sur des trajectoires représentatives\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-40\">Frontière de sécurité : auto-héberger le calcul ne rend pas automatiquement l'agent privé\u003C\u002Fh2>\n\u003Cp>Un environnement d'exécution auto-hébergé contrôle l'endroit où les commandes s'exécutent et où résident les fichiers, mais le harness géré et l'interaction avec le modèle franchissent toujours la frontière du service. Les équipes doivent donc cartographier explicitement les flux de données plutôt que d'utiliser « auto-hébergé » comme un raccourci pour une propriété de confidentialité.\u003C\u002Fp>\n\u003Cp>L'exécuteur auto-hébergé d'OpenAI utilise des identifiants d'environnement restreints et des connexions sortantes. Il s'agit d'une isolation utile, mais votre application a toujours besoin de ses propres règles pour les secrets, l'exposition au réseau privé, l'isolation utilisateur-environnement, la rétention des fichiers, l'autorisation des outils et la classification des données.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--warning my-6 rounded-xl border p-5 border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Distinction importante\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">&lt;strong&gt;Le contrôle de l&#39;infrastructure, l&#39;isolation de l&#39;exécution et les frontières de gouvernance des données sont liés mais ne sont pas identiques.&lt;\u002Fstrong&gt; Décidez-en séparément.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-44\">Latence et coût : le contrôle peut déplacer les goulots d'étranglement plutôt que de les éliminer\u003C\u002Fh2>\n\u003Cp>L'auto-hébergement peut réduire certains coûts liés au chemin des données ou au démarrage de l'environnement, mais il peut également ajouter du temps de provisionnement, la gestion du cycle de vie WebSocket, des démarrages à froid, le nettoyage des bacs à sable, de l'infrastructure d'observabilité et une charge d'ingénierie. Un environnement géré peut coûter plus cher par unité de calcul tout en étant plus économique à exploiter à un volume faible ou irrégulier.\u003C\u002Fp>\n\u003Cp>La véritable comparaison repose sur le coût total du système : utilisation du modèle et des outils, temps d'environnement, infrastructure, effort d'ingénierie, astreintes, reprise après incident et coût d'une itération plus lente.\u003C\u002Fp>\n\u003Ch2 id=\"section-47\">Une matrice de décision pour la production\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Contrainte\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Harness géré + environnement géré\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Harness géré + environnement auto-hébergé\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Harness \u002F boucle auto-opéré(e)\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Chemin le plus rapide vers la production\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fort\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modéré\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le plus faible\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Exécution sur réseau privé\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Faible \u002F dépend de la conception de la connectivité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fort\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fort\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Paquets personnalisés \u002F logiciels système\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modéré\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fort\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fort\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Contrôle au niveau du harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Faible\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Faible\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le plus élevé\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Charge opérationnelle\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La plus faible\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Moyenne\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La plus élevée\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Portabilité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La plus faible\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Moyenne\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Potentiellement la plus élevée si conçue intentionnellement\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Contrôle de la stratégie de contexte\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Géré par la plateforme\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Géré par la plateforme\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Contrôlé par l'application\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Contrôle de l'infrastructure d'exécution\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Faible\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Élevé\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Élevé\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Capacité à bénéficier des mises à jour du harness géré\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La plus élevée\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La plus élevée\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Vous assumez l'adoption\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Adéquation idéale\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Équipes se différenciant au niveau du produit ou des outils\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Équipes nécessitant du calcul privé\u002Fpersonnalisé sans gérer l'orchestration\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Équipes dont la sémantique d'exécution constitue en elle-même une exigence\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-49\">L'hybride n'est pas un compromis — c'est souvent l'architecture la plus propre\u003C\u002Fh2>\n\u003Cp>Un harness géré avec une exécution auto-hébergée n'est pas « à moitié auto-hébergé ». C'est une séparation délibérée des responsabilités. La plateforme prend en charge la complexité du runtime d'agent à long horizon, tandis que votre infrastructure prend en charge l'exécution, la connectivité privée et les fichiers.\u003C\u002Fp>\n\u003Cp>Cette frontière ressemble à d'autres architectures cloud : plan de contrôle géré, plan de données ou d'exécution contrôlé par le client. Le travail de conception essentiel consiste à définir le contrat entre eux — identité de session, identité d'environnement, identifiants, fichiers, permissions des outils, événements de cycle de vie et nettoyage.\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Fopenai-agents-api-vs-agents-sdk-vs-responses-api-what-should-you-build-on-in-2026\" class=\"flex flex-col sm:flex-row gap-4 rounded-xl border border-gray-200 dark:border-gray-700 p-4 transition hover:border-primary-500\">\u003Cdiv class=\"min-w-0 flex-1\">\u003Cstrong class=\"block text-lg text-gray-900 dark:text-gray-100\">OpenAI Agents API vs Agents SDK vs Responses API : sur quoi devriez-vous construire en 2026 ?\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">Une comparaison des surfaces d'agents actuelles d'OpenAI selon la responsabilité du runtime et les frontières de contrôle associées.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Lire la comparaison des runtimes →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Ch2 id=\"section-53\">Qu'est-ce qui changerait cette réponse ?\u003C\u002Fh2>\n\u003Cp>La recommandation changerait si les harness gérés offraient un contrôle d'exécution nettement plus étendu, si les harness auto-hébergés bénéficiaient de primitives de session durable et de reprise plus simples, ou si la réglementation imposait que l'intégralité de la boucle de l'agent et de l'interaction avec le modèle demeure au sein d'une infrastructure que vous exploitez.\u003C\u002Fp>\n\u003Cp>Cela évolue également avec les capacités des modèles. Anthropic souligne explicitement que les hypothèses relatives au harness peuvent devenir obsolètes à mesure que les modèles s'améliorent. Un mécanisme de contrôle indispensable aujourd'hui peut s'avérer superflu plus tard, tandis qu'une nouvelle capacité de modèle peut engendrer une nouvelle exigence de gouvernance.\u003C\u002Fp>\n\u003Ch2 id=\"section-56\">Limites\u003C\u002Fh2>\n\u003Cp>Cet article distingue les responsabilités architecturales ; il ne prétend pas qu'un modèle d'hébergement soit universellement plus sécurisé, plus économique ou plus fiable. Ces résultats dépendent de l'implémentation, de la charge de travail, des exigences de conformité, des compétences de l'équipe et du comportement du fournisseur.\u003C\u002Fp>\n\u003Cp>L'API OpenAI Agents est encore en version bêta publique, et les produits d'agents gérés proposés par différents fournisseurs présentent des frontières variées. Le modèle à deux plans vise à faciliter la comparaison de ces architectures sans supposer que chaque fournisseur emploie les mêmes termes.\u003C\u002Fp>\n\u003Ch2 id=\"section-59\">Conclusion\u003C\u002Fh2>\n\u003Cp>La question pertinente n'est pas : « Devrions-nous auto-héberger l'agent ? » C'est plutôt : quel plan devons-nous réellement contrôler ?\u003C\u002Fp>\n\u003Cp>Si l'exigence porte sur du calcul privé, des packages personnalisés, des fichiers locaux ou l'accès à un réseau interne, auto-hébergez le plan d'exécution et conservez le harness géré. Si l'exigence concerne la sémantique d'orchestration, la stratégie de contexte, le contrôle du fournisseur ou le cycle de vie du runtime lui-même, alors la prise en charge du harness peut être justifiée. N'augmentez le niveau de contrôle que dans la mesure requise par vos besoins.\u003C\u002Fp>\n\u003Ch2 id=\"section-62\">FAQ\u003C\u002Fh2>\n\u003Csection class=\"editorjs-faq my-6 rounded-xl border border-gray-200 p-5 dark:border-gray-700\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Harness gérés et runtimes d&#39;agents auto-hébergés\u003C\u002Fh3>\u003Cdiv id=\"faq1\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Un environnement auto-hébergé avec l&#39;API OpenAI Agents constitue-t-il un agent auto-hébergé ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Pas entièrement. OpenAI exécute toujours le harness géré Codex, tandis que votre infrastructure héberge l&#39;environnement d&#39;exécution utilisé pour les commandes, les fichiers et les outils locaux.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq2\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Quand un environnement auto-hébergé est-il suffisant ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Il suffit souvent lorsque vos exigences concernent l&#39;accès à un réseau privé, des packages personnalisés, des fichiers contrôlés, du matériel spécifique ou des politiques d&#39;infrastructure, plutôt que le contrôle direct de la boucle de l&#39;agent.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq3\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Quand devrais-je exécuter le harness moi-même ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Envisagez la prise en charge du harness lorsque vous avez besoin d&#39;une sémantique d&#39;orchestration personnalisée, d&#39;une gestion sur mesure du contexte, d&#39;un routage entre fournisseurs, d&#39;un comportement d&#39;exécution strictement local ou de toute autre exigence propre à la boucle de l&#39;agent plutôt qu&#39;à l&#39;environnement d&#39;exécution.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq4\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">L&#39;auto-hébergement améliore-t-il automatiquement la sécurité ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Non. Il modifie simplement les composants que vous contrôlez. La sécurité dépend du flux de données, de l&#39;isolation, des identifiants, des autorisations des outils, de la configuration réseau, de la journalisation et de la conception du cycle de vie sur l&#39;ensemble des composants.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq5\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Quel est le principal coût opérationnel lié à la prise en charge de la boucle de l&#39;agent ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Vous devenez responsable de l&#39;état persistant, de la gestion du contexte, des nouvelles tentatives, de l&#39;annulation, de la récupération après sinistre, de l&#39;observabilité, de la concurrence, des montées de version du runtime et de l&#39;évaluation des modifications apportées au harness.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-64\">Glossaire\u003C\u002Fh2>\n\u003Csection class=\"editorjs-glossary my-6 rounded-xl border border-gray-200 dark:border-gray-700 p-5\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Termes clés d'architecture\u003C\u002Fh3>\u003Cdl>\u003Cdiv id=\"harness-plane\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Plan du harness\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">La couche du runtime d'agent responsable de l'exécution de la boucle, de l'orchestration, de la gestion du contexte, de la continuité des sessions et de la reprise après incident.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"execution-plane\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Plan d'exécution\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">L'environnement dans lequel les commandes sont exécutées, le code est lancé et les fichiers, packages et ressources locales sont consultés.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"managed-harness\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Harness géré\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Un harness d'agent dont le runtime, la gestion des sessions et l'orchestration sont opérés par un fournisseur de plateforme.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"self-hosted-environment\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Environnement auto-hébergé\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Ressources de calcul et fichiers administrés par le propriétaire de l'application, tandis qu'un harness d'agent distinct peut demeurer géré ailleurs.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"self-operated-harness\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Harness auto-opéré\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Un runtime d'agent dont la boucle, l'hébergement, la stratégie de contexte et le cycle de vie sont gérés par l'équipe en charge de l'application.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"control-escalation-test\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Test d'escalade du contrôle\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une méthode décisionnelle consistant à n'accroître la responsabilité sur l'infrastructure et le runtime que lorsqu'une exigence ne peut pas être satisfaite à une couche de contrôle inférieure.\u003C\u002Fdd>\u003C\u002Fdiv>\u003C\u002Fdl>\u003C\u002Fsection>\n\u003Ch2 id=\"section-66\">Sources primaires et lectures complémentaires\u003C\u002Fh2>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Farchitecture\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Architecture de l&#39;API Agents\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Séparation actuelle entre le harness hébergé, l&#39;environnement d&#39;exécution et le serveur applicatif.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Fenvironments\u002Fself-hosted\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Sandboxes auto-hébergées\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Comment les environnements d&#39;exécution gérés par le client se connectent au harness géré et quelles responsabilités liées au cycle de vie incombent à l&#39;application.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Fenvironments\u002Flifecycle\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Cycle de vie des sandboxes\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Provisionnement, reconnexion, prévention des doublons d&#39;environnements et responsabilités de nettoyage pour le calcul auto-hébergé.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Options d&#39;environnements d&#39;exécution pour agents\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Comparaison actuelle entre l&#39;API Agents, le SDK Codex et l&#39;API Responses selon les responsabilités gérées versus opérées par l&#39;application.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fblog\u002Fcodex-as-a-platform\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Codex en tant que plateforme\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Harness open source Codex et couches d&#39;intégration pour les applications nécessitant un contrôle plus poussé du runtime.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fmanaged-agents\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Anthropic — Scaling Managed Agents: Decoupling the brain from the hands\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Analyse de l&#39;architecture des agents gérés et des raisons pour lesquelles les hypothèses de conception du harness doivent évoluer avec les capacités des modèles.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Anthropic — Des harnais efficaces pour les agents à longue durée d&#39;exécution\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Enseignements d&#39;ingénierie montrant que les performances des agents à longue durée d&#39;exécution dépendent considérablement de la conception du harnais et des artefacts persistants.\u003C\u002Fp>\u003C\u002Fa>",{"time":212,"blocks":213,"version":870},1790365551381,[214,222,228,236,243,249,254,259,264,269,274,299,304,334,341,346,351,356,370,375,380,385,408,413,418,423,428,433,445,450,455,460,494,499,504,533,538,543,548,583,588,593,598,604,609,614,619,624,669,674,679,684,693,698,703,708,713,718,723,728,733,738,743,769,774,801,806,816,825,834,843,852,861],{"id":215,"data":216,"type":220,"tunes":221},"-PDI7SJcNl",{"title":217,"maxLevel":218,"minLevel":219},"Sommaire",3,2,"tableOfContents",{},{"id":223,"data":224,"type":226,"tunes":227},"intro",{"text":225},"L'expression « agent auto-hébergé » recouvre aujourd'hui au moins trois architectures différentes. Vous pouvez utiliser un harness géré avec une infrastructure de calcul hébergée par OpenAI, un harness géré connecté à une infrastructure que vous exploitez, ou exécuter vous-même le harness et la boucle de l'agent. Ces choix ont des implications très différentes en matière de contrôle, de reprise sur incident, de gestion du contexte, de sécurité, de latence et de charge opérationnelle.","paragraph",{},{"id":229,"data":230,"type":234,"tunes":235},"direct",{"body":231,"title":232,"variant":233},"\u003Cstrong>Ne choisissez pas entre « géré » et « auto-hébergé » comme s'il s'agissait d'une décision binaire.\u003C\u002Fstrong> Séparez le \u003Cstrong>plan du harness\u003C\u002Fstrong> du \u003Cstrong>plan d'exécution\u003C\u002Fstrong>. Un harness géré peut tout à fait utiliser des ressources de calcul auto-hébergées. Un environnement auto-hébergé vous offre le contrôle sur les fichiers, les paquets, l'accès réseau et l'exécution sans vous obliger à gérer la boucle de l'agent. N'exécutez vous-même le harness que lorsque vous avez besoin de contrôler l'orchestration, le cycle de vie, les hypothèses de routage des modèles ou les comportements à l'exécution qu'un harness géré ne peut pas exposer.","Réponse directe","info","callout",{},{"id":237,"data":238,"type":234,"tunes":242},"current",{"body":239,"title":240,"variant":241},"L'API Agents d'OpenAI est en version bêta publique et son architecture peut évoluer. La documentation actuelle sépare le harness Codex hébergé par OpenAI de l'environnement d'exécution et prend explicitement en charge les environnements auto-hébergés. OpenAI expose également le harness Codex séparément via le SDK Codex pour les infrastructures que vous exploitez.","À jour au 25 septembre 2026","warning",{},{"id":244,"data":245,"type":234,"tunes":248},"note",{"body":246,"title":247,"variant":244},"Le modèle Plan du harness \u002F Plan d'exécution et le test d'escalade de contrôle (Control Escalation Test) ci-dessous sont des outils architecturaux pratiques proposés ici. Il ne s'agit pas d'une terminologie officielle de fournisseur.","Le modèle utilisé dans cet article",{},{"id":250,"data":251,"type":42,"tunes":253},"h-mistake",{"text":252,"level":219},"L'erreur : considérer l'auto-hébergement comme une décision unique",{},{"id":255,"data":256,"type":226,"tunes":258},"p-mistake-1",{"text":257},"Dans le logiciel traditionnel, « auto-hébergé » signifie généralement que l'application s'exécute sur une infrastructure que vous contrôlez. Les systèmes d'agents compliquent cette définition car l'environnement d'exécution peut être scindé. La boucle modèles-outils peut s'exécuter à un endroit, tandis que l'exécution de code, les fichiers et l'accès au réseau privé ont lieu ailleurs.",{},{"id":260,"data":261,"type":226,"tunes":263},"p-mistake-2",{"text":262},"L'architecture actuelle de l'API Agents d'OpenAI rend cette séparation explicite : OpenAI exécute le harness, tandis que l'environnement d'exécution peut être absent, hébergé par OpenAI ou auto-hébergé. Un environnement auto-hébergé ne signifie donc pas que la boucle de l'agent est auto-hébergée.",{},{"id":265,"data":266,"type":226,"tunes":268},"p-mistake-3",{"text":267},"Cette distinction est importante car de nombreuses équipes choisissent un environnement d'exécution plus complexe que nécessaire. Souhaitant un accès au réseau privé ou des paquets personnalisés, elles en concluent que l'agent entier doit être auto-hébergé, et prennent involontairement la responsabilité de la gestion du contexte, de l'orchestration, de la reprise sur incident et du cycle de vie, qui auraient pu rester gérés.",{},{"id":270,"data":271,"type":42,"tunes":273},"h-three",{"text":272,"level":219},"Trois architectures souvent qualifiées d'« auto-hébergées »",{},{"id":275,"data":276,"type":297,"tunes":298},"three-table",{"content":277,"stretched":43,"withHeadings":14},[278,283,288,292],[279,280,281,282],"Architecture","Qui exécute le harness ?","Où le code et les fichiers s'exécutent","Ce dont vous avez principalement la charge",[284,285,286,287],"Harness géré + environnement géré","Plateforme","Bac à sable hébergé par la plateforme","Application, outils, logique produit, autorisation",[289,285,290,291],"Harness géré + environnement auto-hébergé","Votre conteneur, machine virtuelle, ordinateur portable, cloud privé ou autre infrastructure de calcul","Provisionnement de l'environnement, réseau, fichiers et cycle de vie ; la plateforme conserve la responsabilité du harness",[293,294,295,296],"Harness \u002F boucle d'agent géré(e) par vos soins","Vous","L'environnement de votre choix","Processus du harness, orchestration, stratégie de contexte, hébergement, reprise sur incident, exécution et cycle de vie de l'application","table",{},{"id":300,"data":301,"type":42,"tunes":303},"h-two-plane",{"text":302,"level":219},"Le modèle à deux plans",{},{"id":305,"data":306,"type":332,"tunes":333},"plane-comparison",{"rows":307,"title":321,"layout":297,"columns":322},[308,313,317],{"id":309,"label":310,"values":311},"harness","Plan du harness",[312,312,312],"",{"id":314,"label":315,"values":316},"execution","Plan d'exécution",[312,312,312],{"id":318,"label":319,"values":320},"application","Plan applicatif",[312,312,312],"Séparer le plan du harness du plan d'exécution",[323,326,329],{"id":324,"label":325},"plane","Plan",{"id":327,"label":328},"owns","Ce qu'il prend en charge",{"id":330,"label":331},"questions","Questions à se poser","comparison",{},{"id":335,"data":336,"type":234,"tunes":340},"key-consequence",{"body":337,"title":338,"variant":339},"Vous pouvez auto-héberger le \u003Cstrong>plan d'exécution\u003C\u002Fstrong> sans auto-héberger le \u003Cstrong>plan du harness\u003C\u002Fstrong>. C'est souvent le juste milieu.","Conséquence architecturale clé","success",{},{"id":342,"data":343,"type":42,"tunes":345},"h-managed",{"text":344,"level":219},"Harness géré : ce que vous y gagnez réellement",{},{"id":347,"data":348,"type":226,"tunes":350},"p-managed-1",{"text":349},"Un harness géré ne se contente pas de supprimer une boucle while. L'actuelle API Agents d'OpenAI gère les sessions, l'orchestration, le compactage du contexte et la reprise sur incident. Les travaux d'Anthropic sur les agents gérés décrivent la même motivation générale : les harness intègrent des hypothèses sur le comportement des modèles, et ces hypothèses doivent évoluer à mesure que les modèles s'améliorent.",{},{"id":352,"data":353,"type":226,"tunes":355},"p-managed-2",{"text":354},"Le gain ne se résume donc pas à quelques lignes de code en moins. La plateforme peut faire évoluer le comportement à l'exécution, le traitement des contextes à long terme, la coordination des sous-agents et la reprise sur incident, sans obliger chaque équipe applicative à réimplémenter ces mécanismes.",{},{"id":357,"data":358,"type":368,"tunes":369},"managed-list",{"meta":359,"items":360,"style":367},{},[361,362,363,364,365,366],"Moins de code d'orchestration à la charge de l'application.","Gestion assurée des sessions durables.","Gestion assurée du compactage du contexte et de la reprise sur incident.","Un environnement d'exécution capable d'évoluer avec les capacités des modèles.","Adoption simplifiée des fonctionnalités natives de sous-agents et d'agents à longue durée de vie de la plateforme.","Charge opérationnelle potentiellement réduite pour les équipes dont la valeur ajoutée ne réside pas dans le harness lui-même.","unordered","list",{},{"id":371,"data":372,"type":42,"tunes":374},"h-managed-cost",{"text":373,"level":219},"Harness géré : ce à quoi vous renoncez",{},{"id":376,"data":377,"type":226,"tunes":379},"p-managed-cost-1",{"text":378},"Déléguer le harness revient également à déléguer une partie du contrôle. Votre application ne maîtrise plus chaque détail de l'itération, de la stratégie de contexte, de l'orchestration et de l'évolution du runtime. Une mise à jour de la plateforme peut améliorer le système, mais elle peut aussi modifier un comportement dont dépendait implicitement votre produit.",{},{"id":381,"data":382,"type":226,"tunes":384},"p-managed-cost-2",{"text":383},"Cela crée une exigence d'ingénierie d'une autre nature : des évaluations rigoureuses, des délimitations de produit explicites et une couche d'intégration qui empêche le comportement de la session gérée de devenir votre source de vérité métier.",{},{"id":386,"data":387,"type":297,"tunes":407},"managed-cost-table",{"content":388,"stretched":43,"withHeadings":14},[389,392,395,398,401,404],[390,391],"Compromis du harness géré","Ce que cela implique sur le plan opérationnel",[393,394],"Moins de contrôle sur la boucle","Vous ne pouvez pas supposer que chaque détail d'orchestration est défini par l'application",[396,397],"Évolution de la plateforme","Le comportement du harness peut s'améliorer ou changer sans modification de votre code",[399,400],"Cycle de vie propre au fournisseur","Les sessions, les événements et la sémantique de récupération intègrent le périmètre d'intégration",[402,403],"Périmètre d'observabilité","Les traces de la plateforme doivent être consolidées avec les données d'audit de l'application",[405,406],"Coût de portabilité","Migrer vers un autre harness ultérieurement peut exiger bien plus que de simples modifications de points de terminaison de modèle",{},{"id":409,"data":410,"type":42,"tunes":412},"h-self-env",{"text":411,"level":219},"Environnement d'exécution auto-hébergé : l'architecture intermédiaire",{},{"id":414,"data":415,"type":226,"tunes":417},"p-self-env-1",{"text":416},"Le modèle d'environnement auto-hébergé d'OpenAI est important, car il découple le calcul privé de la propriété du harness. La plateforme exécute toujours le harness Codex, tandis qu'un exécuteur fonctionne au sein de votre environnement et reçoit les commandes via une connexion sortante.",{},{"id":419,"data":420,"type":226,"tunes":422},"p-self-env-2",{"text":421},"Vous contrôlez le provisionnement, les fichiers, les dépendances, l'accès réseau et le nettoyage. Le harness peut ainsi interagir avec une infrastructure privée ou des logiciels personnalisés sans nécessiter le transfert de l'intégralité du runtime d'agent dans votre application.",{},{"id":424,"data":425,"type":226,"tunes":427},"p-self-env-3",{"text":426},"La contrepartie réside dans la responsabilité du cycle de vie. Votre application doit mapper les sessions aux ressources de calcul, éviter les provisionnements en double, reconnecter les environnements, coordonner l'arrêt et conserver les fichiers qui doivent subsister après la fermeture de l'environnement.",{},{"id":429,"data":430,"type":42,"tunes":432},"h-enough",{"text":431,"level":218},"Quand l'exécution auto-hébergée est suffisante",{},{"id":434,"data":435,"type":368,"tunes":444},"enough-list",{"meta":436,"items":437,"style":367},{},[438,439,440,441,442,443],"L'agent a besoin d'accéder à un VPC privé ou à un service interne.","L'agent a besoin de binaires, de paquets, de pilotes ou de logiciels système personnalisés.","La charge de travail doit s'exécuter sur du matériel ou des comptes cloud que vous contrôlez.","Les fichiers doivent rester à l'intérieur d'un environnement maîtrisé.","Vous avez besoin de votre propre fournisseur de bac à sable ou modèle d'isolation.","Vous souhaitez une orchestration gérée par la plateforme, mais une exécution contrôlée par votre infrastructure.",{},{"id":446,"data":447,"type":42,"tunes":449},"h-own-harness",{"text":448,"level":219},"Quand vous pourriez également avoir besoin de gérer le harness",{},{"id":451,"data":452,"type":226,"tunes":454},"p-own-1",{"text":453},"Gérer soi-même le harness devient justifié lorsque celui-ci fait partie intégrante de la différenciation de votre produit ou de vos contraintes techniques. La présentation actuelle du runtime d'OpenAI positionne le SDK Codex pour faire tourner le harness Codex sur l'infrastructure que vous opérez, tandis que Responses constitue l'option de niveau inférieur lorsque vous souhaitez prendre en charge vous-même la boucle de l'agent.",{},{"id":456,"data":457,"type":226,"tunes":459},"p-own-2",{"text":458},"L'enjeu consiste à identifier un besoin qui relève véritablement du plan de harness, et non du plan d'exécution.",{},{"id":461,"data":462,"type":297,"tunes":493},"requirements-table",{"content":463,"stretched":43,"withHeadings":14},[464,468,471,473,476,480,483,486,489],[465,466,467],"Exigence","Problème lié au plan d'exécution ou au plan de harness ?","Orientation probable",[469,315,470],"Accès à une base de données privée","Harness géré + environnement auto-hébergé peuvent suffire",[472,315,289],"Paquets Linux personnalisés",[474,315,475],"Matériel GPU sur mesure","Harness géré + environnement auto-hébergé là où c'est pris en charge",[477,478,479],"Logique personnalisée d'arrêt de l'agent","Plan de harness","Harness auto-opéré \u002F boucle sur mesure",[481,478,482],"Routage de modèles multi-fournisseurs à chaque étape","Boucle sur mesure ou harness que vous opérez",[484,478,485],"Algorithme personnalisé de compactage de contexte","Harness auto-opéré si le runtime géré ne permet pas de l'exposer",[487,478,488],"Sémantique d'orchestration déterministe exigée par le produit","Harness auto-opéré ou boucle sur mesure strictement contrôlée",[490,491,492],"Déploiement produit exclusivement local sans dépendance à un harness géré","Plan de harness + plan d'exécution","Runtime auto-opéré",{},{"id":495,"data":496,"type":42,"tunes":498},"h-control-test",{"text":497,"level":219},"Le test d'escalade du contrôle",{},{"id":500,"data":501,"type":226,"tunes":503},"p-control-intro",{"text":502},"Adoptez l'architecture la moins auto-hébergée possible qui réponde à l'exigence réelle. Augmentez le niveau de contrôle couche par couche.",{},{"id":505,"data":506,"type":531,"tunes":532},"control-flow",{"steps":507,"title":529,"orientation":530},[508,511,514,517,520,523,526],{"label":509,"description":510},"1. Commencer par le périmètre applicatif","Conservez la vérité métier, l'autorisation et les actions opérationnelles critiques dans votre propre produit, quel que soit le runtime d'agent.",{"label":512,"description":513},"2. Déterminer si l'agent a besoin d'une exécution locale","Si ce n'est pas le cas, un harness géré sans environnement dédié peut suffire.",{"label":515,"description":516},"3. Déterminer si les ressources de calcul hébergées par la plateforme sont acceptables","Si oui, utilisez un environnement géré et évitez la prise en charge inutile d'infrastructures.",{"label":518,"description":519},"4. Sinon, auto-héberger le plan d'exécution","Connectez votre propre environnement pour le réseau privé, les fichiers, les paquets ou le calcul maîtrisé.",{"label":521,"description":522},"5. Réévaluer la contrainte restante","Si l'exigence est désormais satisfaite, arrêtez-vous là. N'auto-hébergez pas le harness uniquement par souci de symétrie architecturale.",{"label":524,"description":525},"6. Passer à la gestion du harness uniquement pour des besoins liés au harness","Prenez en charge le harness Codex ou une boucle d'agent sur mesure lorsque l'orchestration, la stratégie de contexte, le cycle de vie ou la portabilité l'exigent réellement.",{"label":527,"description":528},"7. Prouver que le contrôle supplémentaire justifie les opérations additionnelles","Évaluez la fiabilité, la latence, le coût, la reprise sur panne, l'observabilité et la charge d'ingénierie avant de vous engager.","Test d'escalade du contrôle","auto","processFlow",{},{"id":534,"data":535,"type":42,"tunes":537},"h-ops",{"text":536,"level":219},"La charge opérationnelle croît de manière non linéaire lorsque vous gérez le harness",{},{"id":539,"data":540,"type":226,"tunes":542},"p-ops-1",{"text":541},"Une boucle auto-opérée semble simple dans une démo : appeler le modèle, inspecter l'appel d'outil, exécuter l'outil, ajouter le résultat, répéter. La production y ajoute l'état durable, les nouvelles tentatives, les événements en double, l'annulation, l'approbation, le dépassement de contexte, les expirations d'outils, les redémarrages de processus, la persistance des traces, la contre-pression, le travail simultané et la récupération après des effets secondaires partiels.",{},{"id":544,"data":545,"type":226,"tunes":547},"p-ops-2",{"text":546},"La recherche d'Anthropic sur les agents à exécution longue montre à plusieurs reprises que la conception du harness influe concrètement sur les performances. Leurs travaux sur le développement d'applications à exécution longue utilisent une planification explicite, des artefacts structurés et des agents évaluateurs, car les boucles naïves ont tendance à perdre leur progression ou à s'interrompre prématurément. Le harness relève donc de la logique de production, et non d'une simple plomberie technique.",{},{"id":549,"data":550,"type":297,"tunes":582},"ops-table",{"content":551,"stretched":43,"withHeadings":14},[552,555,558,561,564,567,570,573,576,579],[553,554],"Si vous gérez le harness, vous devez également répondre à","Pourquoi c'est important",[556,557],"État de session durable","Les processus redémarrent ; le travail à exécution longue doit reprendre correctement",[559,560],"Compactage du contexte","L'historique finit par dépasser le contexte de travail pratique",[562,563],"Idempotence des outils","Les nouvelles tentatives ne doivent pas répéter des effets secondaires irréversibles",[565,566],"Annulation et interruption","Les utilisateurs et les systèmes doivent pouvoir arrêter ou rediriger le travail",[568,569],"Récupération après exécution partielle","Un outil peut réussir même si l'agent ne reçoit jamais le résultat",[571,572],"Concurrence","Plusieurs tâches, workers ou agents peuvent accéder à un état partagé",[574,575],"Observabilité","Le résultat final est insuffisant pour déboguer les défaillances à l'exécution",[577,578],"Gestion des versions","Les mises à jour du harness peuvent modifier le comportement même lorsque les prompts restent constants",[580,581],"Évaluation","Les modifications à l'exécution nécessitent des tests de régression sur des trajectoires représentatives",{},{"id":584,"data":585,"type":42,"tunes":587},"h-security",{"text":586,"level":219},"Frontière de sécurité : auto-héberger le calcul ne rend pas automatiquement l'agent privé",{},{"id":589,"data":590,"type":226,"tunes":592},"p-sec-1",{"text":591},"Un environnement d'exécution auto-hébergé contrôle l'endroit où les commandes s'exécutent et où résident les fichiers, mais le harness géré et l'interaction avec le modèle franchissent toujours la frontière du service. Les équipes doivent donc cartographier explicitement les flux de données plutôt que d'utiliser « auto-hébergé » comme un raccourci pour une propriété de confidentialité.",{},{"id":594,"data":595,"type":226,"tunes":597},"p-sec-2",{"text":596},"L'exécuteur auto-hébergé d'OpenAI utilise des identifiants d'environnement restreints et des connexions sortantes. Il s'agit d'une isolation utile, mais votre application a toujours besoin de ses propres règles pour les secrets, l'exposition au réseau privé, l'isolation utilisateur-environnement, la rétention des fichiers, l'autorisation des outils et la classification des données.",{},{"id":599,"data":600,"type":234,"tunes":603},"sec-callout",{"body":601,"title":602,"variant":241},"\u003Cstrong>Le contrôle de l'infrastructure, l'isolation de l'exécution et les frontières de gouvernance des données sont liés mais ne sont pas identiques.\u003C\u002Fstrong> Décidez-en séparément.","Distinction importante",{},{"id":605,"data":606,"type":42,"tunes":608},"h-cost",{"text":607,"level":219},"Latence et coût : le contrôle peut déplacer les goulots d'étranglement plutôt que de les éliminer",{},{"id":610,"data":611,"type":226,"tunes":613},"p-cost-1",{"text":612},"L'auto-hébergement peut réduire certains coûts liés au chemin des données ou au démarrage de l'environnement, mais il peut également ajouter du temps de provisionnement, la gestion du cycle de vie WebSocket, des démarrages à froid, le nettoyage des bacs à sable, de l'infrastructure d'observabilité et une charge d'ingénierie. Un environnement géré peut coûter plus cher par unité de calcul tout en étant plus économique à exploiter à un volume faible ou irrégulier.",{},{"id":615,"data":616,"type":226,"tunes":618},"p-cost-2",{"text":617},"La véritable comparaison repose sur le coût total du système : utilisation du modèle et des outils, temps d'environnement, infrastructure, effort d'ingénierie, astreintes, reprise après incident et coût d'une itération plus lente.",{},{"id":620,"data":621,"type":42,"tunes":623},"h-matrix",{"text":622,"level":219},"Une matrice de décision pour la production",{},{"id":625,"data":626,"type":297,"tunes":668},"decision-matrix",{"content":627,"stretched":43,"withHeadings":14},[628,631,636,639,641,645,650,653,657,660,663],[629,284,289,630],"Contrainte","Harness \u002F boucle auto-opéré(e)",[632,633,634,635],"Chemin le plus rapide vers la production","Fort","Modéré","Le plus faible",[637,638,633,633],"Exécution sur réseau privé","Faible \u002F dépend de la conception de la connectivité",[640,634,633,633],"Paquets personnalisés \u002F logiciels système",[642,643,643,644],"Contrôle au niveau du harness","Faible","Le plus élevé",[646,647,648,649],"Charge opérationnelle","La plus faible","Moyenne","La plus élevée",[651,647,648,652],"Portabilité","Potentiellement la plus élevée si conçue intentionnellement",[654,655,655,656],"Contrôle de la stratégie de contexte","Géré par la plateforme","Contrôlé par l'application",[658,643,659,659],"Contrôle de l'infrastructure d'exécution","Élevé",[661,649,649,662],"Capacité à bénéficier des mises à jour du harness géré","Vous assumez l'adoption",[664,665,666,667],"Adéquation idéale","Équipes se différenciant au niveau du produit ou des outils","Équipes nécessitant du calcul privé\u002Fpersonnalisé sans gérer l'orchestration","Équipes dont la sémantique d'exécution constitue en elle-même une exigence",{},{"id":670,"data":671,"type":42,"tunes":673},"h-hybrid",{"text":672,"level":219},"L'hybride n'est pas un compromis — c'est souvent l'architecture la plus propre",{},{"id":675,"data":676,"type":226,"tunes":678},"p-hybrid-1",{"text":677},"Un harness géré avec une exécution auto-hébergée n'est pas « à moitié auto-hébergé ». C'est une séparation délibérée des responsabilités. La plateforme prend en charge la complexité du runtime d'agent à long horizon, tandis que votre infrastructure prend en charge l'exécution, la connectivité privée et les fichiers.",{},{"id":680,"data":681,"type":226,"tunes":683},"p-hybrid-2",{"text":682},"Cette frontière ressemble à d'autres architectures cloud : plan de contrôle géré, plan de données ou d'exécution contrôlé par le client. Le travail de conception essentiel consiste à définir le contrat entre eux — identité de session, identité d'environnement, identifiants, fichiers, permissions des outils, événements de cycle de vie et nettoyage.",{},{"id":685,"data":686,"type":691,"tunes":692},"ref-runtime",{"url":687,"title":688,"excerpt":689,"ctaLabel":690},"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Fopenai-agents-api-vs-agents-sdk-vs-responses-api-what-should-you-build-on-in-2026","OpenAI Agents API vs Agents SDK vs Responses API : sur quoi devriez-vous construire en 2026 ?","Une comparaison des surfaces d'agents actuelles d'OpenAI selon la responsabilité du runtime et les frontières de contrôle associées.","Lire la comparaison des runtimes","referralArticle",{},{"id":694,"data":695,"type":42,"tunes":697},"h-change",{"text":696,"level":219},"Qu'est-ce qui changerait cette réponse ?",{},{"id":699,"data":700,"type":226,"tunes":702},"p-change-1",{"text":701},"La recommandation changerait si les harness gérés offraient un contrôle d'exécution nettement plus étendu, si les harness auto-hébergés bénéficiaient de primitives de session durable et de reprise plus simples, ou si la réglementation imposait que l'intégralité de la boucle de l'agent et de l'interaction avec le modèle demeure au sein d'une infrastructure que vous exploitez.",{},{"id":704,"data":705,"type":226,"tunes":707},"p-change-2",{"text":706},"Cela évolue également avec les capacités des modèles. Anthropic souligne explicitement que les hypothèses relatives au harness peuvent devenir obsolètes à mesure que les modèles s'améliorent. Un mécanisme de contrôle indispensable aujourd'hui peut s'avérer superflu plus tard, tandis qu'une nouvelle capacité de modèle peut engendrer une nouvelle exigence de gouvernance.",{},{"id":709,"data":710,"type":42,"tunes":712},"h-limit",{"text":711,"level":219},"Limites",{},{"id":714,"data":715,"type":226,"tunes":717},"p-limit-1",{"text":716},"Cet article distingue les responsabilités architecturales ; il ne prétend pas qu'un modèle d'hébergement soit universellement plus sécurisé, plus économique ou plus fiable. Ces résultats dépendent de l'implémentation, de la charge de travail, des exigences de conformité, des compétences de l'équipe et du comportement du fournisseur.",{},{"id":719,"data":720,"type":226,"tunes":722},"p-limit-2",{"text":721},"L'API OpenAI Agents est encore en version bêta publique, et les produits d'agents gérés proposés par différents fournisseurs présentent des frontières variées. Le modèle à deux plans vise à faciliter la comparaison de ces architectures sans supposer que chaque fournisseur emploie les mêmes termes.",{},{"id":724,"data":725,"type":42,"tunes":727},"h-conclusion",{"text":726,"level":219},"Conclusion",{},{"id":729,"data":730,"type":226,"tunes":732},"p-conclusion-1",{"text":731},"La question pertinente n'est pas : « Devrions-nous auto-héberger l'agent ? » C'est plutôt : quel plan devons-nous réellement contrôler ?",{},{"id":734,"data":735,"type":226,"tunes":737},"p-conclusion-2",{"text":736},"Si l'exigence porte sur du calcul privé, des packages personnalisés, des fichiers locaux ou l'accès à un réseau interne, auto-hébergez le plan d'exécution et conservez le harness géré. Si l'exigence concerne la sémantique d'orchestration, la stratégie de contexte, le contrôle du fournisseur ou le cycle de vie du runtime lui-même, alors la prise en charge du harness peut être justifiée. N'augmentez le niveau de contrôle que dans la mesure requise par vos besoins.",{},{"id":739,"data":740,"type":42,"tunes":742},"h-faq",{"text":741,"level":219},"FAQ",{},{"id":744,"data":745,"type":744,"tunes":768},"faq",{"items":746,"title":767},[747,751,755,759,763],{"id":748,"answer":749,"question":750},"faq1","Pas entièrement. OpenAI exécute toujours le harness géré Codex, tandis que votre infrastructure héberge l'environnement d'exécution utilisé pour les commandes, les fichiers et les outils locaux.","Un environnement auto-hébergé avec l'API OpenAI Agents constitue-t-il un agent auto-hébergé ?",{"id":752,"answer":753,"question":754},"faq2","Il suffit souvent lorsque vos exigences concernent l'accès à un réseau privé, des packages personnalisés, des fichiers contrôlés, du matériel spécifique ou des politiques d'infrastructure, plutôt que le contrôle direct de la boucle de l'agent.","Quand un environnement auto-hébergé est-il suffisant ?",{"id":756,"answer":757,"question":758},"faq3","Envisagez la prise en charge du harness lorsque vous avez besoin d'une sémantique d'orchestration personnalisée, d'une gestion sur mesure du contexte, d'un routage entre fournisseurs, d'un comportement d'exécution strictement local ou de toute autre exigence propre à la boucle de l'agent plutôt qu'à l'environnement d'exécution.","Quand devrais-je exécuter le harness moi-même ?",{"id":760,"answer":761,"question":762},"faq4","Non. Il modifie simplement les composants que vous contrôlez. La sécurité dépend du flux de données, de l'isolation, des identifiants, des autorisations des outils, de la configuration réseau, de la journalisation et de la conception du cycle de vie sur l'ensemble des composants.","L'auto-hébergement améliore-t-il automatiquement la sécurité ?",{"id":764,"answer":765,"question":766},"faq5","Vous devenez responsable de l'état persistant, de la gestion du contexte, des nouvelles tentatives, de l'annulation, de la récupération après sinistre, de l'observabilité, de la concurrence, des montées de version du runtime et de l'évaluation des modifications apportées au harness.","Quel est le principal coût opérationnel lié à la prise en charge de la boucle de l'agent ?","Harness gérés et runtimes d'agents auto-hébergés",{},{"id":770,"data":771,"type":42,"tunes":773},"h-glossary",{"text":772,"level":219},"Glossaire",{},{"id":775,"data":776,"type":775,"tunes":800},"glossary",{"title":777,"entries":778},"Termes clés d'architecture",[779,782,785,789,793,797],{"term":310,"anchor":780,"definition":781},"harness-plane","La couche du runtime d'agent responsable de l'exécution de la boucle, de l'orchestration, de la gestion du contexte, de la continuité des sessions et de la reprise après incident.",{"term":315,"anchor":783,"definition":784},"execution-plane","L'environnement dans lequel les commandes sont exécutées, le code est lancé et les fichiers, packages et ressources locales sont consultés.",{"term":786,"anchor":787,"definition":788},"Harness géré","managed-harness","Un harness d'agent dont le runtime, la gestion des sessions et l'orchestration sont opérés par un fournisseur de plateforme.",{"term":790,"anchor":791,"definition":792},"Environnement auto-hébergé","self-hosted-environment","Ressources de calcul et fichiers administrés par le propriétaire de l'application, tandis qu'un harness d'agent distinct peut demeurer géré ailleurs.",{"term":794,"anchor":795,"definition":796},"Harness auto-opéré","self-operated-harness","Un runtime d'agent dont la boucle, l'hébergement, la stratégie de contexte et le cycle de vie sont gérés par l'équipe en charge de l'application.",{"term":529,"anchor":798,"definition":799},"control-escalation-test","Une méthode décisionnelle consistant à n'accroître la responsabilité sur l'infrastructure et le runtime que lorsqu'une exigence ne peut pas être satisfaite à une couche de contrôle inférieure.",{},{"id":802,"data":803,"type":42,"tunes":805},"h-sources",{"text":804,"level":219},"Sources primaires et lectures complémentaires",{},{"id":807,"data":808,"type":814,"tunes":815},"src-openai-architecture",{"link":809,"meta":810},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Farchitecture",{"image":811,"title":812,"description":813},{"url":312},"OpenAI — Architecture de l'API Agents","Séparation actuelle entre le harness hébergé, l'environnement d'exécution et le serveur applicatif.","linkTool",{},{"id":817,"data":818,"type":814,"tunes":824},"src-openai-selfhosted",{"link":819,"meta":820},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Fenvironments\u002Fself-hosted",{"image":821,"title":822,"description":823},{"url":312},"OpenAI — Sandboxes auto-hébergées","Comment les environnements d'exécution gérés par le client se connectent au harness géré et quelles responsabilités liées au cycle de vie incombent à l'application.",{},{"id":826,"data":827,"type":814,"tunes":833},"src-openai-lifecycle",{"link":828,"meta":829},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Fenvironments\u002Flifecycle",{"image":830,"title":831,"description":832},{"url":312},"OpenAI — Cycle de vie des sandboxes","Provisionnement, reconnexion, prévention des doublons d'environnements et responsabilités de nettoyage pour le calcul auto-hébergé.",{},{"id":835,"data":836,"type":814,"tunes":842},"src-openai-runtime",{"link":837,"meta":838},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents",{"image":839,"title":840,"description":841},{"url":312},"OpenAI — Options d'environnements d'exécution pour agents","Comparaison actuelle entre l'API Agents, le SDK Codex et l'API Responses selon les responsabilités gérées versus opérées par l'application.",{},{"id":844,"data":845,"type":814,"tunes":851},"src-openai-platform",{"link":846,"meta":847},"https:\u002F\u002Fdevelopers.openai.com\u002Fblog\u002Fcodex-as-a-platform",{"image":848,"title":849,"description":850},{"url":312},"OpenAI — Codex en tant que plateforme","Harness open source Codex et couches d'intégration pour les applications nécessitant un contrôle plus poussé du runtime.",{},{"id":853,"data":854,"type":814,"tunes":860},"src-anthropic-managed",{"link":855,"meta":856},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fmanaged-agents",{"image":857,"title":858,"description":859},{"url":312},"Anthropic — Scaling Managed Agents: Decoupling the brain from the hands","Analyse de l'architecture des agents gérés et des raisons pour lesquelles les hypothèses de conception du harness doivent évoluer avec les capacités des modèles.",{},{"id":862,"data":863,"type":814,"tunes":869},"src-anthropic-harness",{"link":864,"meta":865},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"image":866,"title":867,"description":868},{"url":312},"Anthropic — Des harnais efficaces pour les agents à longue durée d'exécution","Enseignements d'ingénierie montrant que les performances des agents à longue durée d'exécution dépendent considérablement de la conception du harnais et des artefacts persistants.",{},"2.31","“Agent auto-hébergé” peut désigner des architectures très différentes. Ce guide distingue le harnais géré, l'environnement d'exécution auto-hébergé et la boucle d'agent entièrement auto-opérée—et montre de quelle frontière de contrôle les équipes ont réellement besoin.","\u002Fuploads\u002F2026\u002F09\u002Fmanaged-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose-1790352403475-kj10jh.webp","managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose-1790352403475-kj10jh","PUBLISHED","2026-09-25T12:05:00.000Z","2026-09-25T16:05:38.279Z","2026-09-25T19:49:39.069Z",{"en":879,"de":880,"sr":881,"es":882,"fr":883,"it":884,"ru":885,"zh":886},"\u002Fblog\u002Fmanaged-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","\u002Fde\u002Fblog\u002Fmanaged-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","\u002Fsr\u002Fblog\u002Fmanaged-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","\u002Fes\u002Fblog\u002Fmanaged-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","\u002Ffr\u002Fblog\u002Fmanaged-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","\u002Fit\u002Fblog\u002Fmanaged-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","\u002Fru\u002Fblog\u002Fmanaged-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","\u002Fzh\u002Fblog\u002Fmanaged-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose",[888,892,896],{"id":889,"name":890,"slug":891},89,"Harnais d’évaluation","evaluation-harness",{"id":893,"name":894,"slug":895},78,"Boucle d’optimisation","optimization-loop",{"id":897,"name":898,"slug":899},91,"Monitoring (qualité, dérive)","monitoring",{"id":901,"login":902,"email":903,"displayName":904},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[906,1451],{"lang":907,"title":908,"content":909,"contentJson":910,"excerpt":1450},"en","Managed Agent Harness vs Self-Hosted Agent Loop: What You Gain, What You Lose","{\"time\":1790352404508,\"blocks\":[{\"id\":\"-PDI7SJcNl\",\"type\":\"tableOfContents\",\"data\":{\"title\":\"Contents\",\"minLevel\":2,\"maxLevel\":3},\"tunes\":{}},{\"id\":\"intro\",\"type\":\"paragraph\",\"data\":{\"text\":\"The phrase “self-hosted agent” now hides at least three different architectures. You can use a managed harness with OpenAI-hosted compute, a managed harness connected to infrastructure you operate, or run the harness and agent loop yourself. Those choices have very different implications for control, recovery, context management, security, latency, and operational burden.\"},\"tunes\":{}},{\"id\":\"direct\",\"type\":\"callout\",\"data\":{\"variant\":\"info\",\"title\":\"Direct answer\",\"body\":\"\u003Cstrong>Do not choose between “managed” and “self-hosted” as if they were one binary decision.\u003C\u002Fstrong> Separate the \u003Cstrong>harness plane\u003C\u002Fstrong> from the \u003Cstrong>execution plane\u003C\u002Fstrong>. A managed harness can still use self-hosted compute. A self-hosted environment gives you control over files, packages, network access and execution without requiring you to own the agent loop. Run the harness yourself only when you need control over orchestration, lifecycle, model-routing assumptions, or runtime behaviour that a managed harness cannot expose.\"},\"tunes\":{}},{\"id\":\"current\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"Current as of 25 September 2026\",\"body\":\"OpenAI's Agents API is in public beta and its architecture can evolve. Current documentation separates the OpenAI-hosted Codex harness from the execution environment and explicitly supports self-hosted environments. OpenAI also exposes the Codex harness separately through the Codex SDK for infrastructure you operate.\"},\"tunes\":{}},{\"id\":\"note\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"The model used in this article\",\"body\":\"The Harness Plane \u002F Execution Plane model and Control Escalation Test below are practical architecture tools proposed here. They are not formal vendor terminology.\"},\"tunes\":{}},{\"id\":\"h-mistake\",\"type\":\"header\",\"data\":{\"text\":\"The mistake: treating self-hosting as one decision\",\"level\":2},\"tunes\":{}},{\"id\":\"p-mistake-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"In conventional software, “self-hosted” usually means the application runs on infrastructure you control. Agent systems complicate that definition because the runtime can be split. The model-and-tool loop can run in one place while code execution, files and private-network access happen somewhere else.\"},\"tunes\":{}},{\"id\":\"p-mistake-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"OpenAI's current Agents API architecture makes this split explicit: OpenAI runs the harness, while the execution environment can be absent, OpenAI-hosted, or self-hosted. A self-hosted environment therefore does not mean the agent loop is self-hosted.\"},\"tunes\":{}},{\"id\":\"p-mistake-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"This distinction matters because many teams choose a more complex runtime than they need. They want private-network access or custom packages, conclude that the entire agent must be self-hosted, and accidentally take ownership of context management, orchestration, recovery and lifecycle that could have remained managed.\"},\"tunes\":{}},{\"id\":\"h-three\",\"type\":\"header\",\"data\":{\"text\":\"Three architectures that are often called “self-hosted”\",\"level\":2},\"tunes\":{}},{\"id\":\"three-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Architecture\",\"Who runs the harness?\",\"Where code\u002Ffiles execute\",\"What you primarily own\"],[\"Managed harness + managed environment\",\"Platform\",\"Platform-hosted sandbox\",\"Application, tools, product logic, authorization\"],[\"Managed harness + self-hosted environment\",\"Platform\",\"Your container, VM, laptop, private cloud or other compute\",\"Environment provisioning, networking, files and lifecycle; platform still owns harness\"],[\"Self-operated harness \u002F agent loop\",\"You\",\"Your chosen environment\",\"Harness process, orchestration, context strategy, hosting, recovery, execution and application lifecycle\"]]},\"tunes\":{}},{\"id\":\"h-two-plane\",\"type\":\"header\",\"data\":{\"text\":\"The two-plane model\",\"level\":2},\"tunes\":{}},{\"id\":\"plane-comparison\",\"type\":\"comparison\",\"data\":{\"title\":\"Separate the harness plane from the execution plane\",\"layout\":\"table\",\"columns\":[{\"id\":\"plane\",\"label\":\"Plane\"},{\"id\":\"owns\",\"label\":\"What it owns\"},{\"id\":\"questions\",\"label\":\"Questions to ask\"}],\"rows\":[{\"id\":\"harness\",\"label\":\"Harness plane\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"execution\",\"label\":\"Execution plane\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"application\",\"label\":\"Application plane\",\"values\":[\"\",\"\",\"\"]}]},\"tunes\":{}},{\"id\":\"key-consequence\",\"type\":\"callout\",\"data\":{\"variant\":\"success\",\"title\":\"Key architectural consequence\",\"body\":\"You can self-host the \u003Cstrong>execution plane\u003C\u002Fstrong> without self-hosting the \u003Cstrong>harness plane\u003C\u002Fstrong>. That is often the right middle ground.\"},\"tunes\":{}},{\"id\":\"h-managed\",\"type\":\"header\",\"data\":{\"text\":\"Managed harness: what you actually gain\",\"level\":2},\"tunes\":{}},{\"id\":\"p-managed-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A managed harness removes more than a while-loop. OpenAI's current Agents API manages sessions, orchestration, context compaction and recovery. Anthropic's work on managed agents describes the same broader motivation: harnesses contain assumptions about model behaviour, and those assumptions need to evolve as models improve.\"},\"tunes\":{}},{\"id\":\"p-managed-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"That means the benefit is not only fewer lines of code. The platform can update runtime behaviour, long-horizon context handling, subagent coordination and recovery without requiring every application team to rebuild those mechanisms.\"},\"tunes\":{}},{\"id\":\"managed-list\",\"type\":\"list\",\"data\":{\"style\":\"unordered\",\"meta\":{},\"items\":[\"Less application-owned orchestration code.\",\"Managed durable-session behaviour.\",\"Managed context compaction and recovery.\",\"A runtime that can evolve with model capabilities.\",\"Simpler adoption of platform-native subagent and long-running-agent features.\",\"Potentially lower operational burden for teams whose differentiation is not the harness itself.\"]},\"tunes\":{}},{\"id\":\"h-managed-cost\",\"type\":\"header\",\"data\":{\"text\":\"Managed harness: what you give up\",\"level\":2},\"tunes\":{}},{\"id\":\"p-managed-cost-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Delegating the harness also delegates some control. Your application no longer owns every detail of iteration, context strategy, orchestration and runtime evolution. A platform update can improve the system, but it can also change behaviour your product implicitly depended on.\"},\"tunes\":{}},{\"id\":\"p-managed-cost-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"This creates a different kind of engineering requirement: strong evals, explicit product boundaries and an integration layer that prevents managed-session behaviour from becoming your business source of truth.\"},\"tunes\":{}},{\"id\":\"managed-cost-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Managed-harness trade-off\",\"What it means operationally\"],[\"Less loop control\",\"You cannot assume every orchestration detail is application-defined\"],[\"Platform evolution\",\"Harness behaviour can improve or change without your code changing\"],[\"Vendor-specific lifecycle\",\"Sessions, events and recovery semantics become part of the integration surface\"],[\"Observability boundary\",\"Platform traces must be joined with application audit data\"],[\"Portability cost\",\"Moving to another harness later may require more than swapping model endpoints\"]]},\"tunes\":{}},{\"id\":\"h-self-env\",\"type\":\"header\",\"data\":{\"text\":\"Self-hosted execution environment: the middle architecture\",\"level\":2},\"tunes\":{}},{\"id\":\"p-self-env-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"OpenAI's self-hosted environment model is important because it decouples private compute from harness ownership. The platform still runs the Codex harness, while an executor runs inside your environment and receives commands over an outbound connection.\"},\"tunes\":{}},{\"id\":\"p-self-env-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"You control provisioning, files, dependencies, network access and cleanup. The harness can therefore work against private infrastructure or custom software without requiring the entire agent runtime to move into your application.\"},\"tunes\":{}},{\"id\":\"p-self-env-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The cost is lifecycle responsibility. Your application must map sessions to compute, avoid duplicate provisioning, reconnect environments, coordinate shutdown and preserve any files that must outlive the environment.\"},\"tunes\":{}},{\"id\":\"h-enough\",\"type\":\"header\",\"data\":{\"text\":\"When self-hosted execution is enough\",\"level\":3},\"tunes\":{}},{\"id\":\"enough-list\",\"type\":\"list\",\"data\":{\"style\":\"unordered\",\"meta\":{},\"items\":[\"The agent needs access to a private VPC or internal service.\",\"The agent needs custom binaries, packages, drivers or system software.\",\"The workload must run on hardware or cloud accounts you control.\",\"Files must remain inside a controlled environment.\",\"You need your own sandbox provider or isolation model.\",\"You want platform-managed orchestration but infrastructure-controlled execution.\"]},\"tunes\":{}},{\"id\":\"h-own-harness\",\"type\":\"header\",\"data\":{\"text\":\"When you may need to own the harness too\",\"level\":2},\"tunes\":{}},{\"id\":\"p-own-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Owning the harness becomes justified when the harness itself is part of your product differentiation or constraint set. OpenAI's current runtime overview positions the Codex SDK for running the Codex harness in infrastructure you operate, while Responses is the lower-level option when you want to own the agent loop yourself.\"},\"tunes\":{}},{\"id\":\"p-own-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The key is to identify a requirement that genuinely lives in the harness plane, not the execution plane.\"},\"tunes\":{}},{\"id\":\"requirements-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Requirement\",\"Execution-plane problem or harness-plane problem?\",\"Likely direction\"],[\"Private database access\",\"Execution plane\",\"Managed harness + self-hosted environment may be sufficient\"],[\"Custom Linux packages\",\"Execution plane\",\"Managed harness + self-hosted environment\"],[\"Custom GPU hardware\",\"Execution plane\",\"Managed harness + self-hosted environment where supported\"],[\"Custom agent stopping logic\",\"Harness plane\",\"Self-operated harness \u002F custom loop\"],[\"Cross-provider model routing at every step\",\"Harness plane\",\"Custom loop or harness you operate\"],[\"Custom context-compaction algorithm\",\"Harness plane\",\"Self-operated harness if the managed runtime cannot expose it\"],[\"Deterministic orchestration semantics required by product\",\"Harness plane\",\"Self-operated harness or tightly controlled custom loop\"],[\"Local-only product deployment with no managed harness dependency\",\"Harness plane + execution plane\",\"Self-operated runtime\"]]},\"tunes\":{}},{\"id\":\"h-control-test\",\"type\":\"header\",\"data\":{\"text\":\"The Control Escalation Test\",\"level\":2},\"tunes\":{}},{\"id\":\"p-control-intro\",\"type\":\"paragraph\",\"data\":{\"text\":\"Use the least self-hosted architecture that satisfies the actual requirement. Escalate control one layer at a time.\"},\"tunes\":{}},{\"id\":\"control-flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"Control Escalation Test\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Start with the application boundary\",\"description\":\"Keep domain truth, authorization and consequential business actions in your own product regardless of agent runtime.\"},{\"label\":\"2. Ask whether the agent needs local execution\",\"description\":\"If not, a managed harness without a dedicated environment may be enough.\"},{\"label\":\"3. Ask whether platform-hosted compute is acceptable\",\"description\":\"If yes, use a managed environment and avoid unnecessary infrastructure ownership.\"},{\"label\":\"4. If not, self-host the execution plane\",\"description\":\"Connect your own environment for private network, files, packages or controlled compute.\"},{\"label\":\"5. Re-evaluate the remaining constraint\",\"description\":\"If the requirement is now satisfied, stop. Do not self-host the harness simply for architectural symmetry.\"},{\"label\":\"6. Escalate to harness ownership only for harness requirements\",\"description\":\"Own the Codex harness or custom agent loop when orchestration, context strategy, lifecycle or portability genuinely requires it.\"},{\"label\":\"7. Prove the extra control is worth the extra operations\",\"description\":\"Benchmark reliability, latency, cost, recovery, observability and engineering burden before committing.\"}]},\"tunes\":{}},{\"id\":\"h-ops\",\"type\":\"header\",\"data\":{\"text\":\"Operational burden grows nonlinearly when you own the harness\",\"level\":2},\"tunes\":{}},{\"id\":\"p-ops-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A self-operated loop sounds simple in a demo: call model, inspect tool call, execute tool, append result, repeat. Production adds durable state, retries, duplicate events, cancellation, approval, context overflow, tool timeouts, process restarts, trace persistence, backpressure, concurrent work and recovery after partial side effects.\"},\"tunes\":{}},{\"id\":\"p-ops-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Long-running-agent research from Anthropic repeatedly shows that harness design materially affects performance. Their work on long-running application development uses explicit planning, structured artifacts and evaluator agents because naïve loops tend to lose progress or terminate prematurely. The harness is therefore production logic, not plumbing.\"},\"tunes\":{}},{\"id\":\"ops-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"If you own the harness, you also need an answer for\",\"Why it matters\"],[\"Durable session state\",\"Processes restart; long-running work must resume correctly\"],[\"Context compaction\",\"History eventually exceeds practical working context\"],[\"Tool idempotency\",\"Retries must not repeat irreversible side effects\"],[\"Cancellation and interruption\",\"Users and systems need to stop or redirect work\"],[\"Recovery after partial execution\",\"A tool may succeed even if the agent never receives the result\"],[\"Concurrency\",\"Multiple tasks, workers or agents can touch shared state\"],[\"Observability\",\"Final output is insufficient for debugging runtime failures\"],[\"Versioning\",\"Harness updates can change behaviour even when prompts remain constant\"],[\"Evaluation\",\"Runtime changes need regression testing across representative trajectories\"]]},\"tunes\":{}},{\"id\":\"h-security\",\"type\":\"header\",\"data\":{\"text\":\"Security boundary: self-hosting compute does not automatically make the agent private\",\"level\":2},\"tunes\":{}},{\"id\":\"p-sec-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A self-hosted execution environment controls where commands run and where files live, but the managed harness and model interaction still cross the service boundary. Teams should therefore map data flows explicitly rather than use “self-hosted” as shorthand for a privacy property.\"},\"tunes\":{}},{\"id\":\"p-sec-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"OpenAI's self-hosted executor uses restricted environment credentials and outbound connections. That is useful isolation, but your application still needs its own rules for secrets, private-network exposure, user-to-environment isolation, file retention, tool authorization and data classification.\"},\"tunes\":{}},{\"id\":\"sec-callout\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"Important distinction\",\"body\":\"\u003Cstrong>Infrastructure control, execution isolation and data-governance boundaries are related but not identical.\u003C\u002Fstrong> Decide them separately.\"},\"tunes\":{}},{\"id\":\"h-cost\",\"type\":\"header\",\"data\":{\"text\":\"Latency and cost: control can move bottlenecks rather than remove them\",\"level\":2},\"tunes\":{}},{\"id\":\"p-cost-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Self-hosting may reduce some data-path or environment-startup costs, but it can also add provisioning time, WebSocket lifecycle, cold starts, sandbox cleanup, observability infrastructure and engineering overhead. A managed environment may cost more per unit of compute while being cheaper to operate at low or irregular volume.\"},\"tunes\":{}},{\"id\":\"p-cost-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The correct comparison is total system cost: model and tool usage, environment time, infrastructure, engineering effort, on-call burden, failure recovery and the cost of slower iteration.\"},\"tunes\":{}},{\"id\":\"h-matrix\",\"type\":\"header\",\"data\":{\"text\":\"A production decision matrix\",\"level\":2},\"tunes\":{}},{\"id\":\"decision-matrix\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Constraint\",\"Managed harness + managed environment\",\"Managed harness + self-hosted environment\",\"Self-operated harness \u002F loop\"],[\"Fastest path to production\",\"Strong\",\"Moderate\",\"Weakest\"],[\"Private-network execution\",\"Weak \u002F depends on connectivity design\",\"Strong\",\"Strong\"],[\"Custom packages \u002F system software\",\"Moderate\",\"Strong\",\"Strong\"],[\"Harness-level control\",\"Low\",\"Low\",\"Highest\"],[\"Operational burden\",\"Lowest\",\"Medium\",\"Highest\"],[\"Portability\",\"Lowest\",\"Medium\",\"Potentially highest if intentionally designed\"],[\"Context strategy control\",\"Platform-managed\",\"Platform-managed\",\"Application-controlled\"],[\"Execution infrastructure control\",\"Low\",\"High\",\"High\"],[\"Ability to benefit from managed harness updates\",\"Highest\",\"Highest\",\"You own adoption\"],[\"Best fit\",\"Teams differentiating at product\u002Ftool layer\",\"Teams needing private\u002Fcustom compute without owning orchestration\",\"Teams whose runtime semantics are themselves a requirement\"]]},\"tunes\":{}},{\"id\":\"h-hybrid\",\"type\":\"header\",\"data\":{\"text\":\"Hybrid is not a compromise — it is often the clean architecture\",\"level\":2},\"tunes\":{}},{\"id\":\"p-hybrid-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A managed harness with self-hosted execution is not “half self-hosted.” It is an intentional separation of concerns. The platform owns long-horizon agent-runtime complexity, while your infrastructure owns execution, private connectivity and files.\"},\"tunes\":{}},{\"id\":\"p-hybrid-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"That boundary resembles other cloud architectures: managed control plane, customer-controlled data or execution plane. The important design work is defining the contract between them — session identity, environment identity, credentials, files, tool permissions, lifecycle events and cleanup.\"},\"tunes\":{}},{\"id\":\"ref-runtime\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fblog\u002Fopenai-agents-api-vs-agents-sdk-vs-responses-api-what-should-you-build-on-in-2026\",\"title\":\"OpenAI Agents API vs Agents SDK vs Responses API: What Should You Build On in 2026?\",\"excerpt\":\"A runtime-ownership comparison of OpenAI's current agent surfaces and where each control boundary belongs.\",\"ctaLabel\":\"Read the runtime comparison\"},\"tunes\":{}},{\"id\":\"h-change\",\"type\":\"header\",\"data\":{\"text\":\"What would change this answer?\",\"level\":2},\"tunes\":{}},{\"id\":\"p-change-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The recommendation changes if managed harnesses expose substantially more runtime control, if self-hosted harnesses gain simpler durable-session and recovery primitives, or if regulation requires the entire agent loop and model interaction to remain inside infrastructure you operate.\"},\"tunes\":{}},{\"id\":\"p-change-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"It also changes with model capability. Anthropic explicitly notes that harness assumptions can become stale as models improve. A control mechanism that is essential today may become unnecessary later, while a new model capability can create a new governance requirement.\"},\"tunes\":{}},{\"id\":\"h-limit\",\"type\":\"header\",\"data\":{\"text\":\"Limitations\",\"level\":2},\"tunes\":{}},{\"id\":\"p-limit-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"This article separates architecture responsibilities; it does not claim that one hosting model is universally more secure, cheaper or more reliable. Those outcomes depend on implementation, workload, compliance requirements, team skill and provider behaviour.\"},\"tunes\":{}},{\"id\":\"p-limit-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The OpenAI Agents API is still in public beta, and managed-agent products from different vendors expose different boundaries. The two-plane model is intended to help compare those architectures without assuming that every vendor uses identical terms.\"},\"tunes\":{}},{\"id\":\"h-conclusion\",\"type\":\"header\",\"data\":{\"text\":\"Conclusion\",\"level\":2},\"tunes\":{}},{\"id\":\"p-conclusion-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The useful question is not “Should we self-host the agent?” It is: Which plane do we actually need to control?\"},\"tunes\":{}},{\"id\":\"p-conclusion-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"If the requirement is private compute, custom packages, local files or internal-network access, self-host the execution plane and keep the harness managed. If the requirement is orchestration semantics, context strategy, provider control or runtime lifecycle itself, then harness ownership may be justified. Escalate control only as far as the requirement demands.\"},\"tunes\":{}},{\"id\":\"h-faq\",\"type\":\"header\",\"data\":{\"text\":\"FAQ\",\"level\":2},\"tunes\":{}},{\"id\":\"faq\",\"type\":\"faq\",\"data\":{\"title\":\"Managed harnesses and self-hosted agent runtimes\",\"items\":[{\"id\":\"faq1\",\"question\":\"Is an OpenAI Agents API self-hosted environment a self-hosted agent?\",\"answer\":\"Not completely. OpenAI still runs the managed Codex harness, while your infrastructure runs the execution environment used for commands, files and local tools.\"},{\"id\":\"faq2\",\"question\":\"When is a self-hosted environment enough?\",\"answer\":\"It is often enough when your requirements concern private-network access, custom packages, controlled files, specific hardware or infrastructure policy rather than control over the agent loop itself.\"},{\"id\":\"faq3\",\"question\":\"When should I run the harness myself?\",\"answer\":\"Consider harness ownership when you need custom orchestration semantics, custom context management, provider routing, local-only runtime behaviour, or another requirement that lives in the agent loop rather than the execution environment.\"},{\"id\":\"faq4\",\"question\":\"Does self-hosting automatically improve security?\",\"answer\":\"No. It changes which components you control. Security depends on data flow, isolation, credentials, tool permissions, networking, logging and lifecycle design across all components.\"},{\"id\":\"faq5\",\"question\":\"What is the main operational cost of owning the agent loop?\",\"answer\":\"You become responsible for durable state, context management, retries, cancellation, recovery, observability, concurrency, runtime upgrades and evaluation of harness changes.\"}]},\"tunes\":{}},{\"id\":\"h-glossary\",\"type\":\"header\",\"data\":{\"text\":\"Glossary\",\"level\":2},\"tunes\":{}},{\"id\":\"glossary\",\"type\":\"glossary\",\"data\":{\"title\":\"Key architecture terms\",\"entries\":[{\"term\":\"Harness plane\",\"definition\":\"The agent-runtime layer responsible for loop execution, orchestration, context management, session continuity and recovery.\",\"anchor\":\"harness-plane\"},{\"term\":\"Execution plane\",\"definition\":\"The environment in which commands run, code executes and files, packages and local resources are accessed.\",\"anchor\":\"execution-plane\"},{\"term\":\"Managed harness\",\"definition\":\"An agent harness whose runtime, session management and orchestration are operated by a platform provider.\",\"anchor\":\"managed-harness\"},{\"term\":\"Self-hosted environment\",\"definition\":\"Compute and files operated by the application owner while a separate agent harness may remain managed elsewhere.\",\"anchor\":\"self-hosted-environment\"},{\"term\":\"Self-operated harness\",\"definition\":\"An agent runtime whose loop, hosting, context strategy and lifecycle are operated by the application team.\",\"anchor\":\"self-operated-harness\"},{\"term\":\"Control Escalation Test\",\"definition\":\"A decision method that increases infrastructure and runtime ownership only when a requirement cannot be satisfied at a lower-control layer.\",\"anchor\":\"control-escalation-test\"}]},\"tunes\":{}},{\"id\":\"h-sources\",\"type\":\"header\",\"data\":{\"text\":\"Primary sources and further reading\",\"level\":2},\"tunes\":{}},{\"id\":\"src-openai-architecture\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Farchitecture\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Agents API Architecture\",\"description\":\"Current separation between the hosted harness, execution environment and application server.\"}},\"tunes\":{}},{\"id\":\"src-openai-selfhosted\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Fenvironments\u002Fself-hosted\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Self-hosted sandboxes\",\"description\":\"How customer-operated execution environments connect to the managed harness and which lifecycle responsibilities remain with the application.\"}},\"tunes\":{}},{\"id\":\"src-openai-lifecycle\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Fenvironments\u002Flifecycle\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Sandbox lifecycle\",\"description\":\"Provisioning, reconnection, duplicate-environment prevention and cleanup responsibilities for self-hosted compute.\"}},\"tunes\":{}},{\"id\":\"src-openai-runtime\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Agent runtime options\",\"description\":\"Current comparison of Agents API, Codex SDK and Responses API by managed versus application-operated responsibilities.\"}},\"tunes\":{}},{\"id\":\"src-openai-platform\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fblog\u002Fcodex-as-a-platform\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Codex as a platform\",\"description\":\"Open-source Codex harness and integration layers for applications that want deeper runtime control.\"}},\"tunes\":{}},{\"id\":\"src-anthropic-managed\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fmanaged-agents\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Anthropic — Scaling Managed Agents: Decoupling the brain from the hands\",\"description\":\"Discussion of managed-agent architecture and why harness assumptions need to evolve with model capability.\"}},\"tunes\":{}},{\"id\":\"src-anthropic-harness\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Anthropic — Effective harnesses for long-running agents\",\"description\":\"Engineering lessons showing that long-running agent performance depends materially on harness design and persistent artifacts.\"}},\"tunes\":{}}],\"version\":\"2.31.6\"}",{"time":911,"blocks":912,"version":1449},1790352404508,[913,917,921,926,931,936,940,944,948,952,956,978,982,1003,1008,1012,1016,1020,1031,1035,1039,1043,1065,1069,1073,1077,1081,1085,1096,1100,1104,1108,1140,1144,1148,1174,1178,1182,1186,1220,1224,1228,1232,1237,1241,1245,1249,1253,1296,1300,1304,1308,1315,1319,1323,1327,1331,1335,1339,1342,1346,1350,1353,1373,1377,1397,1401,1408,1415,1422,1429,1436,1442],{"id":215,"data":914,"type":220,"tunes":916},{"title":915,"maxLevel":218,"minLevel":219},"Contents",{},{"id":223,"data":918,"type":226,"tunes":920},{"text":919},"The phrase “self-hosted agent” now hides at least three different architectures. You can use a managed harness with OpenAI-hosted compute, a managed harness connected to infrastructure you operate, or run the harness and agent loop yourself. Those choices have very different implications for control, recovery, context management, security, latency, and operational burden.",{},{"id":229,"data":922,"type":234,"tunes":925},{"body":923,"title":924,"variant":233},"\u003Cstrong>Do not choose between “managed” and “self-hosted” as if they were one binary decision.\u003C\u002Fstrong> Separate the \u003Cstrong>harness plane\u003C\u002Fstrong> from the \u003Cstrong>execution plane\u003C\u002Fstrong>. A managed harness can still use self-hosted compute. A self-hosted environment gives you control over files, packages, network access and execution without requiring you to own the agent loop. Run the harness yourself only when you need control over orchestration, lifecycle, model-routing assumptions, or runtime behaviour that a managed harness cannot expose.","Direct answer",{},{"id":237,"data":927,"type":234,"tunes":930},{"body":928,"title":929,"variant":241},"OpenAI's Agents API is in public beta and its architecture can evolve. Current documentation separates the OpenAI-hosted Codex harness from the execution environment and explicitly supports self-hosted environments. OpenAI also exposes the Codex harness separately through the Codex SDK for infrastructure you operate.","Current as of 25 September 2026",{},{"id":244,"data":932,"type":234,"tunes":935},{"body":933,"title":934,"variant":244},"The Harness Plane \u002F Execution Plane model and Control Escalation Test below are practical architecture tools proposed here. They are not formal vendor terminology.","The model used in this article",{},{"id":250,"data":937,"type":42,"tunes":939},{"text":938,"level":219},"The mistake: treating self-hosting as one decision",{},{"id":255,"data":941,"type":226,"tunes":943},{"text":942},"In conventional software, “self-hosted” usually means the application runs on infrastructure you control. Agent systems complicate that definition because the runtime can be split. The model-and-tool loop can run in one place while code execution, files and private-network access happen somewhere else.",{},{"id":260,"data":945,"type":226,"tunes":947},{"text":946},"OpenAI's current Agents API architecture makes this split explicit: OpenAI runs the harness, while the execution environment can be absent, OpenAI-hosted, or self-hosted. A self-hosted environment therefore does not mean the agent loop is self-hosted.",{},{"id":265,"data":949,"type":226,"tunes":951},{"text":950},"This distinction matters because many teams choose a more complex runtime than they need. They want private-network access or custom packages, conclude that the entire agent must be self-hosted, and accidentally take ownership of context management, orchestration, recovery and lifecycle that could have remained managed.",{},{"id":270,"data":953,"type":42,"tunes":955},{"text":954,"level":219},"Three architectures that are often called “self-hosted”",{},{"id":275,"data":957,"type":297,"tunes":977},{"content":958,"stretched":43,"withHeadings":14},[959,963,968,972],[279,960,961,962],"Who runs the harness?","Where code\u002Ffiles execute","What you primarily own",[964,965,966,967],"Managed harness + managed environment","Platform","Platform-hosted sandbox","Application, tools, product logic, authorization",[969,965,970,971],"Managed harness + self-hosted environment","Your container, VM, laptop, private cloud or other compute","Environment provisioning, networking, files and lifecycle; platform still owns harness",[973,974,975,976],"Self-operated harness \u002F agent loop","You","Your chosen environment","Harness process, orchestration, context strategy, hosting, recovery, execution and application lifecycle",{},{"id":300,"data":979,"type":42,"tunes":981},{"text":980,"level":219},"The two-plane model",{},{"id":305,"data":983,"type":332,"tunes":1002},{"rows":984,"title":994,"layout":297,"columns":995},[985,988,991],{"id":309,"label":986,"values":987},"Harness plane",[312,312,312],{"id":314,"label":989,"values":990},"Execution plane",[312,312,312],{"id":318,"label":992,"values":993},"Application plane",[312,312,312],"Separate the harness plane from the execution plane",[996,998,1000],{"id":324,"label":997},"Plane",{"id":327,"label":999},"What it owns",{"id":330,"label":1001},"Questions to ask",{},{"id":335,"data":1004,"type":234,"tunes":1007},{"body":1005,"title":1006,"variant":339},"You can self-host the \u003Cstrong>execution plane\u003C\u002Fstrong> without self-hosting the \u003Cstrong>harness plane\u003C\u002Fstrong>. That is often the right middle ground.","Key architectural consequence",{},{"id":342,"data":1009,"type":42,"tunes":1011},{"text":1010,"level":219},"Managed harness: what you actually gain",{},{"id":347,"data":1013,"type":226,"tunes":1015},{"text":1014},"A managed harness removes more than a while-loop. OpenAI's current Agents API manages sessions, orchestration, context compaction and recovery. Anthropic's work on managed agents describes the same broader motivation: harnesses contain assumptions about model behaviour, and those assumptions need to evolve as models improve.",{},{"id":352,"data":1017,"type":226,"tunes":1019},{"text":1018},"That means the benefit is not only fewer lines of code. The platform can update runtime behaviour, long-horizon context handling, subagent coordination and recovery without requiring every application team to rebuild those mechanisms.",{},{"id":357,"data":1021,"type":368,"tunes":1030},{"meta":1022,"items":1023,"style":367},{},[1024,1025,1026,1027,1028,1029],"Less application-owned orchestration code.","Managed durable-session behaviour.","Managed context compaction and recovery.","A runtime that can evolve with model capabilities.","Simpler adoption of platform-native subagent and long-running-agent features.","Potentially lower operational burden for teams whose differentiation is not the harness itself.",{},{"id":371,"data":1032,"type":42,"tunes":1034},{"text":1033,"level":219},"Managed harness: what you give up",{},{"id":376,"data":1036,"type":226,"tunes":1038},{"text":1037},"Delegating the harness also delegates some control. Your application no longer owns every detail of iteration, context strategy, orchestration and runtime evolution. A platform update can improve the system, but it can also change behaviour your product implicitly depended on.",{},{"id":381,"data":1040,"type":226,"tunes":1042},{"text":1041},"This creates a different kind of engineering requirement: strong evals, explicit product boundaries and an integration layer that prevents managed-session behaviour from becoming your business source of truth.",{},{"id":386,"data":1044,"type":297,"tunes":1064},{"content":1045,"stretched":43,"withHeadings":14},[1046,1049,1052,1055,1058,1061],[1047,1048],"Managed-harness trade-off","What it means operationally",[1050,1051],"Less loop control","You cannot assume every orchestration detail is application-defined",[1053,1054],"Platform evolution","Harness behaviour can improve or change without your code changing",[1056,1057],"Vendor-specific lifecycle","Sessions, events and recovery semantics become part of the integration surface",[1059,1060],"Observability boundary","Platform traces must be joined with application audit data",[1062,1063],"Portability cost","Moving to another harness later may require more than swapping model endpoints",{},{"id":409,"data":1066,"type":42,"tunes":1068},{"text":1067,"level":219},"Self-hosted execution environment: the middle architecture",{},{"id":414,"data":1070,"type":226,"tunes":1072},{"text":1071},"OpenAI's self-hosted environment model is important because it decouples private compute from harness ownership. The platform still runs the Codex harness, while an executor runs inside your environment and receives commands over an outbound connection.",{},{"id":419,"data":1074,"type":226,"tunes":1076},{"text":1075},"You control provisioning, files, dependencies, network access and cleanup. The harness can therefore work against private infrastructure or custom software without requiring the entire agent runtime to move into your application.",{},{"id":424,"data":1078,"type":226,"tunes":1080},{"text":1079},"The cost is lifecycle responsibility. Your application must map sessions to compute, avoid duplicate provisioning, reconnect environments, coordinate shutdown and preserve any files that must outlive the environment.",{},{"id":429,"data":1082,"type":42,"tunes":1084},{"text":1083,"level":218},"When self-hosted execution is enough",{},{"id":434,"data":1086,"type":368,"tunes":1095},{"meta":1087,"items":1088,"style":367},{},[1089,1090,1091,1092,1093,1094],"The agent needs access to a private VPC or internal service.","The agent needs custom binaries, packages, drivers or system software.","The workload must run on hardware or cloud accounts you control.","Files must remain inside a controlled environment.","You need your own sandbox provider or isolation model.","You want platform-managed orchestration but infrastructure-controlled execution.",{},{"id":446,"data":1097,"type":42,"tunes":1099},{"text":1098,"level":219},"When you may need to own the harness too",{},{"id":451,"data":1101,"type":226,"tunes":1103},{"text":1102},"Owning the harness becomes justified when the harness itself is part of your product differentiation or constraint set. OpenAI's current runtime overview positions the Codex SDK for running the Codex harness in infrastructure you operate, while Responses is the lower-level option when you want to own the agent loop yourself.",{},{"id":456,"data":1105,"type":226,"tunes":1107},{"text":1106},"The key is to identify a requirement that genuinely lives in the harness plane, not the execution plane.",{},{"id":461,"data":1109,"type":297,"tunes":1139},{"content":1110,"stretched":43,"withHeadings":14},[1111,1115,1118,1120,1123,1126,1129,1132,1135],[1112,1113,1114],"Requirement","Execution-plane problem or harness-plane problem?","Likely direction",[1116,989,1117],"Private database access","Managed harness + self-hosted environment may be sufficient",[1119,989,969],"Custom Linux packages",[1121,989,1122],"Custom GPU hardware","Managed harness + self-hosted environment where supported",[1124,986,1125],"Custom agent stopping logic","Self-operated harness \u002F custom loop",[1127,986,1128],"Cross-provider model routing at every step","Custom loop or harness you operate",[1130,986,1131],"Custom context-compaction algorithm","Self-operated harness if the managed runtime cannot expose it",[1133,986,1134],"Deterministic orchestration semantics required by product","Self-operated harness or tightly controlled custom loop",[1136,1137,1138],"Local-only product deployment with no managed harness dependency","Harness plane + execution plane","Self-operated runtime",{},{"id":495,"data":1141,"type":42,"tunes":1143},{"text":1142,"level":219},"The Control Escalation Test",{},{"id":500,"data":1145,"type":226,"tunes":1147},{"text":1146},"Use the least self-hosted architecture that satisfies the actual requirement. Escalate control one layer at a time.",{},{"id":505,"data":1149,"type":531,"tunes":1173},{"steps":1150,"title":1172,"orientation":530},[1151,1154,1157,1160,1163,1166,1169],{"label":1152,"description":1153},"1. Start with the application boundary","Keep domain truth, authorization and consequential business actions in your own product regardless of agent runtime.",{"label":1155,"description":1156},"2. Ask whether the agent needs local execution","If not, a managed harness without a dedicated environment may be enough.",{"label":1158,"description":1159},"3. Ask whether platform-hosted compute is acceptable","If yes, use a managed environment and avoid unnecessary infrastructure ownership.",{"label":1161,"description":1162},"4. If not, self-host the execution plane","Connect your own environment for private network, files, packages or controlled compute.",{"label":1164,"description":1165},"5. Re-evaluate the remaining constraint","If the requirement is now satisfied, stop. Do not self-host the harness simply for architectural symmetry.",{"label":1167,"description":1168},"6. Escalate to harness ownership only for harness requirements","Own the Codex harness or custom agent loop when orchestration, context strategy, lifecycle or portability genuinely requires it.",{"label":1170,"description":1171},"7. Prove the extra control is worth the extra operations","Benchmark reliability, latency, cost, recovery, observability and engineering burden before committing.","Control Escalation Test",{},{"id":534,"data":1175,"type":42,"tunes":1177},{"text":1176,"level":219},"Operational burden grows nonlinearly when you own the harness",{},{"id":539,"data":1179,"type":226,"tunes":1181},{"text":1180},"A self-operated loop sounds simple in a demo: call model, inspect tool call, execute tool, append result, repeat. Production adds durable state, retries, duplicate events, cancellation, approval, context overflow, tool timeouts, process restarts, trace persistence, backpressure, concurrent work and recovery after partial side effects.",{},{"id":544,"data":1183,"type":226,"tunes":1185},{"text":1184},"Long-running-agent research from Anthropic repeatedly shows that harness design materially affects performance. Their work on long-running application development uses explicit planning, structured artifacts and evaluator agents because naïve loops tend to lose progress or terminate prematurely. The harness is therefore production logic, not plumbing.",{},{"id":549,"data":1187,"type":297,"tunes":1219},{"content":1188,"stretched":43,"withHeadings":14},[1189,1192,1195,1198,1201,1204,1207,1210,1213,1216],[1190,1191],"If you own the harness, you also need an answer for","Why it matters",[1193,1194],"Durable session state","Processes restart; long-running work must resume correctly",[1196,1197],"Context compaction","History eventually exceeds practical working context",[1199,1200],"Tool idempotency","Retries must not repeat irreversible side effects",[1202,1203],"Cancellation and interruption","Users and systems need to stop or redirect work",[1205,1206],"Recovery after partial execution","A tool may succeed even if the agent never receives the result",[1208,1209],"Concurrency","Multiple tasks, workers or agents can touch shared state",[1211,1212],"Observability","Final output is insufficient for debugging runtime failures",[1214,1215],"Versioning","Harness updates can change behaviour even when prompts remain constant",[1217,1218],"Evaluation","Runtime changes need regression testing across representative trajectories",{},{"id":584,"data":1221,"type":42,"tunes":1223},{"text":1222,"level":219},"Security boundary: self-hosting compute does not automatically make the agent private",{},{"id":589,"data":1225,"type":226,"tunes":1227},{"text":1226},"A self-hosted execution environment controls where commands run and where files live, but the managed harness and model interaction still cross the service boundary. Teams should therefore map data flows explicitly rather than use “self-hosted” as shorthand for a privacy property.",{},{"id":594,"data":1229,"type":226,"tunes":1231},{"text":1230},"OpenAI's self-hosted executor uses restricted environment credentials and outbound connections. That is useful isolation, but your application still needs its own rules for secrets, private-network exposure, user-to-environment isolation, file retention, tool authorization and data classification.",{},{"id":599,"data":1233,"type":234,"tunes":1236},{"body":1234,"title":1235,"variant":241},"\u003Cstrong>Infrastructure control, execution isolation and data-governance boundaries are related but not identical.\u003C\u002Fstrong> Decide them separately.","Important distinction",{},{"id":605,"data":1238,"type":42,"tunes":1240},{"text":1239,"level":219},"Latency and cost: control can move bottlenecks rather than remove them",{},{"id":610,"data":1242,"type":226,"tunes":1244},{"text":1243},"Self-hosting may reduce some data-path or environment-startup costs, but it can also add provisioning time, WebSocket lifecycle, cold starts, sandbox cleanup, observability infrastructure and engineering overhead. A managed environment may cost more per unit of compute while being cheaper to operate at low or irregular volume.",{},{"id":615,"data":1246,"type":226,"tunes":1248},{"text":1247},"The correct comparison is total system cost: model and tool usage, environment time, infrastructure, engineering effort, on-call burden, failure recovery and the cost of slower iteration.",{},{"id":620,"data":1250,"type":42,"tunes":1252},{"text":1251,"level":219},"A production decision matrix",{},{"id":625,"data":1254,"type":297,"tunes":1295},{"content":1255,"stretched":43,"withHeadings":14},[1256,1259,1264,1267,1269,1273,1277,1280,1284,1287,1290],[1257,964,969,1258],"Constraint","Self-operated harness \u002F loop",[1260,1261,1262,1263],"Fastest path to production","Strong","Moderate","Weakest",[1265,1266,1261,1261],"Private-network execution","Weak \u002F depends on connectivity design",[1268,1262,1261,1261],"Custom packages \u002F system software",[1270,1271,1271,1272],"Harness-level control","Low","Highest",[1274,1275,1276,1272],"Operational burden","Lowest","Medium",[1278,1275,1276,1279],"Portability","Potentially highest if intentionally designed",[1281,1282,1282,1283],"Context strategy control","Platform-managed","Application-controlled",[1285,1271,1286,1286],"Execution infrastructure control","High",[1288,1272,1272,1289],"Ability to benefit from managed harness updates","You own adoption",[1291,1292,1293,1294],"Best fit","Teams differentiating at product\u002Ftool layer","Teams needing private\u002Fcustom compute without owning orchestration","Teams whose runtime semantics are themselves a requirement",{},{"id":670,"data":1297,"type":42,"tunes":1299},{"text":1298,"level":219},"Hybrid is not a compromise — it is often the clean architecture",{},{"id":675,"data":1301,"type":226,"tunes":1303},{"text":1302},"A managed harness with self-hosted execution is not “half self-hosted.” It is an intentional separation of concerns. The platform owns long-horizon agent-runtime complexity, while your infrastructure owns execution, private connectivity and files.",{},{"id":680,"data":1305,"type":226,"tunes":1307},{"text":1306},"That boundary resembles other cloud architectures: managed control plane, customer-controlled data or execution plane. The important design work is defining the contract between them — session identity, environment identity, credentials, files, tool permissions, lifecycle events and cleanup.",{},{"id":685,"data":1309,"type":691,"tunes":1314},{"url":1310,"title":1311,"excerpt":1312,"ctaLabel":1313},"https:\u002F\u002Fstajic.de\u002Fblog\u002Fopenai-agents-api-vs-agents-sdk-vs-responses-api-what-should-you-build-on-in-2026","OpenAI Agents API vs Agents SDK vs Responses API: What Should You Build On in 2026?","A runtime-ownership comparison of OpenAI's current agent surfaces and where each control boundary belongs.","Read the runtime comparison",{},{"id":694,"data":1316,"type":42,"tunes":1318},{"text":1317,"level":219},"What would change this answer?",{},{"id":699,"data":1320,"type":226,"tunes":1322},{"text":1321},"The recommendation changes if managed harnesses expose substantially more runtime control, if self-hosted harnesses gain simpler durable-session and recovery primitives, or if regulation requires the entire agent loop and model interaction to remain inside infrastructure you operate.",{},{"id":704,"data":1324,"type":226,"tunes":1326},{"text":1325},"It also changes with model capability. Anthropic explicitly notes that harness assumptions can become stale as models improve. A control mechanism that is essential today may become unnecessary later, while a new model capability can create a new governance requirement.",{},{"id":709,"data":1328,"type":42,"tunes":1330},{"text":1329,"level":219},"Limitations",{},{"id":714,"data":1332,"type":226,"tunes":1334},{"text":1333},"This article separates architecture responsibilities; it does not claim that one hosting model is universally more secure, cheaper or more reliable. Those outcomes depend on implementation, workload, compliance requirements, team skill and provider behaviour.",{},{"id":719,"data":1336,"type":226,"tunes":1338},{"text":1337},"The OpenAI Agents API is still in public beta, and managed-agent products from different vendors expose different boundaries. The two-plane model is intended to help compare those architectures without assuming that every vendor uses identical terms.",{},{"id":724,"data":1340,"type":42,"tunes":1341},{"text":726,"level":219},{},{"id":729,"data":1343,"type":226,"tunes":1345},{"text":1344},"The useful question is not “Should we self-host the agent?” It is: Which plane do we actually need to control?",{},{"id":734,"data":1347,"type":226,"tunes":1349},{"text":1348},"If the requirement is private compute, custom packages, local files or internal-network access, self-host the execution plane and keep the harness managed. If the requirement is orchestration semantics, context strategy, provider control or runtime lifecycle itself, then harness ownership may be justified. Escalate control only as far as the requirement demands.",{},{"id":739,"data":1351,"type":42,"tunes":1352},{"text":741,"level":219},{},{"id":744,"data":1354,"type":744,"tunes":1372},{"items":1355,"title":1371},[1356,1359,1362,1365,1368],{"id":748,"answer":1357,"question":1358},"Not completely. OpenAI still runs the managed Codex harness, while your infrastructure runs the execution environment used for commands, files and local tools.","Is an OpenAI Agents API self-hosted environment a self-hosted agent?",{"id":752,"answer":1360,"question":1361},"It is often enough when your requirements concern private-network access, custom packages, controlled files, specific hardware or infrastructure policy rather than control over the agent loop itself.","When is a self-hosted environment enough?",{"id":756,"answer":1363,"question":1364},"Consider harness ownership when you need custom orchestration semantics, custom context management, provider routing, local-only runtime behaviour, or another requirement that lives in the agent loop rather than the execution environment.","When should I run the harness myself?",{"id":760,"answer":1366,"question":1367},"No. It changes which components you control. Security depends on data flow, isolation, credentials, tool permissions, networking, logging and lifecycle design across all components.","Does self-hosting automatically improve security?",{"id":764,"answer":1369,"question":1370},"You become responsible for durable state, context management, retries, cancellation, recovery, observability, concurrency, runtime upgrades and evaluation of harness changes.","What is the main operational cost of owning the agent loop?","Managed harnesses and self-hosted agent runtimes",{},{"id":770,"data":1374,"type":42,"tunes":1376},{"text":1375,"level":219},"Glossary",{},{"id":775,"data":1378,"type":775,"tunes":1396},{"title":1379,"entries":1380},"Key architecture terms",[1381,1383,1385,1388,1391,1394],{"term":986,"anchor":780,"definition":1382},"The agent-runtime layer responsible for loop execution, orchestration, context management, session continuity and recovery.",{"term":989,"anchor":783,"definition":1384},"The environment in which commands run, code executes and files, packages and local resources are accessed.",{"term":1386,"anchor":787,"definition":1387},"Managed harness","An agent harness whose runtime, session management and orchestration are operated by a platform provider.",{"term":1389,"anchor":791,"definition":1390},"Self-hosted environment","Compute and files operated by the application owner while a separate agent harness may remain managed elsewhere.",{"term":1392,"anchor":795,"definition":1393},"Self-operated harness","An agent runtime whose loop, hosting, context strategy and lifecycle are operated by the application team.",{"term":1172,"anchor":798,"definition":1395},"A decision method that increases infrastructure and runtime ownership only when a requirement cannot be satisfied at a lower-control layer.",{},{"id":802,"data":1398,"type":42,"tunes":1400},{"text":1399,"level":219},"Primary sources and further reading",{},{"id":807,"data":1402,"type":814,"tunes":1407},{"link":809,"meta":1403},{"image":1404,"title":1405,"description":1406},{"url":312},"OpenAI — Agents API Architecture","Current separation between the hosted harness, execution environment and application server.",{},{"id":817,"data":1409,"type":814,"tunes":1414},{"link":819,"meta":1410},{"image":1411,"title":1412,"description":1413},{"url":312},"OpenAI — Self-hosted sandboxes","How customer-operated execution environments connect to the managed harness and which lifecycle responsibilities remain with the application.",{},{"id":826,"data":1416,"type":814,"tunes":1421},{"link":828,"meta":1417},{"image":1418,"title":1419,"description":1420},{"url":312},"OpenAI — Sandbox lifecycle","Provisioning, reconnection, duplicate-environment prevention and cleanup responsibilities for self-hosted compute.",{},{"id":835,"data":1423,"type":814,"tunes":1428},{"link":837,"meta":1424},{"image":1425,"title":1426,"description":1427},{"url":312},"OpenAI — Agent runtime options","Current comparison of Agents API, Codex SDK and Responses API by managed versus application-operated responsibilities.",{},{"id":844,"data":1430,"type":814,"tunes":1435},{"link":846,"meta":1431},{"image":1432,"title":1433,"description":1434},{"url":312},"OpenAI — Codex as a platform","Open-source Codex harness and integration layers for applications that want deeper runtime control.",{},{"id":853,"data":1437,"type":814,"tunes":1441},{"link":855,"meta":1438},{"image":1439,"title":858,"description":1440},{"url":312},"Discussion of managed-agent architecture and why harness assumptions need to evolve with model capability.",{},{"id":862,"data":1443,"type":814,"tunes":1448},{"link":864,"meta":1444},{"image":1445,"title":1446,"description":1447},{"url":312},"Anthropic — Effective harnesses for long-running agents","Engineering lessons showing that long-running agent performance depends materially on harness design and persistent artifacts.",{},"2.31.6","“Self-hosted agent” can mean very different architectures. This guide separates the managed harness, self-hosted execution environment, and fully self-operated agent loop—and shows which control boundary teams actually need.",{"lang":7,"title":208,"content":210,"contentJson":1452,"excerpt":871},{"time":212,"blocks":1453,"version":870},[1454,1457,1460,1463,1466,1469,1472,1475,1478,1481,1484,1492,1495,1509,1512,1515,1518,1521,1526,1529,1532,1535,1545,1548,1551,1554,1557,1560,1565,1568,1571,1574,1587,1590,1593,1604,1607,1610,1613,1627,1630,1633,1636,1639,1642,1645,1648,1651,1666,1669,1672,1675,1678,1681,1684,1687,1690,1693,1696,1699,1702,1705,1708,1717,1720,1730,1733,1738,1743,1748,1753,1758,1763],{"id":215,"data":1455,"type":220,"tunes":1456},{"title":217,"maxLevel":218,"minLevel":219},{},{"id":223,"data":1458,"type":226,"tunes":1459},{"text":225},{},{"id":229,"data":1461,"type":234,"tunes":1462},{"body":231,"title":232,"variant":233},{},{"id":237,"data":1464,"type":234,"tunes":1465},{"body":239,"title":240,"variant":241},{},{"id":244,"data":1467,"type":234,"tunes":1468},{"body":246,"title":247,"variant":244},{},{"id":250,"data":1470,"type":42,"tunes":1471},{"text":252,"level":219},{},{"id":255,"data":1473,"type":226,"tunes":1474},{"text":257},{},{"id":260,"data":1476,"type":226,"tunes":1477},{"text":262},{},{"id":265,"data":1479,"type":226,"tunes":1480},{"text":267},{},{"id":270,"data":1482,"type":42,"tunes":1483},{"text":272,"level":219},{},{"id":275,"data":1485,"type":297,"tunes":1491},{"content":1486,"stretched":43,"withHeadings":14},[1487,1488,1489,1490],[279,280,281,282],[284,285,286,287],[289,285,290,291],[293,294,295,296],{},{"id":300,"data":1493,"type":42,"tunes":1494},{"text":302,"level":219},{},{"id":305,"data":1496,"type":332,"tunes":1508},{"rows":1497,"title":321,"layout":297,"columns":1504},[1498,1500,1502],{"id":309,"label":310,"values":1499},[312,312,312],{"id":314,"label":315,"values":1501},[312,312,312],{"id":318,"label":319,"values":1503},[312,312,312],[1505,1506,1507],{"id":324,"label":325},{"id":327,"label":328},{"id":330,"label":331},{},{"id":335,"data":1510,"type":234,"tunes":1511},{"body":337,"title":338,"variant":339},{},{"id":342,"data":1513,"type":42,"tunes":1514},{"text":344,"level":219},{},{"id":347,"data":1516,"type":226,"tunes":1517},{"text":349},{},{"id":352,"data":1519,"type":226,"tunes":1520},{"text":354},{},{"id":357,"data":1522,"type":368,"tunes":1525},{"meta":1523,"items":1524,"style":367},{},[361,362,363,364,365,366],{},{"id":371,"data":1527,"type":42,"tunes":1528},{"text":373,"level":219},{},{"id":376,"data":1530,"type":226,"tunes":1531},{"text":378},{},{"id":381,"data":1533,"type":226,"tunes":1534},{"text":383},{},{"id":386,"data":1536,"type":297,"tunes":1544},{"content":1537,"stretched":43,"withHeadings":14},[1538,1539,1540,1541,1542,1543],[390,391],[393,394],[396,397],[399,400],[402,403],[405,406],{},{"id":409,"data":1546,"type":42,"tunes":1547},{"text":411,"level":219},{},{"id":414,"data":1549,"type":226,"tunes":1550},{"text":416},{},{"id":419,"data":1552,"type":226,"tunes":1553},{"text":421},{},{"id":424,"data":1555,"type":226,"tunes":1556},{"text":426},{},{"id":429,"data":1558,"type":42,"tunes":1559},{"text":431,"level":218},{},{"id":434,"data":1561,"type":368,"tunes":1564},{"meta":1562,"items":1563,"style":367},{},[438,439,440,441,442,443],{},{"id":446,"data":1566,"type":42,"tunes":1567},{"text":448,"level":219},{},{"id":451,"data":1569,"type":226,"tunes":1570},{"text":453},{},{"id":456,"data":1572,"type":226,"tunes":1573},{"text":458},{},{"id":461,"data":1575,"type":297,"tunes":1586},{"content":1576,"stretched":43,"withHeadings":14},[1577,1578,1579,1580,1581,1582,1583,1584,1585],[465,466,467],[469,315,470],[472,315,289],[474,315,475],[477,478,479],[481,478,482],[484,478,485],[487,478,488],[490,491,492],{},{"id":495,"data":1588,"type":42,"tunes":1589},{"text":497,"level":219},{},{"id":500,"data":1591,"type":226,"tunes":1592},{"text":502},{},{"id":505,"data":1594,"type":531,"tunes":1603},{"steps":1595,"title":529,"orientation":530},[1596,1597,1598,1599,1600,1601,1602],{"label":509,"description":510},{"label":512,"description":513},{"label":515,"description":516},{"label":518,"description":519},{"label":521,"description":522},{"label":524,"description":525},{"label":527,"description":528},{},{"id":534,"data":1605,"type":42,"tunes":1606},{"text":536,"level":219},{},{"id":539,"data":1608,"type":226,"tunes":1609},{"text":541},{},{"id":544,"data":1611,"type":226,"tunes":1612},{"text":546},{},{"id":549,"data":1614,"type":297,"tunes":1626},{"content":1615,"stretched":43,"withHeadings":14},[1616,1617,1618,1619,1620,1621,1622,1623,1624,1625],[553,554],[556,557],[559,560],[562,563],[565,566],[568,569],[571,572],[574,575],[577,578],[580,581],{},{"id":584,"data":1628,"type":42,"tunes":1629},{"text":586,"level":219},{},{"id":589,"data":1631,"type":226,"tunes":1632},{"text":591},{},{"id":594,"data":1634,"type":226,"tunes":1635},{"text":596},{},{"id":599,"data":1637,"type":234,"tunes":1638},{"body":601,"title":602,"variant":241},{},{"id":605,"data":1640,"type":42,"tunes":1641},{"text":607,"level":219},{},{"id":610,"data":1643,"type":226,"tunes":1644},{"text":612},{},{"id":615,"data":1646,"type":226,"tunes":1647},{"text":617},{},{"id":620,"data":1649,"type":42,"tunes":1650},{"text":622,"level":219},{},{"id":625,"data":1652,"type":297,"tunes":1665},{"content":1653,"stretched":43,"withHeadings":14},[1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664],[629,284,289,630],[632,633,634,635],[637,638,633,633],[640,634,633,633],[642,643,643,644],[646,647,648,649],[651,647,648,652],[654,655,655,656],[658,643,659,659],[661,649,649,662],[664,665,666,667],{},{"id":670,"data":1667,"type":42,"tunes":1668},{"text":672,"level":219},{},{"id":675,"data":1670,"type":226,"tunes":1671},{"text":677},{},{"id":680,"data":1673,"type":226,"tunes":1674},{"text":682},{},{"id":685,"data":1676,"type":691,"tunes":1677},{"url":687,"title":688,"excerpt":689,"ctaLabel":690},{},{"id":694,"data":1679,"type":42,"tunes":1680},{"text":696,"level":219},{},{"id":699,"data":1682,"type":226,"tunes":1683},{"text":701},{},{"id":704,"data":1685,"type":226,"tunes":1686},{"text":706},{},{"id":709,"data":1688,"type":42,"tunes":1689},{"text":711,"level":219},{},{"id":714,"data":1691,"type":226,"tunes":1692},{"text":716},{},{"id":719,"data":1694,"type":226,"tunes":1695},{"text":721},{},{"id":724,"data":1697,"type":42,"tunes":1698},{"text":726,"level":219},{},{"id":729,"data":1700,"type":226,"tunes":1701},{"text":731},{},{"id":734,"data":1703,"type":226,"tunes":1704},{"text":736},{},{"id":739,"data":1706,"type":42,"tunes":1707},{"text":741,"level":219},{},{"id":744,"data":1709,"type":744,"tunes":1716},{"items":1710,"title":767},[1711,1712,1713,1714,1715],{"id":748,"answer":749,"question":750},{"id":752,"answer":753,"question":754},{"id":756,"answer":757,"question":758},{"id":760,"answer":761,"question":762},{"id":764,"answer":765,"question":766},{},{"id":770,"data":1718,"type":42,"tunes":1719},{"text":772,"level":219},{},{"id":775,"data":1721,"type":775,"tunes":1729},{"title":777,"entries":1722},[1723,1724,1725,1726,1727,1728],{"term":310,"anchor":780,"definition":781},{"term":315,"anchor":783,"definition":784},{"term":786,"anchor":787,"definition":788},{"term":790,"anchor":791,"definition":792},{"term":794,"anchor":795,"definition":796},{"term":529,"anchor":798,"definition":799},{},{"id":802,"data":1731,"type":42,"tunes":1732},{"text":804,"level":219},{},{"id":807,"data":1734,"type":814,"tunes":1737},{"link":809,"meta":1735},{"image":1736,"title":812,"description":813},{"url":312},{},{"id":817,"data":1739,"type":814,"tunes":1742},{"link":819,"meta":1740},{"image":1741,"title":822,"description":823},{"url":312},{},{"id":826,"data":1744,"type":814,"tunes":1747},{"link":828,"meta":1745},{"image":1746,"title":831,"description":832},{"url":312},{},{"id":835,"data":1749,"type":814,"tunes":1752},{"link":837,"meta":1750},{"image":1751,"title":840,"description":841},{"url":312},{},{"id":844,"data":1754,"type":814,"tunes":1757},{"link":846,"meta":1755},{"image":1756,"title":849,"description":850},{"url":312},{},{"id":853,"data":1759,"type":814,"tunes":1762},{"link":855,"meta":1760},{"image":1761,"title":858,"description":859},{"url":312},{},{"id":862,"data":1764,"type":814,"tunes":1767},{"link":864,"meta":1765},{"image":1766,"title":867,"description":868},{"url":312},{},"Post erfolgreich abgerufen",{"items":1770,"source":1812,"manualIds":1813,"manualMatchedIds":1814},[1771,1778,1785,1792,1798,1805],{"id":1772,"slug":1773,"title":1774,"excerpt":1775,"featuredImage":1776,"publishedAt":1777},"459","ollama-is-not-the-product-building-production-ready-open-llm-applications","Ollama n'est pas le produit : construire des applications Open-LLM prêtes pour la production","Exécuter un modèle local avec Ollama est facile. Construire une application Open-LLM prête pour la production est plus difficile : cela nécessite du RAG, du contrôle d'accès, de l'abstraction de fournisseur, de l'évaluation, de la journalisation, de la discipline de déploiement et une couche applicative contrôlée autour du modèle.","\u002Fuploads\u002F2026\u002F06\u002Follama-is-not-the-product-building-production-ready-open-llm-applications-1782679361640-h0usqf.webp","2026-06-28T16:39:00.000Z",{"id":1779,"slug":1780,"title":1781,"excerpt":1782,"featuredImage":1783,"publishedAt":1784},"469","rag-failed-but-which-layer-actually-failed-a-diagnostic-method","Échec du RAG — mais quelle couche a réellement échoué ? Une méthode de diagnostic","Lorsqu'une réponse RAG est erronée, blâmer la récupération ou le modèle est trop vague. Cette méthode de diagnostic isole la couverture des sources, la construction de la requête, la récupération, le classement, l'assemblage du contexte, la génération, l'attribution des preuves et la fraîcheur—afin que la défaillance réelle puisse être reproduite et corrigée.","\u002Fuploads\u002F2026\u002F09\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method-1790350847177-pior4c.webp","2026-09-24T19:39:00.000Z",{"id":1786,"slug":1787,"title":1788,"excerpt":1789,"featuredImage":1790,"publishedAt":1791},"455","zbt-z8102ax-dual-sim-failover-test","Basculement double SIM du ZBT Z8102AX : ce qui fonctionne, ce qui manque et ce qui nécessite un meilleur firmware","Le ZBT Z8102AX est un routeur OpenWrt 5G double SIM, mais le matériel double SIM à lui seul n'est pas la même chose qu'un basculement intelligent. Le routeur reconnaît la carte SIM et se connecte avec succès, mais la commutation automatique, la récupération du modem, les décisions basées sur le signal et une logique de basculement propre nécessitent encore des tests plus approfondis.","\u002Fuploads\u002F2026\u002F06\u002Fopenwrt-router-review-dual-sim-03-1781620592829-7t77j7.webp","2026-06-16T10:40:00.000Z",{"id":1793,"slug":891,"title":1794,"excerpt":1795,"featuredImage":1796,"publishedAt":1797},"434","Guide complet d'Evaluation Harness : Maîtriser l'évaluation des performances des LLM","Ce guide propose une présentation détaillée d'Evaluation Harness, un framework essentiel pour évaluer rigoureusement les capacités des grands modèles de langage (LLM) dans les pipelines LLMOps d'entreprise. Découvrez la configuration, les meilleures pratiques et les techniques avancées pour garantir un benchmarking et une optimisation fiables des modèles.","\u002Fuploads\u002F2026\u002F04\u002Fevaluation-harness-1775466944495-4s0xv2.webp","2026-03-01T17:50:00.000Z",{"id":1799,"slug":1800,"title":1801,"excerpt":1802,"featuredImage":1803,"publishedAt":1804},"364","tipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung","Maîtriser le flux de travail SEO : Stratégies d'optimisation essentielles pour la croissance organique","Un flux de travail SEO structuré est crucial pour une croissance organique durable. Découvrez les dix stratégies fondamentales, de la recherche de mots-clés et l'optimisation technique à la qualité du contenu et l'analyse des performances.","\u002Fuploads\u002F2026\u002F03\u002Ftipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung-1774866098131-hwkzrg.webp","2024-01-26T06:35:00.000Z",{"id":1806,"slug":1807,"title":1808,"excerpt":1809,"featuredImage":1810,"publishedAt":1811},"362","suchmaschinen-webcrawler-suchsoftware-und-suchergebnissen","Optimisation pour les moteurs de recherche : Le flux de travail fiable pour les meilleurs classements","Analyse détaillée de l'optimisation pour les moteurs de recherche (SEO), de ses fondements techniques, du rôle des robots d'indexation et des étapes stratégiques pour atteindre les meilleurs classements organiques.","\u002Fuploads\u002F2026\u002F03\u002Fsuchmaschinen-webcrawler-suchsoftware-und-suchergebnissen-1774865001795-5wv0cw.webp","2023-04-12T13:03:00.000Z","fallback",[],[]]