[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:it":3,"public-menus:all":38,"post:managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose:it":205,"related:post:managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose:it:1":1776},{"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","it","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":1775},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":875,"featuredImage":876,"featuredImageAlt":877,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":878,"publishedAt":879,"createdAt":880,"updatedAt":881,"seoLocalePaths":882,"categories":891,"author":904,"translations":909},"475","Harness per agenti gestito vs loop per agenti self-hosted: cosa si guadagna, cosa si perde","managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","\u003Cnav class=\"editorjs-toc\" data-editorjs-toc=\"true\" aria-label=\"Indice dei contenuti\">\u003Cstrong class=\"editorjs-toc__title\">Indice dei contenuti\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;errore: trattare il self-hosting come una decisione unica\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-10\" class=\"editorjs-toc__link\">Tre architetture spesso definite “self-hosted”\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-12\" class=\"editorjs-toc__link\">Il modello a due piani\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-15\" class=\"editorjs-toc__link\">Harness gestito: cosa si ottiene realmente\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-19\" class=\"editorjs-toc__link\">Harness gestito: a cosa si rinuncia\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-23\" class=\"editorjs-toc__link\">Ambiente di esecuzione self-hosted: l&#39;architettura intermedia\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\">Quando l&#39;esecuzione self-hosted è sufficiente\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-29\" class=\"editorjs-toc__link\">Quando potrebbe essere necessario gestire anche l&#39;harness\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-33\" class=\"editorjs-toc__link\">Il test di escalation del controllo\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-36\" class=\"editorjs-toc__link\">L&#39;onere operativo cresce in modo non lineare quando gestisci l&#39;harness\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-40\" class=\"editorjs-toc__link\">Perimetro di sicurezza: il calcolo in self-hosting non rende automaticamente privato l&#39;agente\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-44\" class=\"editorjs-toc__link\">Latenza e costi: il controllo può spostare i colli di bottiglia anziché rimuoverli\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-47\" class=\"editorjs-toc__link\">Una matrice decisionale per la produzione\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-49\" class=\"editorjs-toc__link\">L&#39;approccio ibrido non è un compromesso — è spesso l&#39;architettura più pulita\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-53\" class=\"editorjs-toc__link\">Cosa potrebbe cambiare questo verdetto?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-56\" class=\"editorjs-toc__link\">Limitazioni\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-59\" class=\"editorjs-toc__link\">Conclusione\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\">Glossario\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-66\" class=\"editorjs-toc__link\">Fonti primarie e ulteriori letture\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fnav>\n\u003Cp>L'espressione “agente self-hosted” nasconde ormai almeno tre architetture diverse. È possibile utilizzare un harness gestito con capacità di calcolo ospitata da OpenAI, un harness gestito collegato a un'infrastruttura gestita da voi, oppure eseguire autonomamente sia l'harness che il ciclo dell'agente. Queste scelte comportano implicazioni molto diverse in termini di controllo, ripristino, gestione del contesto, sicurezza, latenza e onere operativo.\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\">Risposta diretta\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">&lt;strong&gt;Non scegliete tra “gestito” e “self-hosted” come se si trattasse di una decisione binaria.&lt;\u002Fstrong&gt; Separate il &lt;strong&gt;piano dell&#39;harness&lt;\u002Fstrong&gt; dal &lt;strong&gt;piano di esecuzione&lt;\u002Fstrong&gt;. Un harness gestito può comunque utilizzare risorse di calcolo self-hosted. Un ambiente self-hosted vi offre il controllo su file, pacchetti, accesso alla rete ed esecuzione senza richiedere la gestione diretta del ciclo dell&#39;agente. Eseguite l&#39;harness in autonomia solo quando avete bisogno di controllo su orchestrazione, ciclo di vita, logiche di instradamento dei modelli o comportamenti di runtime che un harness gestito non può esporre.\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\">Aggiornato al 25 settembre 2026\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">L&#39;Agents API di OpenAI è in beta pubblica e la sua architettura può evolversi. La documentazione attuale separa l&#39;harness Codex ospitato da OpenAI dall&#39;ambiente di esecuzione e supporta esplicitamente gli ambienti self-hosted. OpenAI espone inoltre l&#39;harness Codex separatamente tramite il Codex SDK per le infrastrutture gestite direttamente dall&#39;utente.\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\">Il modello utilizzato in questo articolo\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Il modello Piano dell&#39;Harness \u002F Piano di Esecuzione e il Test di Escalation del Controllo illustrati di seguito sono strumenti pratici di architettura proposti qui. Non costituiscono terminologia ufficiale dei fornitori.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-6\">L'errore: trattare il self-hosting come una decisione unica\u003C\u002Fh2>\n\u003Cp>Nel software convenzionale, “self-hosted” significa solitamente che l'applicazione viene eseguita su un'infrastruttura sotto il vostro controllo. I sistemi di agenti complicano questa definizione perché il runtime può essere suddiviso. Il ciclo tra modello e strumenti può essere eseguito in un luogo, mentre l'esecuzione del codice, i file e l'accesso alla rete privata avvengono altrove.\u003C\u002Fp>\n\u003Cp>L'attuale architettura dell'Agents API di OpenAI rende esplicita questa separazione: OpenAI esegue l'harness, mentre l'ambiente di esecuzione può essere assente, ospitato da OpenAI o self-hosted. Un ambiente self-hosted, quindi, non implica che anche il ciclo dell'agente sia self-hosted.\u003C\u002Fp>\n\u003Cp>Questa distinzione è importante perché molti team scelgono un runtime più complesso del necessario. Desiderano l'accesso a una rete privata o pacchetti personalizzati, concludono che l'intero agente debba essere self-hosted e finiscono involontariamente per farsi carico della gestione del contesto, dell'orchestrazione, del ripristino e del ciclo di vita, elementi che avrebbero potuto rimanere gestiti.\u003C\u002Fp>\n\u003Ch2 id=\"section-10\">Tre architetture spesso definite “self-hosted”\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\">Architettura\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Chi esegue l'harness?\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Dove vengono eseguiti codice\u002Ffile\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Cosa gestite principalmente\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness gestito + ambiente gestito\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Piattaforma\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sandbox ospitata sulla piattaforma\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Applicazione, strumenti, logica di prodotto, autorizzazione\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness gestito + ambiente self-hosted\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Piattaforma\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Il vostro container, VM, laptop, cloud privato o altra risorsa di calcolo\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Provisioning dell'ambiente, rete, file e ciclo di vita; la piattaforma gestisce ancora l'harness\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness \u002F ciclo dell'agente autogestito\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Voi\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Il vostro ambiente prescelto\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Processo dell'harness, orchestrazione, strategia del contesto, hosting, ripristino, esecuzione e ciclo di vita dell'applicazione\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-12\">Il modello a due piani\u003C\u002Fh2>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Separare il piano dell&#39;harness dal piano di esecuzione\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\">Piano\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\">Cosa gestisce\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\">Domande da porsi\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\">Piano dell&#39;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\">Piano di esecuzione\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\">Piano dell&#39;applicazione\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\">Conseguenza architetturale chiave\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">È possibile gestire in self-hosting il &lt;strong&gt;piano di esecuzione&lt;\u002Fstrong&gt; senza dover gestire in self-hosting il &lt;strong&gt;piano dell&#39;harness&lt;\u002Fstrong&gt;. Spesso questo rappresenta il giusto compromesso.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-15\">Harness gestito: cosa si ottiene realmente\u003C\u002Fh2>\n\u003Cp>Un harness gestito elimina molto più di un semplice ciclo while. L'attuale Agents API di OpenAI gestisce sessioni, orchestrazione, compattazione del contesto e ripristino. Il lavoro di Anthropic sugli agenti gestiti descrive la stessa motivazione generale: gli harness contengono presupposti sul comportamento dei modelli, e tali presupposti devono evolversi con il miglioramento dei modelli stessi.\u003C\u002Fp>\n\u003Cp>Ciò significa che il vantaggio non risiede solo in un minor numero di righe di codice. La piattaforma può aggiornare il comportamento di runtime, la gestione del contesto su orizzonti temporali lunghi, la coordinazione dei sotto-agenti e il ripristino, senza obbligare ogni team di sviluppo a ricostruire tali meccanismi.\u003C\u002Fp>\n\u003Cul>\u003Cli>Meno codice di orchestrazione a carico dell'applicazione.\u003C\u002Fli>\u003Cli>Gestione nativa delle sessioni persistenti.\u003C\u002Fli>\u003Cli>Compattazione del contesto e ripristino completamente gestiti.\u003C\u002Fli>\u003Cli>Un runtime in grado di evolversi di pari passo con le capacità dei modelli.\u003C\u002Fli>\u003Cli>Adozione più semplice delle funzionalità native della piattaforma per sotto-agenti e agenti a lunga esecuzione.\u003C\u002Fli>\u003Cli>Minore onere operativo potenziale per i team il cui valore differenziante non è l'harness stesso.\u003C\u002Fli>\u003C\u002Ful>\n\u003Ch2 id=\"section-19\">Harness gestito: a cosa si rinuncia\u003C\u002Fh2>\n\u003Cp>Delegare l'harness significa anche delegare una parte del controllo. La tua applicazione non gestisce più ogni singolo dettaglio relativo a iterazione, strategia di contesto, orchestrazione ed evoluzione del runtime. Un aggiornamento della piattaforma può migliorare il sistema, ma può anche alterare comportamenti da cui il tuo prodotto dipendeva implicitamente.\u003C\u002Fp>\n\u003Cp>Ciò introduce un tipo diverso di requisito ingegneristico: valutazioni (eval) rigorose, confini di prodotto espliciti e un livello di integrazione che impedisca al comportamento della sessione gestita di diventare la fonte di verità del tuo business.\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\">Compromesso dell'harness gestito\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Cosa comporta a livello operativo\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Minore controllo sul loop\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Non puoi dare per scontato che ogni dettaglio di orchestrazione sia definito dall'applicazione\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Evoluzione della piattaforma\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Il comportamento dell'harness può migliorare o cambiare senza che il tuo codice venga modificato\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ciclo di vita specifico del vendor\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sessioni, eventi e semantica di ripristino entrano a far parte della superficie di integrazione\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Confine di osservabilità\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le tracce della piattaforma devono essere correlate ai dati di audit dell'applicazione\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Costo di portabilità\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Passare a un altro harness in un secondo momento potrebbe richiedere molto più della semplice sostituzione degli endpoint del modello\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-23\">Ambiente di esecuzione self-hosted: l'architettura intermedia\u003C\u002Fh2>\n\u003Cp>Il modello di ambiente self-hosted di OpenAI è rilevante perché disaccoppia il calcolo privato dalla proprietà dell'harness. La piattaforma continua a eseguire l'harness di Codex, mentre un executor viene eseguito all'interno del tuo ambiente e riceve comandi tramite una connessione in uscita.\u003C\u002Fp>\n\u003Cp>Mantieni il controllo su provisioning, file, dipendenze, accesso alla rete e pulizia. L'harness può quindi operare su un'infrastruttura privata o su software personalizzato senza richiedere il trasferimento dell'intero runtime dell'agente nella tua applicazione.\u003C\u002Fp>\n\u003Cp>Il costo da sostenere è la responsabilità del ciclo di vita. La tua applicazione deve mappare le sessioni sulle risorse di calcolo, evitare il provisioning duplicato, riconnettere gli ambienti, coordinare l'arresto e preservare tutti i file che devono sopravvivere all'ambiente.\u003C\u002Fp>\n\u003Ch3 id=\"section-27\">Quando l'esecuzione self-hosted è sufficiente\u003C\u002Fh3>\n\u003Cul>\u003Cli>L'agente necessita di accedere a un VPC privato o a un servizio interno.\u003C\u002Fli>\u003Cli>L'agente necessita di binari personalizzati, pacchetti, driver o software di sistema.\u003C\u002Fli>\u003Cli>Il carico di lavoro deve essere eseguito su hardware o account cloud sotto il tuo controllo.\u003C\u002Fli>\u003Cli>I file devono rimanere all'interno di un ambiente controllato.\u003C\u002Fli>\u003Cli>Hai bisogno del tuo provider di sandbox o modello di isolamento.\u003C\u002Fli>\u003Cli>Desideri un'orchestrazione gestita dalla piattaforma ma un'esecuzione controllata a livello di infrastruttura.\u003C\u002Fli>\u003C\u002Ful>\n\u003Ch2 id=\"section-29\">Quando potrebbe essere necessario gestire anche l'harness\u003C\u002Fh2>\n\u003Cp>Prendere il controllo dell'harness diventa giustificato quando l'harness stesso fa parte della differenziazione del tuo prodotto o dei tuoi vincoli. L'attuale panoramica dei runtime di OpenAI posiziona il Codex SDK per l'esecuzione dell'harness Codex nell'infrastruttura da te gestita, mentre Responses rappresenta l'opzione di livello inferiore quando desideri controllare direttamente il loop dell'agente.\u003C\u002Fp>\n\u003Cp>Il punto chiave è identificare un requisito che appartiene autenticamente al piano dell'harness e non a quello dell'esecuzione.\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\">Requisito\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Problema del piano di esecuzione o dell'harness?\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Direzione probabile\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Accesso a database privato\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Piano di esecuzione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness gestito + ambiente self-hosted possono essere sufficienti\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pacchetti Linux personalizzati\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Piano di esecuzione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness gestito + ambiente self-hosted\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Hardware GPU personalizzato\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Piano di esecuzione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness gestito + ambiente self-hosted ove supportato\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Logica personalizzata di arresto dell'agente\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Piano dell'harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness autogestito \u002F loop personalizzato\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Routing dei modelli multi-provider a ogni passaggio\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Piano dell'harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Loop personalizzato o harness gestito in proprio\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Algoritmo personalizzato di compattazione del contesto\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Piano dell'harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness autogestito se il runtime gestito non può esporlo\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Semantica di orchestrazione deterministica richiesta dal prodotto\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Piano dell'harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Harness autogestito o loop personalizzato strettamente controllato\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Deployment del prodotto esclusivamente in locale senza dipendenze da harness gestiti\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Piano dell'harness + piano di esecuzione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Runtime autogestito\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-33\">Il test di escalation del controllo\u003C\u002Fh2>\n\u003Cp>Adotta l'architettura con il minor grado di self-hosting in grado di soddisfare il requisito effettivo. Incrementa il livello di controllo un livello alla volta.\u003C\u002Fp>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Test di escalation del controllo\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. Parti dal confine applicativo\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Mantieni la logica di dominio, l'autorizzazione e le azioni di business critiche all'interno del tuo prodotto, a prescindere dal runtime dell'agente.\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. Valuta se l'agente necessita di esecuzione locale\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">In caso contrario, un harness gestito senza un ambiente dedicato potrebbe essere sufficiente.\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. Verifica se il calcolo ospitato dalla piattaforma è accettabile\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Se sì, utilizza un ambiente gestito ed evita di farti carico inutilmente dell'infrastruttura.\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. In caso contrario, passa al self-hosting del piano di esecuzione\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Collega il tuo ambiente per gestire reti private, file, pacchetti o risorse di calcolo controllate.\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. Ricalcola i vincoli rimanenti\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Se il requisito è soddisfatto, fermati. Non gestire l'harness in autonomia solo per pura simmetria architetturale.\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. Estendi il controllo all'harness solo per requisiti specifici dell'harness\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Prendi in carico l'harness Codex o un loop di agenti personalizzato solo quando l'orchestrazione, la strategia di contesto, il ciclo di vita o la portabilità lo richiedono realmente.\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. Dimostra che il maggior controllo ripaga il maggior carico operativo\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Misura affidabilità, latenza, costi, ripristino, osservabilità e carico ingegneristico prima di impegnarti.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-36\">L'onere operativo cresce in modo non lineare quando gestisci l'harness\u003C\u002Fh2>\n\u003Cp>Un loop gestito autonomamente sembra semplice in una demo: chiama il modello, ispeziona la chiamata allo strumento, esegui lo strumento, aggiungi il risultato, ripeti. La produzione aggiunge stato durevole, tentativi di retry, eventi duplicati, annullamento, approvazione, overflow del contesto, timeout degli strumenti, riavvii dei processi, persistenza delle tracce, contropressione (backpressure), lavoro concorrente e ripristino dopo effetti collaterali parziali.\u003C\u002Fp>\n\u003Cp>La ricerca sugli agenti a lunga esecuzione condotta da Anthropic dimostra ripetutamente che la progettazione dell'harness influisce in modo sostanziale sulle prestazioni. Il loro lavoro sullo sviluppo di applicazioni a lunga esecuzione impiega pianificazione esplicita, artefatti strutturati e agenti valutatori, poiché i cicli ingenui tendono a perdere i progressi o a terminare prematuramente. L'harness è quindi logica di produzione, non semplice idraulica.\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\">Se gestisci l'harness, devi anche avere una risposta per\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Perché è importante\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Stato di sessione durevole\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">I processi si riavviano; le attività a lunga esecuzione devono riprendere correttamente\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Compattazione del contesto\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La cronologia finisce per superare il contesto operativo pratico\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Idempotenza degli strumenti\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">I tentativi di retry non devono ripetere effetti collaterali irreversibili\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Annullamento e interruzione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Gli utenti e i sistemi devono poter interrompere o reindirizzare il lavoro\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ripristino dopo un'esecuzione parziale\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Uno strumento può avere successo anche se l'agente non ne riceve mai il risultato\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Concorrenza\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Più task, worker o agenti possono interagire con lo stato condiviso\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Osservabilità\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'output finale non è sufficiente per il debug dei fallimenti a runtime\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Controllo delle versioni\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Gli aggiornamenti dell'harness possono modificare il comportamento anche quando i prompt restano identici\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Valutazione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le modifiche al runtime richiedono test di regressione su traiettorie rappresentative\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-40\">Perimetro di sicurezza: il calcolo in self-hosting non rende automaticamente privato l'agente\u003C\u002Fh2>\n\u003Cp>Un ambiente di esecuzione self-hosted controlla dove vengono eseguiti i comandi e dove risiedono i file, ma l'harness gestito e l'interazione con il modello attraversano comunque il perimetro del servizio. I team dovrebbero quindi mappare i flussi di dati in modo esplicito anziché usare \"self-hosted\" come scorciatoia per indicare una proprietà di privacy.\u003C\u002Fp>\n\u003Cp>L'executor self-hosted di OpenAI utilizza credenziali di ambiente e connessioni in uscita con restrizioni. Si tratta di un isolamento utile, ma la vostra applicazione richiede comunque regole proprie per segreti, esposizione alla rete privata, isolamento tra utente e ambiente, conservazione dei file, autorizzazione degli strumenti e classificazione dei dati.\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\">Importante distinzione\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">&lt;strong&gt;Il controllo dell&#39;infrastruttura, l&#39;isolamento dell&#39;esecuzione e i confini di governance dei dati sono correlati ma non identici.&lt;\u002Fstrong&gt; Prendete decisioni distinte per ciascuno di essi.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-44\">Latenza e costi: il controllo può spostare i colli di bottiglia anziché rimuoverli\u003C\u002Fh2>\n\u003Cp>Il self-hosting può ridurre alcuni costi relativi al percorso dati o all'avvio dell'ambiente, ma può anche incrementare tempi di provisioning, ciclo di vita dei WebSocket, cold start, pulizia delle sandbox, infrastruttura di osservabilità e carico ingegneristico. Un ambiente gestito può costare di più per unità di calcolo, risultando però più economico da gestire con volumi bassi o discontinui.\u003C\u002Fp>\n\u003Cp>Il confronto corretto riguarda il costo complessivo del sistema: utilizzo di modelli e strumenti, tempo di ambiente, infrastruttura, impegno ingegneristico, reperibilità (on-call), ripristino dagli errori e il costo di un'iterazione più lenta.\u003C\u002Fp>\n\u003Ch2 id=\"section-47\">Una matrice decisionale per la produzione\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\">Vincolo\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Harness gestito + ambiente gestito\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Harness gestito + ambiente self-hosted\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Harness \u002F loop gestito autonomamente\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Percorso più rapido verso la produzione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Forte\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Moderato\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Più debole\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Esecuzione su rete privata\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Debole \u002F dipende dalla configurazione di connettività\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Forte\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Forte\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pacchetti personalizzati \u002F software di sistema\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Moderato\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Forte\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Forte\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Controllo a livello di harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Basso\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Basso\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Massimo\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Carico operativo\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Minimo\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Medio\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Massimo\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\">Minima\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Media\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Potenzialmente massima se progettata intenzionalmente\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Controllo della strategia di contesto\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Gestito dalla piattaforma\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Gestito dalla piattaforma\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Controllato dall'applicazione\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Controllo dell'infrastruttura di esecuzione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Basso\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Alto\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Alto\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Capacità di beneficiare degli aggiornamenti dell'harness gestito\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Massima\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Massima\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'adozione è interamente a carico vostro\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Scelta ideale per\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Team che si differenziano a livello di prodotto\u002Fstrumenti\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Team che richiedono calcolo privato\u002Fpersonalizzato senza gestire l'orchestrazione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Team per cui la semantica di runtime costituisce di per sé un requisito fondamentale\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-49\">L'approccio ibrido non è un compromesso — è spesso l'architettura più pulita\u003C\u002Fh2>\n\u003Cp>Un harness gestito con esecuzione self-hosted non equivale a un \"self-hosted a metà\". Si tratta di una separazione intenzionale delle responsabilità. La piattaforma gestisce la complessità del runtime dell'agente su orizzonti lunghi, mentre la vostra infrastruttura governa l'esecuzione, la connettività privata e i file.\u003C\u002Fp>\n\u003Cp>Questa separazione richiama altre architetture cloud: control plane gestito, data plane o execution plane controllato dal cliente. L'attività di progettazione cruciale risiede nella definizione del contratto tra le parti: identità di sessione, identità di ambiente, credenziali, file, permessi degli strumenti, eventi del ciclo di vita e pulizia.\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Fit\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: su cosa dovresti costruire nel 2026?\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">Un confronto basato sulla titolarità del runtime tra le attuali superfici per agenti di OpenAI e su dove debba risiedere ciascun confine di controllo.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Leggi il confronto sui runtime →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Ch2 id=\"section-53\">Cosa potrebbe cambiare questo verdetto?\u003C\u002Fh2>\n\u003Cp>La raccomandazione cambia qualora gli harness gestiti offrano un controllo del runtime sostanzialmente maggiore, se gli harness self-hosted integreranno primitive più semplici per le sessioni durevoli e il ripristino, o se la conformità normativa richiederà che l'intero ciclo dell'agente e l'interazione con il modello restino all'interno dell'infrastruttura da voi gestita.\u003C\u002Fp>\n\u003Cp>Cambia anche con le capacità del modello. Anthropic sottolinea esplicitamente che i presupposti sull'harness possono diventare obsoleti con il miglioramento dei modelli. Un meccanismo di controllo essenziale oggi potrebbe rivelarsi superfluo in seguito, mentre una nuova capacità del modello può introdurre un nuovo requisito di governance.\u003C\u002Fp>\n\u003Ch2 id=\"section-56\">Limitazioni\u003C\u002Fh2>\n\u003Cp>Questo articolo suddivide le responsabilità architetturali; non sostiene che un modello di hosting sia universalmente più sicuro, economico o affidabile di un altro. Questi risultati dipendono dall'implementazione, dal carico di lavoro, dai requisiti di conformità, dalle competenze del team e dal comportamento del provider.\u003C\u002Fp>\n\u003Cp>L'OpenAI Agents API è ancora in beta pubblica e i prodotti per agenti gestiti di diversi fornitori presentano limiti e perimetri differenti. Il modello a due piani ha lo scopo di aiutare a confrontare queste architetture senza dare per scontato che ogni fornitore utilizzi la medesima terminologia.\u003C\u002Fp>\n\u003Ch2 id=\"section-59\">Conclusione\u003C\u002Fh2>\n\u003Cp>La domanda utile non è: \"Dovremmo effettuare il self-hosting dell'agente?\". È: quale piano dobbiamo effettivamente controllare?\u003C\u002Fp>\n\u003Cp>Se il requisito riguarda il calcolo privato, pacchetti personalizzati, file locali o l'accesso alla rete interna, gestisci in self-hosting il piano di esecuzione e mantieni gestito l'harness. Se il requisito riguarda invece la semantica di orchestrazione, la strategia di contesto, il controllo del provider o il ciclo di vita del runtime stesso, allora la gestione diretta dell'harness può essere giustificata. Scala il controllo solo nella misura in cui il requisito lo richiede.\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 gestiti e runtime per agenti in self-hosting\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 ambiente self-hosted con OpenAI Agents API equivale a un agente in self-hosting?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Non del tutto. OpenAI gestisce comunque l&#39;harness Codex gestito, mentre la tua infrastruttura esegue l&#39;ambiente di esecuzione utilizzato per comandi, file e strumenti locali.\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\">Quando è sufficiente un ambiente self-hosted?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Spesso è sufficiente quando i requisiti riguardano l&#39;accesso a reti private, pacchetti personalizzati, file controllati, hardware specifico o policy infrastrutturali, piuttosto che il controllo sul ciclo dell&#39;agente stesso.\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\">Quando dovrei gestire direttamente l&#39;harness?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Prendi in considerazione la gestione diretta dell&#39;harness quando necessiti di una semantica di orchestrazione personalizzata, di una gestione su misura del contesto, dell&#39;instradamento dei provider, di un comportamento di runtime esclusivamente locale o di un altro requisito che risiede nel ciclo dell&#39;agente piuttosto che nell&#39;ambiente di esecuzione.\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\">Il self-hosting migliora automaticamente la sicurezza?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">No. Cambia semplicemente i componenti su cui si ha il controllo. La sicurezza dipende dal flusso di dati, dall&#39;isolamento, dalle credenziali, dai permessi degli strumenti, dal networking, dal logging e dalla progettazione del ciclo di vita su tutti i componenti.\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\">Qual è il principale costo operativo del controllo del ciclo dell&#39;agente?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Si diventa responsabili dello stato persistente, della gestione del contesto, dei tentativi di ripetizione (retries), della cancellazione, del ripristino, dell&#39;osservabilità, della concorrenza, degli aggiornamenti del runtime e della valutazione delle modifiche all&#39;harness.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-64\">Glossario\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\">Termini chiave dell'architettura\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\">Piano dell'harness (Harness plane)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Il livello del runtime dell'agente responsabile dell'esecuzione del ciclo (loop), dell'orchestrazione, della gestione del contesto, della continuità della sessione e del ripristino.\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\">Piano di esecuzione (Execution plane)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">L'ambiente in cui vengono eseguiti i comandi e il codice e in cui si accede a file, pacchetti e risorse locali.\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 gestito (Managed harness)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Un harness per agenti il cui runtime, la gestione delle sessioni e l'orchestrazione sono operati da un fornitore di piattaforma.\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\">Ambiente self-hosted (Self-hosted environment)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Risorse di calcolo e file gestiti dal proprietario dell'applicazione, mentre un harness per agenti separato può rimanere gestito altrove.\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-gestito (Self-operated harness)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Un runtime per agenti il cui ciclo, hosting, strategia di contesto e ciclo di vita sono operati dal team dell'applicazione.\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 di escalation del controllo (Control Escalation Test)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Un metodo decisionale che incrementa la proprietà su infrastruttura e runtime solo quando un requisito non può essere soddisfatto a un livello di controllo inferiore.\u003C\u002Fdd>\u003C\u002Fdiv>\u003C\u002Fdl>\u003C\u002Fsection>\n\u003Ch2 id=\"section-66\">Fonti primarie e ulteriori letture\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 — Architettura dell&#39;Agents API\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">L&#39;attuale separazione tra harness ospitato, ambiente di esecuzione e server applicativo.\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 — Sandbox in self-hosting\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">In che modo gli ambienti di esecuzione operati dai clienti si collegano all&#39;harness gestito e quali responsabilità del ciclo di vita rimangono a carico dell&#39;applicazione.\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 — Ciclo di vita della sandbox\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Provisioning, riconnessione, prevenzione di ambienti duplicati e responsabilità di pulizia per le risorse di calcolo in self-hosting.\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 — Opzioni di runtime per agenti\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Confronto attuale tra Agents API, Codex SDK e Responses API in base alle responsabilità gestite rispetto a quelle operate dall&#39;applicazione.\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 come piattaforma\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Harness open source di Codex e livelli di integrazione per le applicazioni che necessitano di un controllo più approfondito sul 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 — Scalare gli agenti gestiti: disaccoppiare il cervello dalle mani\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Discussione sull&#39;architettura degli agenti gestiti e sul perché i presupposti relativi all&#39;harness debbano evolversi insieme alle capacità del modello.\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 — Harness efficaci per agenti a lunga esecuzione\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Lezioni di ingegneria che dimostrano come le prestazioni degli agenti a lunga esecuzione dipendano in modo sostanziale dalla progettazione dell&#39;harness e da artefatti persistenti.\u003C\u002Fp>\u003C\u002Fa>",{"time":212,"blocks":213,"version":874},1790365648979,[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,493,498,503,532,537,542,547,582,587,592,597,603,608,613,618,623,670,675,680,685,694,699,704,709,714,719,724,729,734,739,744,770,775,805,810,820,829,838,847,856,865],{"id":215,"data":216,"type":220,"tunes":221},"-PDI7SJcNl",{"title":217,"maxLevel":218,"minLevel":219},"Indice dei contenuti",3,2,"tableOfContents",{},{"id":223,"data":224,"type":226,"tunes":227},"intro",{"text":225},"L'espressione “agente self-hosted” nasconde ormai almeno tre architetture diverse. È possibile utilizzare un harness gestito con capacità di calcolo ospitata da OpenAI, un harness gestito collegato a un'infrastruttura gestita da voi, oppure eseguire autonomamente sia l'harness che il ciclo dell'agente. Queste scelte comportano implicazioni molto diverse in termini di controllo, ripristino, gestione del contesto, sicurezza, latenza e onere operativo.","paragraph",{},{"id":229,"data":230,"type":234,"tunes":235},"direct",{"body":231,"title":232,"variant":233},"\u003Cstrong>Non scegliete tra “gestito” e “self-hosted” come se si trattasse di una decisione binaria.\u003C\u002Fstrong> Separate il \u003Cstrong>piano dell'harness\u003C\u002Fstrong> dal \u003Cstrong>piano di esecuzione\u003C\u002Fstrong>. Un harness gestito può comunque utilizzare risorse di calcolo self-hosted. Un ambiente self-hosted vi offre il controllo su file, pacchetti, accesso alla rete ed esecuzione senza richiedere la gestione diretta del ciclo dell'agente. Eseguite l'harness in autonomia solo quando avete bisogno di controllo su orchestrazione, ciclo di vita, logiche di instradamento dei modelli o comportamenti di runtime che un harness gestito non può esporre.","Risposta diretta","info","callout",{},{"id":237,"data":238,"type":234,"tunes":242},"current",{"body":239,"title":240,"variant":241},"L'Agents API di OpenAI è in beta pubblica e la sua architettura può evolversi. La documentazione attuale separa l'harness Codex ospitato da OpenAI dall'ambiente di esecuzione e supporta esplicitamente gli ambienti self-hosted. OpenAI espone inoltre l'harness Codex separatamente tramite il Codex SDK per le infrastrutture gestite direttamente dall'utente.","Aggiornato al 25 settembre 2026","warning",{},{"id":244,"data":245,"type":234,"tunes":248},"note",{"body":246,"title":247,"variant":244},"Il modello Piano dell'Harness \u002F Piano di Esecuzione e il Test di Escalation del Controllo illustrati di seguito sono strumenti pratici di architettura proposti qui. Non costituiscono terminologia ufficiale dei fornitori.","Il modello utilizzato in questo articolo",{},{"id":250,"data":251,"type":42,"tunes":253},"h-mistake",{"text":252,"level":219},"L'errore: trattare il self-hosting come una decisione unica",{},{"id":255,"data":256,"type":226,"tunes":258},"p-mistake-1",{"text":257},"Nel software convenzionale, “self-hosted” significa solitamente che l'applicazione viene eseguita su un'infrastruttura sotto il vostro controllo. I sistemi di agenti complicano questa definizione perché il runtime può essere suddiviso. Il ciclo tra modello e strumenti può essere eseguito in un luogo, mentre l'esecuzione del codice, i file e l'accesso alla rete privata avvengono altrove.",{},{"id":260,"data":261,"type":226,"tunes":263},"p-mistake-2",{"text":262},"L'attuale architettura dell'Agents API di OpenAI rende esplicita questa separazione: OpenAI esegue l'harness, mentre l'ambiente di esecuzione può essere assente, ospitato da OpenAI o self-hosted. Un ambiente self-hosted, quindi, non implica che anche il ciclo dell'agente sia self-hosted.",{},{"id":265,"data":266,"type":226,"tunes":268},"p-mistake-3",{"text":267},"Questa distinzione è importante perché molti team scelgono un runtime più complesso del necessario. Desiderano l'accesso a una rete privata o pacchetti personalizzati, concludono che l'intero agente debba essere self-hosted e finiscono involontariamente per farsi carico della gestione del contesto, dell'orchestrazione, del ripristino e del ciclo di vita, elementi che avrebbero potuto rimanere gestiti.",{},{"id":270,"data":271,"type":42,"tunes":273},"h-three",{"text":272,"level":219},"Tre architetture spesso definite “self-hosted”",{},{"id":275,"data":276,"type":297,"tunes":298},"three-table",{"content":277,"stretched":43,"withHeadings":14},[278,283,288,292],[279,280,281,282],"Architettura","Chi esegue l'harness?","Dove vengono eseguiti codice\u002Ffile","Cosa gestite principalmente",[284,285,286,287],"Harness gestito + ambiente gestito","Piattaforma","Sandbox ospitata sulla piattaforma","Applicazione, strumenti, logica di prodotto, autorizzazione",[289,285,290,291],"Harness gestito + ambiente self-hosted","Il vostro container, VM, laptop, cloud privato o altra risorsa di calcolo","Provisioning dell'ambiente, rete, file e ciclo di vita; la piattaforma gestisce ancora l'harness",[293,294,295,296],"Harness \u002F ciclo dell'agente autogestito","Voi","Il vostro ambiente prescelto","Processo dell'harness, orchestrazione, strategia del contesto, hosting, ripristino, esecuzione e ciclo di vita dell'applicazione","table",{},{"id":300,"data":301,"type":42,"tunes":303},"h-two-plane",{"text":302,"level":219},"Il modello a due piani",{},{"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","Piano dell'harness",[312,312,312],"",{"id":314,"label":315,"values":316},"execution","Piano di esecuzione",[312,312,312],{"id":318,"label":319,"values":320},"application","Piano dell'applicazione",[312,312,312],"Separare il piano dell'harness dal piano di esecuzione",[323,326,329],{"id":324,"label":325},"plane","Piano",{"id":327,"label":328},"owns","Cosa gestisce",{"id":330,"label":331},"questions","Domande da porsi","comparison",{},{"id":335,"data":336,"type":234,"tunes":340},"key-consequence",{"body":337,"title":338,"variant":339},"È possibile gestire in self-hosting il \u003Cstrong>piano di esecuzione\u003C\u002Fstrong> senza dover gestire in self-hosting il \u003Cstrong>piano dell'harness\u003C\u002Fstrong>. Spesso questo rappresenta il giusto compromesso.","Conseguenza architetturale chiave","success",{},{"id":342,"data":343,"type":42,"tunes":345},"h-managed",{"text":344,"level":219},"Harness gestito: cosa si ottiene realmente",{},{"id":347,"data":348,"type":226,"tunes":350},"p-managed-1",{"text":349},"Un harness gestito elimina molto più di un semplice ciclo while. L'attuale Agents API di OpenAI gestisce sessioni, orchestrazione, compattazione del contesto e ripristino. Il lavoro di Anthropic sugli agenti gestiti descrive la stessa motivazione generale: gli harness contengono presupposti sul comportamento dei modelli, e tali presupposti devono evolversi con il miglioramento dei modelli stessi.",{},{"id":352,"data":353,"type":226,"tunes":355},"p-managed-2",{"text":354},"Ciò significa che il vantaggio non risiede solo in un minor numero di righe di codice. La piattaforma può aggiornare il comportamento di runtime, la gestione del contesto su orizzonti temporali lunghi, la coordinazione dei sotto-agenti e il ripristino, senza obbligare ogni team di sviluppo a ricostruire tali meccanismi.",{},{"id":357,"data":358,"type":368,"tunes":369},"managed-list",{"meta":359,"items":360,"style":367},{},[361,362,363,364,365,366],"Meno codice di orchestrazione a carico dell'applicazione.","Gestione nativa delle sessioni persistenti.","Compattazione del contesto e ripristino completamente gestiti.","Un runtime in grado di evolversi di pari passo con le capacità dei modelli.","Adozione più semplice delle funzionalità native della piattaforma per sotto-agenti e agenti a lunga esecuzione.","Minore onere operativo potenziale per i team il cui valore differenziante non è l'harness stesso.","unordered","list",{},{"id":371,"data":372,"type":42,"tunes":374},"h-managed-cost",{"text":373,"level":219},"Harness gestito: a cosa si rinuncia",{},{"id":376,"data":377,"type":226,"tunes":379},"p-managed-cost-1",{"text":378},"Delegare l'harness significa anche delegare una parte del controllo. La tua applicazione non gestisce più ogni singolo dettaglio relativo a iterazione, strategia di contesto, orchestrazione ed evoluzione del runtime. Un aggiornamento della piattaforma può migliorare il sistema, ma può anche alterare comportamenti da cui il tuo prodotto dipendeva implicitamente.",{},{"id":381,"data":382,"type":226,"tunes":384},"p-managed-cost-2",{"text":383},"Ciò introduce un tipo diverso di requisito ingegneristico: valutazioni (eval) rigorose, confini di prodotto espliciti e un livello di integrazione che impedisca al comportamento della sessione gestita di diventare la fonte di verità del tuo business.",{},{"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],"Compromesso dell'harness gestito","Cosa comporta a livello operativo",[393,394],"Minore controllo sul loop","Non puoi dare per scontato che ogni dettaglio di orchestrazione sia definito dall'applicazione",[396,397],"Evoluzione della piattaforma","Il comportamento dell'harness può migliorare o cambiare senza che il tuo codice venga modificato",[399,400],"Ciclo di vita specifico del vendor","Sessioni, eventi e semantica di ripristino entrano a far parte della superficie di integrazione",[402,403],"Confine di osservabilità","Le tracce della piattaforma devono essere correlate ai dati di audit dell'applicazione",[405,406],"Costo di portabilità","Passare a un altro harness in un secondo momento potrebbe richiedere molto più della semplice sostituzione degli endpoint del modello",{},{"id":409,"data":410,"type":42,"tunes":412},"h-self-env",{"text":411,"level":219},"Ambiente di esecuzione self-hosted: l'architettura intermedia",{},{"id":414,"data":415,"type":226,"tunes":417},"p-self-env-1",{"text":416},"Il modello di ambiente self-hosted di OpenAI è rilevante perché disaccoppia il calcolo privato dalla proprietà dell'harness. La piattaforma continua a eseguire l'harness di Codex, mentre un executor viene eseguito all'interno del tuo ambiente e riceve comandi tramite una connessione in uscita.",{},{"id":419,"data":420,"type":226,"tunes":422},"p-self-env-2",{"text":421},"Mantieni il controllo su provisioning, file, dipendenze, accesso alla rete e pulizia. L'harness può quindi operare su un'infrastruttura privata o su software personalizzato senza richiedere il trasferimento dell'intero runtime dell'agente nella tua applicazione.",{},{"id":424,"data":425,"type":226,"tunes":427},"p-self-env-3",{"text":426},"Il costo da sostenere è la responsabilità del ciclo di vita. La tua applicazione deve mappare le sessioni sulle risorse di calcolo, evitare il provisioning duplicato, riconnettere gli ambienti, coordinare l'arresto e preservare tutti i file che devono sopravvivere all'ambiente.",{},{"id":429,"data":430,"type":42,"tunes":432},"h-enough",{"text":431,"level":218},"Quando l'esecuzione self-hosted è sufficiente",{},{"id":434,"data":435,"type":368,"tunes":444},"enough-list",{"meta":436,"items":437,"style":367},{},[438,439,440,441,442,443],"L'agente necessita di accedere a un VPC privato o a un servizio interno.","L'agente necessita di binari personalizzati, pacchetti, driver o software di sistema.","Il carico di lavoro deve essere eseguito su hardware o account cloud sotto il tuo controllo.","I file devono rimanere all'interno di un ambiente controllato.","Hai bisogno del tuo provider di sandbox o modello di isolamento.","Desideri un'orchestrazione gestita dalla piattaforma ma un'esecuzione controllata a livello di infrastruttura.",{},{"id":446,"data":447,"type":42,"tunes":449},"h-own-harness",{"text":448,"level":219},"Quando potrebbe essere necessario gestire anche l'harness",{},{"id":451,"data":452,"type":226,"tunes":454},"p-own-1",{"text":453},"Prendere il controllo dell'harness diventa giustificato quando l'harness stesso fa parte della differenziazione del tuo prodotto o dei tuoi vincoli. L'attuale panoramica dei runtime di OpenAI posiziona il Codex SDK per l'esecuzione dell'harness Codex nell'infrastruttura da te gestita, mentre Responses rappresenta l'opzione di livello inferiore quando desideri controllare direttamente il loop dell'agente.",{},{"id":456,"data":457,"type":226,"tunes":459},"p-own-2",{"text":458},"Il punto chiave è identificare un requisito che appartiene autenticamente al piano dell'harness e non a quello dell'esecuzione.",{},{"id":461,"data":462,"type":297,"tunes":492},"requirements-table",{"content":463,"stretched":43,"withHeadings":14},[464,468,471,473,476,479,482,485,488],[465,466,467],"Requisito","Problema del piano di esecuzione o dell'harness?","Direzione probabile",[469,315,470],"Accesso a database privato","Harness gestito + ambiente self-hosted possono essere sufficienti",[472,315,289],"Pacchetti Linux personalizzati",[474,315,475],"Hardware GPU personalizzato","Harness gestito + ambiente self-hosted ove supportato",[477,310,478],"Logica personalizzata di arresto dell'agente","Harness autogestito \u002F loop personalizzato",[480,310,481],"Routing dei modelli multi-provider a ogni passaggio","Loop personalizzato o harness gestito in proprio",[483,310,484],"Algoritmo personalizzato di compattazione del contesto","Harness autogestito se il runtime gestito non può esporlo",[486,310,487],"Semantica di orchestrazione deterministica richiesta dal prodotto","Harness autogestito o loop personalizzato strettamente controllato",[489,490,491],"Deployment del prodotto esclusivamente in locale senza dipendenze da harness gestiti","Piano dell'harness + piano di esecuzione","Runtime autogestito",{},{"id":494,"data":495,"type":42,"tunes":497},"h-control-test",{"text":496,"level":219},"Il test di escalation del controllo",{},{"id":499,"data":500,"type":226,"tunes":502},"p-control-intro",{"text":501},"Adotta l'architettura con il minor grado di self-hosting in grado di soddisfare il requisito effettivo. Incrementa il livello di controllo un livello alla volta.",{},{"id":504,"data":505,"type":530,"tunes":531},"control-flow",{"steps":506,"title":528,"orientation":529},[507,510,513,516,519,522,525],{"label":508,"description":509},"1. Parti dal confine applicativo","Mantieni la logica di dominio, l'autorizzazione e le azioni di business critiche all'interno del tuo prodotto, a prescindere dal runtime dell'agente.",{"label":511,"description":512},"2. Valuta se l'agente necessita di esecuzione locale","In caso contrario, un harness gestito senza un ambiente dedicato potrebbe essere sufficiente.",{"label":514,"description":515},"3. Verifica se il calcolo ospitato dalla piattaforma è accettabile","Se sì, utilizza un ambiente gestito ed evita di farti carico inutilmente dell'infrastruttura.",{"label":517,"description":518},"4. In caso contrario, passa al self-hosting del piano di esecuzione","Collega il tuo ambiente per gestire reti private, file, pacchetti o risorse di calcolo controllate.",{"label":520,"description":521},"5. Ricalcola i vincoli rimanenti","Se il requisito è soddisfatto, fermati. Non gestire l'harness in autonomia solo per pura simmetria architetturale.",{"label":523,"description":524},"6. Estendi il controllo all'harness solo per requisiti specifici dell'harness","Prendi in carico l'harness Codex o un loop di agenti personalizzato solo quando l'orchestrazione, la strategia di contesto, il ciclo di vita o la portabilità lo richiedono realmente.",{"label":526,"description":527},"7. Dimostra che il maggior controllo ripaga il maggior carico operativo","Misura affidabilità, latenza, costi, ripristino, osservabilità e carico ingegneristico prima di impegnarti.","Test di escalation del controllo","auto","processFlow",{},{"id":533,"data":534,"type":42,"tunes":536},"h-ops",{"text":535,"level":219},"L'onere operativo cresce in modo non lineare quando gestisci l'harness",{},{"id":538,"data":539,"type":226,"tunes":541},"p-ops-1",{"text":540},"Un loop gestito autonomamente sembra semplice in una demo: chiama il modello, ispeziona la chiamata allo strumento, esegui lo strumento, aggiungi il risultato, ripeti. La produzione aggiunge stato durevole, tentativi di retry, eventi duplicati, annullamento, approvazione, overflow del contesto, timeout degli strumenti, riavvii dei processi, persistenza delle tracce, contropressione (backpressure), lavoro concorrente e ripristino dopo effetti collaterali parziali.",{},{"id":543,"data":544,"type":226,"tunes":546},"p-ops-2",{"text":545},"La ricerca sugli agenti a lunga esecuzione condotta da Anthropic dimostra ripetutamente che la progettazione dell'harness influisce in modo sostanziale sulle prestazioni. Il loro lavoro sullo sviluppo di applicazioni a lunga esecuzione impiega pianificazione esplicita, artefatti strutturati e agenti valutatori, poiché i cicli ingenui tendono a perdere i progressi o a terminare prematuramente. L'harness è quindi logica di produzione, non semplice idraulica.",{},{"id":548,"data":549,"type":297,"tunes":581},"ops-table",{"content":550,"stretched":43,"withHeadings":14},[551,554,557,560,563,566,569,572,575,578],[552,553],"Se gestisci l'harness, devi anche avere una risposta per","Perché è importante",[555,556],"Stato di sessione durevole","I processi si riavviano; le attività a lunga esecuzione devono riprendere correttamente",[558,559],"Compattazione del contesto","La cronologia finisce per superare il contesto operativo pratico",[561,562],"Idempotenza degli strumenti","I tentativi di retry non devono ripetere effetti collaterali irreversibili",[564,565],"Annullamento e interruzione","Gli utenti e i sistemi devono poter interrompere o reindirizzare il lavoro",[567,568],"Ripristino dopo un'esecuzione parziale","Uno strumento può avere successo anche se l'agente non ne riceve mai il risultato",[570,571],"Concorrenza","Più task, worker o agenti possono interagire con lo stato condiviso",[573,574],"Osservabilità","L'output finale non è sufficiente per il debug dei fallimenti a runtime",[576,577],"Controllo delle versioni","Gli aggiornamenti dell'harness possono modificare il comportamento anche quando i prompt restano identici",[579,580],"Valutazione","Le modifiche al runtime richiedono test di regressione su traiettorie rappresentative",{},{"id":583,"data":584,"type":42,"tunes":586},"h-security",{"text":585,"level":219},"Perimetro di sicurezza: il calcolo in self-hosting non rende automaticamente privato l'agente",{},{"id":588,"data":589,"type":226,"tunes":591},"p-sec-1",{"text":590},"Un ambiente di esecuzione self-hosted controlla dove vengono eseguiti i comandi e dove risiedono i file, ma l'harness gestito e l'interazione con il modello attraversano comunque il perimetro del servizio. I team dovrebbero quindi mappare i flussi di dati in modo esplicito anziché usare \"self-hosted\" come scorciatoia per indicare una proprietà di privacy.",{},{"id":593,"data":594,"type":226,"tunes":596},"p-sec-2",{"text":595},"L'executor self-hosted di OpenAI utilizza credenziali di ambiente e connessioni in uscita con restrizioni. Si tratta di un isolamento utile, ma la vostra applicazione richiede comunque regole proprie per segreti, esposizione alla rete privata, isolamento tra utente e ambiente, conservazione dei file, autorizzazione degli strumenti e classificazione dei dati.",{},{"id":598,"data":599,"type":234,"tunes":602},"sec-callout",{"body":600,"title":601,"variant":241},"\u003Cstrong>Il controllo dell'infrastruttura, l'isolamento dell'esecuzione e i confini di governance dei dati sono correlati ma non identici.\u003C\u002Fstrong> Prendete decisioni distinte per ciascuno di essi.","Importante distinzione",{},{"id":604,"data":605,"type":42,"tunes":607},"h-cost",{"text":606,"level":219},"Latenza e costi: il controllo può spostare i colli di bottiglia anziché rimuoverli",{},{"id":609,"data":610,"type":226,"tunes":612},"p-cost-1",{"text":611},"Il self-hosting può ridurre alcuni costi relativi al percorso dati o all'avvio dell'ambiente, ma può anche incrementare tempi di provisioning, ciclo di vita dei WebSocket, cold start, pulizia delle sandbox, infrastruttura di osservabilità e carico ingegneristico. Un ambiente gestito può costare di più per unità di calcolo, risultando però più economico da gestire con volumi bassi o discontinui.",{},{"id":614,"data":615,"type":226,"tunes":617},"p-cost-2",{"text":616},"Il confronto corretto riguarda il costo complessivo del sistema: utilizzo di modelli e strumenti, tempo di ambiente, infrastruttura, impegno ingegneristico, reperibilità (on-call), ripristino dagli errori e il costo di un'iterazione più lenta.",{},{"id":619,"data":620,"type":42,"tunes":622},"h-matrix",{"text":621,"level":219},"Una matrice decisionale per la produzione",{},{"id":624,"data":625,"type":297,"tunes":669},"decision-matrix",{"content":626,"stretched":43,"withHeadings":14},[627,630,635,638,640,644,648,653,657,660,664],[628,284,289,629],"Vincolo","Harness \u002F loop gestito autonomamente",[631,632,633,634],"Percorso più rapido verso la produzione","Forte","Moderato","Più debole",[636,637,632,632],"Esecuzione su rete privata","Debole \u002F dipende dalla configurazione di connettività",[639,633,632,632],"Pacchetti personalizzati \u002F software di sistema",[641,642,642,643],"Controllo a livello di harness","Basso","Massimo",[645,646,647,643],"Carico operativo","Minimo","Medio",[649,650,651,652],"Portabilità","Minima","Media","Potenzialmente massima se progettata intenzionalmente",[654,655,655,656],"Controllo della strategia di contesto","Gestito dalla piattaforma","Controllato dall'applicazione",[658,642,659,659],"Controllo dell'infrastruttura di esecuzione","Alto",[661,662,662,663],"Capacità di beneficiare degli aggiornamenti dell'harness gestito","Massima","L'adozione è interamente a carico vostro",[665,666,667,668],"Scelta ideale per","Team che si differenziano a livello di prodotto\u002Fstrumenti","Team che richiedono calcolo privato\u002Fpersonalizzato senza gestire l'orchestrazione","Team per cui la semantica di runtime costituisce di per sé un requisito fondamentale",{},{"id":671,"data":672,"type":42,"tunes":674},"h-hybrid",{"text":673,"level":219},"L'approccio ibrido non è un compromesso — è spesso l'architettura più pulita",{},{"id":676,"data":677,"type":226,"tunes":679},"p-hybrid-1",{"text":678},"Un harness gestito con esecuzione self-hosted non equivale a un \"self-hosted a metà\". Si tratta di una separazione intenzionale delle responsabilità. La piattaforma gestisce la complessità del runtime dell'agente su orizzonti lunghi, mentre la vostra infrastruttura governa l'esecuzione, la connettività privata e i file.",{},{"id":681,"data":682,"type":226,"tunes":684},"p-hybrid-2",{"text":683},"Questa separazione richiama altre architetture cloud: control plane gestito, data plane o execution plane controllato dal cliente. L'attività di progettazione cruciale risiede nella definizione del contratto tra le parti: identità di sessione, identità di ambiente, credenziali, file, permessi degli strumenti, eventi del ciclo di vita e pulizia.",{},{"id":686,"data":687,"type":692,"tunes":693},"ref-runtime",{"url":688,"title":689,"excerpt":690,"ctaLabel":691},"https:\u002F\u002Fstajic.de\u002Fit\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: su cosa dovresti costruire nel 2026?","Un confronto basato sulla titolarità del runtime tra le attuali superfici per agenti di OpenAI e su dove debba risiedere ciascun confine di controllo.","Leggi il confronto sui runtime","referralArticle",{},{"id":695,"data":696,"type":42,"tunes":698},"h-change",{"text":697,"level":219},"Cosa potrebbe cambiare questo verdetto?",{},{"id":700,"data":701,"type":226,"tunes":703},"p-change-1",{"text":702},"La raccomandazione cambia qualora gli harness gestiti offrano un controllo del runtime sostanzialmente maggiore, se gli harness self-hosted integreranno primitive più semplici per le sessioni durevoli e il ripristino, o se la conformità normativa richiederà che l'intero ciclo dell'agente e l'interazione con il modello restino all'interno dell'infrastruttura da voi gestita.",{},{"id":705,"data":706,"type":226,"tunes":708},"p-change-2",{"text":707},"Cambia anche con le capacità del modello. Anthropic sottolinea esplicitamente che i presupposti sull'harness possono diventare obsoleti con il miglioramento dei modelli. Un meccanismo di controllo essenziale oggi potrebbe rivelarsi superfluo in seguito, mentre una nuova capacità del modello può introdurre un nuovo requisito di governance.",{},{"id":710,"data":711,"type":42,"tunes":713},"h-limit",{"text":712,"level":219},"Limitazioni",{},{"id":715,"data":716,"type":226,"tunes":718},"p-limit-1",{"text":717},"Questo articolo suddivide le responsabilità architetturali; non sostiene che un modello di hosting sia universalmente più sicuro, economico o affidabile di un altro. Questi risultati dipendono dall'implementazione, dal carico di lavoro, dai requisiti di conformità, dalle competenze del team e dal comportamento del provider.",{},{"id":720,"data":721,"type":226,"tunes":723},"p-limit-2",{"text":722},"L'OpenAI Agents API è ancora in beta pubblica e i prodotti per agenti gestiti di diversi fornitori presentano limiti e perimetri differenti. Il modello a due piani ha lo scopo di aiutare a confrontare queste architetture senza dare per scontato che ogni fornitore utilizzi la medesima terminologia.",{},{"id":725,"data":726,"type":42,"tunes":728},"h-conclusion",{"text":727,"level":219},"Conclusione",{},{"id":730,"data":731,"type":226,"tunes":733},"p-conclusion-1",{"text":732},"La domanda utile non è: \"Dovremmo effettuare il self-hosting dell'agente?\". È: quale piano dobbiamo effettivamente controllare?",{},{"id":735,"data":736,"type":226,"tunes":738},"p-conclusion-2",{"text":737},"Se il requisito riguarda il calcolo privato, pacchetti personalizzati, file locali o l'accesso alla rete interna, gestisci in self-hosting il piano di esecuzione e mantieni gestito l'harness. Se il requisito riguarda invece la semantica di orchestrazione, la strategia di contesto, il controllo del provider o il ciclo di vita del runtime stesso, allora la gestione diretta dell'harness può essere giustificata. Scala il controllo solo nella misura in cui il requisito lo richiede.",{},{"id":740,"data":741,"type":42,"tunes":743},"h-faq",{"text":742,"level":219},"FAQ",{},{"id":745,"data":746,"type":745,"tunes":769},"faq",{"items":747,"title":768},[748,752,756,760,764],{"id":749,"answer":750,"question":751},"faq1","Non del tutto. OpenAI gestisce comunque l'harness Codex gestito, mentre la tua infrastruttura esegue l'ambiente di esecuzione utilizzato per comandi, file e strumenti locali.","Un ambiente self-hosted con OpenAI Agents API equivale a un agente in self-hosting?",{"id":753,"answer":754,"question":755},"faq2","Spesso è sufficiente quando i requisiti riguardano l'accesso a reti private, pacchetti personalizzati, file controllati, hardware specifico o policy infrastrutturali, piuttosto che il controllo sul ciclo dell'agente stesso.","Quando è sufficiente un ambiente self-hosted?",{"id":757,"answer":758,"question":759},"faq3","Prendi in considerazione la gestione diretta dell'harness quando necessiti di una semantica di orchestrazione personalizzata, di una gestione su misura del contesto, dell'instradamento dei provider, di un comportamento di runtime esclusivamente locale o di un altro requisito che risiede nel ciclo dell'agente piuttosto che nell'ambiente di esecuzione.","Quando dovrei gestire direttamente l'harness?",{"id":761,"answer":762,"question":763},"faq4","No. Cambia semplicemente i componenti su cui si ha il controllo. La sicurezza dipende dal flusso di dati, dall'isolamento, dalle credenziali, dai permessi degli strumenti, dal networking, dal logging e dalla progettazione del ciclo di vita su tutti i componenti.","Il self-hosting migliora automaticamente la sicurezza?",{"id":765,"answer":766,"question":767},"faq5","Si diventa responsabili dello stato persistente, della gestione del contesto, dei tentativi di ripetizione (retries), della cancellazione, del ripristino, dell'osservabilità, della concorrenza, degli aggiornamenti del runtime e della valutazione delle modifiche all'harness.","Qual è il principale costo operativo del controllo del ciclo dell'agente?","Harness gestiti e runtime per agenti in self-hosting",{},{"id":771,"data":772,"type":42,"tunes":774},"h-glossary",{"text":773,"level":219},"Glossario",{},{"id":776,"data":777,"type":776,"tunes":804},"glossary",{"title":778,"entries":779},"Termini chiave dell'architettura",[780,784,788,792,796,800],{"term":781,"anchor":782,"definition":783},"Piano dell'harness (Harness plane)","harness-plane","Il livello del runtime dell'agente responsabile dell'esecuzione del ciclo (loop), dell'orchestrazione, della gestione del contesto, della continuità della sessione e del ripristino.",{"term":785,"anchor":786,"definition":787},"Piano di esecuzione (Execution plane)","execution-plane","L'ambiente in cui vengono eseguiti i comandi e il codice e in cui si accede a file, pacchetti e risorse locali.",{"term":789,"anchor":790,"definition":791},"Harness gestito (Managed harness)","managed-harness","Un harness per agenti il cui runtime, la gestione delle sessioni e l'orchestrazione sono operati da un fornitore di piattaforma.",{"term":793,"anchor":794,"definition":795},"Ambiente self-hosted (Self-hosted environment)","self-hosted-environment","Risorse di calcolo e file gestiti dal proprietario dell'applicazione, mentre un harness per agenti separato può rimanere gestito altrove.",{"term":797,"anchor":798,"definition":799},"Harness auto-gestito (Self-operated harness)","self-operated-harness","Un runtime per agenti il cui ciclo, hosting, strategia di contesto e ciclo di vita sono operati dal team dell'applicazione.",{"term":801,"anchor":802,"definition":803},"Test di escalation del controllo (Control Escalation Test)","control-escalation-test","Un metodo decisionale che incrementa la proprietà su infrastruttura e runtime solo quando un requisito non può essere soddisfatto a un livello di controllo inferiore.",{},{"id":806,"data":807,"type":42,"tunes":809},"h-sources",{"text":808,"level":219},"Fonti primarie e ulteriori letture",{},{"id":811,"data":812,"type":818,"tunes":819},"src-openai-architecture",{"link":813,"meta":814},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Farchitecture",{"image":815,"title":816,"description":817},{"url":312},"OpenAI — Architettura dell'Agents API","L'attuale separazione tra harness ospitato, ambiente di esecuzione e server applicativo.","linkTool",{},{"id":821,"data":822,"type":818,"tunes":828},"src-openai-selfhosted",{"link":823,"meta":824},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Fenvironments\u002Fself-hosted",{"image":825,"title":826,"description":827},{"url":312},"OpenAI — Sandbox in self-hosting","In che modo gli ambienti di esecuzione operati dai clienti si collegano all'harness gestito e quali responsabilità del ciclo di vita rimangono a carico dell'applicazione.",{},{"id":830,"data":831,"type":818,"tunes":837},"src-openai-lifecycle",{"link":832,"meta":833},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Fenvironments\u002Flifecycle",{"image":834,"title":835,"description":836},{"url":312},"OpenAI — Ciclo di vita della sandbox","Provisioning, riconnessione, prevenzione di ambienti duplicati e responsabilità di pulizia per le risorse di calcolo in self-hosting.",{},{"id":839,"data":840,"type":818,"tunes":846},"src-openai-runtime",{"link":841,"meta":842},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents",{"image":843,"title":844,"description":845},{"url":312},"OpenAI — Opzioni di runtime per agenti","Confronto attuale tra Agents API, Codex SDK e Responses API in base alle responsabilità gestite rispetto a quelle operate dall'applicazione.",{},{"id":848,"data":849,"type":818,"tunes":855},"src-openai-platform",{"link":850,"meta":851},"https:\u002F\u002Fdevelopers.openai.com\u002Fblog\u002Fcodex-as-a-platform",{"image":852,"title":853,"description":854},{"url":312},"OpenAI — Codex come piattaforma","Harness open source di Codex e livelli di integrazione per le applicazioni che necessitano di un controllo più approfondito sul runtime.",{},{"id":857,"data":858,"type":818,"tunes":864},"src-anthropic-managed",{"link":859,"meta":860},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fmanaged-agents",{"image":861,"title":862,"description":863},{"url":312},"Anthropic — Scalare gli agenti gestiti: disaccoppiare il cervello dalle mani","Discussione sull'architettura degli agenti gestiti e sul perché i presupposti relativi all'harness debbano evolversi insieme alle capacità del modello.",{},{"id":866,"data":867,"type":818,"tunes":873},"src-anthropic-harness",{"link":868,"meta":869},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"image":870,"title":871,"description":872},{"url":312},"Anthropic — Harness efficaci per agenti a lunga esecuzione","Lezioni di ingegneria che dimostrano come le prestazioni degli agenti a lunga esecuzione dipendano in modo sostanziale dalla progettazione dell'harness e da artefatti persistenti.",{},"2.31","“Agente self-hosted” può indicare architetture molto diverse. Questa guida separa l'harness gestito, l'ambiente di esecuzione self-hosted e il loop dell'agente completamente autogestito—e mostra quale perimetro di controllo serve effettivamente ai team.","\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":883,"de":884,"sr":885,"es":886,"fr":887,"it":888,"ru":889,"zh":890},"\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",[892,896,900],{"id":893,"name":894,"slug":895},89,"Harness di valutazione","evaluation-harness",{"id":897,"name":898,"slug":899},78,"Ciclo di ottimizzazione","optimization-loop",{"id":901,"name":902,"slug":903},91,"Monitoraggio (qualità, drift)","monitoring",{"id":905,"login":906,"email":907,"displayName":908},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[910,1458],{"lang":911,"title":912,"content":913,"contentJson":914,"excerpt":1457},"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":915,"blocks":916,"version":1456},1790352404508,[917,921,925,930,935,940,944,948,952,956,960,983,987,1008,1013,1017,1021,1025,1036,1040,1044,1048,1070,1074,1078,1082,1086,1090,1101,1105,1109,1113,1145,1149,1153,1179,1183,1187,1191,1225,1229,1233,1237,1242,1246,1250,1254,1258,1301,1305,1309,1313,1320,1324,1328,1332,1336,1340,1344,1348,1352,1356,1359,1379,1383,1403,1407,1414,1421,1428,1435,1442,1449],{"id":215,"data":918,"type":220,"tunes":920},{"title":919,"maxLevel":218,"minLevel":219},"Contents",{},{"id":223,"data":922,"type":226,"tunes":924},{"text":923},"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":926,"type":234,"tunes":929},{"body":927,"title":928,"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":931,"type":234,"tunes":934},{"body":932,"title":933,"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":936,"type":234,"tunes":939},{"body":937,"title":938,"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":941,"type":42,"tunes":943},{"text":942,"level":219},"The mistake: treating self-hosting as one decision",{},{"id":255,"data":945,"type":226,"tunes":947},{"text":946},"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":949,"type":226,"tunes":951},{"text":950},"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":953,"type":226,"tunes":955},{"text":954},"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":957,"type":42,"tunes":959},{"text":958,"level":219},"Three architectures that are often called “self-hosted”",{},{"id":275,"data":961,"type":297,"tunes":982},{"content":962,"stretched":43,"withHeadings":14},[963,968,973,977],[964,965,966,967],"Architecture","Who runs the harness?","Where code\u002Ffiles execute","What you primarily own",[969,970,971,972],"Managed harness + managed environment","Platform","Platform-hosted sandbox","Application, tools, product logic, authorization",[974,970,975,976],"Managed harness + self-hosted environment","Your container, VM, laptop, private cloud or other compute","Environment provisioning, networking, files and lifecycle; platform still owns harness",[978,979,980,981],"Self-operated harness \u002F agent loop","You","Your chosen environment","Harness process, orchestration, context strategy, hosting, recovery, execution and application lifecycle",{},{"id":300,"data":984,"type":42,"tunes":986},{"text":985,"level":219},"The two-plane model",{},{"id":305,"data":988,"type":332,"tunes":1007},{"rows":989,"title":999,"layout":297,"columns":1000},[990,993,996],{"id":309,"label":991,"values":992},"Harness plane",[312,312,312],{"id":314,"label":994,"values":995},"Execution plane",[312,312,312],{"id":318,"label":997,"values":998},"Application plane",[312,312,312],"Separate the harness plane from the execution plane",[1001,1003,1005],{"id":324,"label":1002},"Plane",{"id":327,"label":1004},"What it owns",{"id":330,"label":1006},"Questions to ask",{},{"id":335,"data":1009,"type":234,"tunes":1012},{"body":1010,"title":1011,"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":1014,"type":42,"tunes":1016},{"text":1015,"level":219},"Managed harness: what you actually gain",{},{"id":347,"data":1018,"type":226,"tunes":1020},{"text":1019},"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":1022,"type":226,"tunes":1024},{"text":1023},"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":1026,"type":368,"tunes":1035},{"meta":1027,"items":1028,"style":367},{},[1029,1030,1031,1032,1033,1034],"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":1037,"type":42,"tunes":1039},{"text":1038,"level":219},"Managed harness: what you give up",{},{"id":376,"data":1041,"type":226,"tunes":1043},{"text":1042},"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":1045,"type":226,"tunes":1047},{"text":1046},"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":1049,"type":297,"tunes":1069},{"content":1050,"stretched":43,"withHeadings":14},[1051,1054,1057,1060,1063,1066],[1052,1053],"Managed-harness trade-off","What it means operationally",[1055,1056],"Less loop control","You cannot assume every orchestration detail is application-defined",[1058,1059],"Platform evolution","Harness behaviour can improve or change without your code changing",[1061,1062],"Vendor-specific lifecycle","Sessions, events and recovery semantics become part of the integration surface",[1064,1065],"Observability boundary","Platform traces must be joined with application audit data",[1067,1068],"Portability cost","Moving to another harness later may require more than swapping model endpoints",{},{"id":409,"data":1071,"type":42,"tunes":1073},{"text":1072,"level":219},"Self-hosted execution environment: the middle architecture",{},{"id":414,"data":1075,"type":226,"tunes":1077},{"text":1076},"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":1079,"type":226,"tunes":1081},{"text":1080},"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":1083,"type":226,"tunes":1085},{"text":1084},"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":1087,"type":42,"tunes":1089},{"text":1088,"level":218},"When self-hosted execution is enough",{},{"id":434,"data":1091,"type":368,"tunes":1100},{"meta":1092,"items":1093,"style":367},{},[1094,1095,1096,1097,1098,1099],"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":1102,"type":42,"tunes":1104},{"text":1103,"level":219},"When you may need to own the harness too",{},{"id":451,"data":1106,"type":226,"tunes":1108},{"text":1107},"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":1110,"type":226,"tunes":1112},{"text":1111},"The key is to identify a requirement that genuinely lives in the harness plane, not the execution plane.",{},{"id":461,"data":1114,"type":297,"tunes":1144},{"content":1115,"stretched":43,"withHeadings":14},[1116,1120,1123,1125,1128,1131,1134,1137,1140],[1117,1118,1119],"Requirement","Execution-plane problem or harness-plane problem?","Likely direction",[1121,994,1122],"Private database access","Managed harness + self-hosted environment may be sufficient",[1124,994,974],"Custom Linux packages",[1126,994,1127],"Custom GPU hardware","Managed harness + self-hosted environment where supported",[1129,991,1130],"Custom agent stopping logic","Self-operated harness \u002F custom loop",[1132,991,1133],"Cross-provider model routing at every step","Custom loop or harness you operate",[1135,991,1136],"Custom context-compaction algorithm","Self-operated harness if the managed runtime cannot expose it",[1138,991,1139],"Deterministic orchestration semantics required by product","Self-operated harness or tightly controlled custom loop",[1141,1142,1143],"Local-only product deployment with no managed harness dependency","Harness plane + execution plane","Self-operated runtime",{},{"id":494,"data":1146,"type":42,"tunes":1148},{"text":1147,"level":219},"The Control Escalation Test",{},{"id":499,"data":1150,"type":226,"tunes":1152},{"text":1151},"Use the least self-hosted architecture that satisfies the actual requirement. Escalate control one layer at a time.",{},{"id":504,"data":1154,"type":530,"tunes":1178},{"steps":1155,"title":1177,"orientation":529},[1156,1159,1162,1165,1168,1171,1174],{"label":1157,"description":1158},"1. Start with the application boundary","Keep domain truth, authorization and consequential business actions in your own product regardless of agent runtime.",{"label":1160,"description":1161},"2. Ask whether the agent needs local execution","If not, a managed harness without a dedicated environment may be enough.",{"label":1163,"description":1164},"3. Ask whether platform-hosted compute is acceptable","If yes, use a managed environment and avoid unnecessary infrastructure ownership.",{"label":1166,"description":1167},"4. If not, self-host the execution plane","Connect your own environment for private network, files, packages or controlled compute.",{"label":1169,"description":1170},"5. Re-evaluate the remaining constraint","If the requirement is now satisfied, stop. Do not self-host the harness simply for architectural symmetry.",{"label":1172,"description":1173},"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":1175,"description":1176},"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":533,"data":1180,"type":42,"tunes":1182},{"text":1181,"level":219},"Operational burden grows nonlinearly when you own the harness",{},{"id":538,"data":1184,"type":226,"tunes":1186},{"text":1185},"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":543,"data":1188,"type":226,"tunes":1190},{"text":1189},"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":548,"data":1192,"type":297,"tunes":1224},{"content":1193,"stretched":43,"withHeadings":14},[1194,1197,1200,1203,1206,1209,1212,1215,1218,1221],[1195,1196],"If you own the harness, you also need an answer for","Why it matters",[1198,1199],"Durable session state","Processes restart; long-running work must resume correctly",[1201,1202],"Context compaction","History eventually exceeds practical working context",[1204,1205],"Tool idempotency","Retries must not repeat irreversible side effects",[1207,1208],"Cancellation and interruption","Users and systems need to stop or redirect work",[1210,1211],"Recovery after partial execution","A tool may succeed even if the agent never receives the result",[1213,1214],"Concurrency","Multiple tasks, workers or agents can touch shared state",[1216,1217],"Observability","Final output is insufficient for debugging runtime failures",[1219,1220],"Versioning","Harness updates can change behaviour even when prompts remain constant",[1222,1223],"Evaluation","Runtime changes need regression testing across representative trajectories",{},{"id":583,"data":1226,"type":42,"tunes":1228},{"text":1227,"level":219},"Security boundary: self-hosting compute does not automatically make the agent private",{},{"id":588,"data":1230,"type":226,"tunes":1232},{"text":1231},"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":593,"data":1234,"type":226,"tunes":1236},{"text":1235},"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":598,"data":1238,"type":234,"tunes":1241},{"body":1239,"title":1240,"variant":241},"\u003Cstrong>Infrastructure control, execution isolation and data-governance boundaries are related but not identical.\u003C\u002Fstrong> Decide them separately.","Important distinction",{},{"id":604,"data":1243,"type":42,"tunes":1245},{"text":1244,"level":219},"Latency and cost: control can move bottlenecks rather than remove them",{},{"id":609,"data":1247,"type":226,"tunes":1249},{"text":1248},"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":614,"data":1251,"type":226,"tunes":1253},{"text":1252},"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":619,"data":1255,"type":42,"tunes":1257},{"text":1256,"level":219},"A production decision matrix",{},{"id":624,"data":1259,"type":297,"tunes":1300},{"content":1260,"stretched":43,"withHeadings":14},[1261,1264,1269,1272,1274,1278,1282,1285,1289,1292,1295],[1262,969,974,1263],"Constraint","Self-operated harness \u002F loop",[1265,1266,1267,1268],"Fastest path to production","Strong","Moderate","Weakest",[1270,1271,1266,1266],"Private-network execution","Weak \u002F depends on connectivity design",[1273,1267,1266,1266],"Custom packages \u002F system software",[1275,1276,1276,1277],"Harness-level control","Low","Highest",[1279,1280,1281,1277],"Operational burden","Lowest","Medium",[1283,1280,1281,1284],"Portability","Potentially highest if intentionally designed",[1286,1287,1287,1288],"Context strategy control","Platform-managed","Application-controlled",[1290,1276,1291,1291],"Execution infrastructure control","High",[1293,1277,1277,1294],"Ability to benefit from managed harness updates","You own adoption",[1296,1297,1298,1299],"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":671,"data":1302,"type":42,"tunes":1304},{"text":1303,"level":219},"Hybrid is not a compromise — it is often the clean architecture",{},{"id":676,"data":1306,"type":226,"tunes":1308},{"text":1307},"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":681,"data":1310,"type":226,"tunes":1312},{"text":1311},"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":686,"data":1314,"type":692,"tunes":1319},{"url":1315,"title":1316,"excerpt":1317,"ctaLabel":1318},"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":695,"data":1321,"type":42,"tunes":1323},{"text":1322,"level":219},"What would change this answer?",{},{"id":700,"data":1325,"type":226,"tunes":1327},{"text":1326},"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":705,"data":1329,"type":226,"tunes":1331},{"text":1330},"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":710,"data":1333,"type":42,"tunes":1335},{"text":1334,"level":219},"Limitations",{},{"id":715,"data":1337,"type":226,"tunes":1339},{"text":1338},"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":720,"data":1341,"type":226,"tunes":1343},{"text":1342},"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":725,"data":1345,"type":42,"tunes":1347},{"text":1346,"level":219},"Conclusion",{},{"id":730,"data":1349,"type":226,"tunes":1351},{"text":1350},"The useful question is not “Should we self-host the agent?” It is: Which plane do we actually need to control?",{},{"id":735,"data":1353,"type":226,"tunes":1355},{"text":1354},"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":740,"data":1357,"type":42,"tunes":1358},{"text":742,"level":219},{},{"id":745,"data":1360,"type":745,"tunes":1378},{"items":1361,"title":1377},[1362,1365,1368,1371,1374],{"id":749,"answer":1363,"question":1364},"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":753,"answer":1366,"question":1367},"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":757,"answer":1369,"question":1370},"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":761,"answer":1372,"question":1373},"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":765,"answer":1375,"question":1376},"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":771,"data":1380,"type":42,"tunes":1382},{"text":1381,"level":219},"Glossary",{},{"id":776,"data":1384,"type":776,"tunes":1402},{"title":1385,"entries":1386},"Key architecture terms",[1387,1389,1391,1394,1397,1400],{"term":991,"anchor":782,"definition":1388},"The agent-runtime layer responsible for loop execution, orchestration, context management, session continuity and recovery.",{"term":994,"anchor":786,"definition":1390},"The environment in which commands run, code executes and files, packages and local resources are accessed.",{"term":1392,"anchor":790,"definition":1393},"Managed harness","An agent harness whose runtime, session management and orchestration are operated by a platform provider.",{"term":1395,"anchor":794,"definition":1396},"Self-hosted environment","Compute and files operated by the application owner while a separate agent harness may remain managed elsewhere.",{"term":1398,"anchor":798,"definition":1399},"Self-operated harness","An agent runtime whose loop, hosting, context strategy and lifecycle are operated by the application team.",{"term":1177,"anchor":802,"definition":1401},"A decision method that increases infrastructure and runtime ownership only when a requirement cannot be satisfied at a lower-control layer.",{},{"id":806,"data":1404,"type":42,"tunes":1406},{"text":1405,"level":219},"Primary sources and further reading",{},{"id":811,"data":1408,"type":818,"tunes":1413},{"link":813,"meta":1409},{"image":1410,"title":1411,"description":1412},{"url":312},"OpenAI — Agents API Architecture","Current separation between the hosted harness, execution environment and application server.",{},{"id":821,"data":1415,"type":818,"tunes":1420},{"link":823,"meta":1416},{"image":1417,"title":1418,"description":1419},{"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":830,"data":1422,"type":818,"tunes":1427},{"link":832,"meta":1423},{"image":1424,"title":1425,"description":1426},{"url":312},"OpenAI — Sandbox lifecycle","Provisioning, reconnection, duplicate-environment prevention and cleanup responsibilities for self-hosted compute.",{},{"id":839,"data":1429,"type":818,"tunes":1434},{"link":841,"meta":1430},{"image":1431,"title":1432,"description":1433},{"url":312},"OpenAI — Agent runtime options","Current comparison of Agents API, Codex SDK and Responses API by managed versus application-operated responsibilities.",{},{"id":848,"data":1436,"type":818,"tunes":1441},{"link":850,"meta":1437},{"image":1438,"title":1439,"description":1440},{"url":312},"OpenAI — Codex as a platform","Open-source Codex harness and integration layers for applications that want deeper runtime control.",{},{"id":857,"data":1443,"type":818,"tunes":1448},{"link":859,"meta":1444},{"image":1445,"title":1446,"description":1447},{"url":312},"Anthropic — Scaling Managed Agents: Decoupling the brain from the hands","Discussion of managed-agent architecture and why harness assumptions need to evolve with model capability.",{},{"id":866,"data":1450,"type":818,"tunes":1455},{"link":868,"meta":1451},{"image":1452,"title":1453,"description":1454},{"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":1459,"excerpt":875},{"time":212,"blocks":1460,"version":874},[1461,1464,1467,1470,1473,1476,1479,1482,1485,1488,1491,1499,1502,1516,1519,1522,1525,1528,1533,1536,1539,1542,1552,1555,1558,1561,1564,1567,1572,1575,1578,1581,1594,1597,1600,1611,1614,1617,1620,1634,1637,1640,1643,1646,1649,1652,1655,1658,1673,1676,1679,1682,1685,1688,1691,1694,1697,1700,1703,1706,1709,1712,1715,1724,1727,1737,1740,1745,1750,1755,1760,1765,1770],{"id":215,"data":1462,"type":220,"tunes":1463},{"title":217,"maxLevel":218,"minLevel":219},{},{"id":223,"data":1465,"type":226,"tunes":1466},{"text":225},{},{"id":229,"data":1468,"type":234,"tunes":1469},{"body":231,"title":232,"variant":233},{},{"id":237,"data":1471,"type":234,"tunes":1472},{"body":239,"title":240,"variant":241},{},{"id":244,"data":1474,"type":234,"tunes":1475},{"body":246,"title":247,"variant":244},{},{"id":250,"data":1477,"type":42,"tunes":1478},{"text":252,"level":219},{},{"id":255,"data":1480,"type":226,"tunes":1481},{"text":257},{},{"id":260,"data":1483,"type":226,"tunes":1484},{"text":262},{},{"id":265,"data":1486,"type":226,"tunes":1487},{"text":267},{},{"id":270,"data":1489,"type":42,"tunes":1490},{"text":272,"level":219},{},{"id":275,"data":1492,"type":297,"tunes":1498},{"content":1493,"stretched":43,"withHeadings":14},[1494,1495,1496,1497],[279,280,281,282],[284,285,286,287],[289,285,290,291],[293,294,295,296],{},{"id":300,"data":1500,"type":42,"tunes":1501},{"text":302,"level":219},{},{"id":305,"data":1503,"type":332,"tunes":1515},{"rows":1504,"title":321,"layout":297,"columns":1511},[1505,1507,1509],{"id":309,"label":310,"values":1506},[312,312,312],{"id":314,"label":315,"values":1508},[312,312,312],{"id":318,"label":319,"values":1510},[312,312,312],[1512,1513,1514],{"id":324,"label":325},{"id":327,"label":328},{"id":330,"label":331},{},{"id":335,"data":1517,"type":234,"tunes":1518},{"body":337,"title":338,"variant":339},{},{"id":342,"data":1520,"type":42,"tunes":1521},{"text":344,"level":219},{},{"id":347,"data":1523,"type":226,"tunes":1524},{"text":349},{},{"id":352,"data":1526,"type":226,"tunes":1527},{"text":354},{},{"id":357,"data":1529,"type":368,"tunes":1532},{"meta":1530,"items":1531,"style":367},{},[361,362,363,364,365,366],{},{"id":371,"data":1534,"type":42,"tunes":1535},{"text":373,"level":219},{},{"id":376,"data":1537,"type":226,"tunes":1538},{"text":378},{},{"id":381,"data":1540,"type":226,"tunes":1541},{"text":383},{},{"id":386,"data":1543,"type":297,"tunes":1551},{"content":1544,"stretched":43,"withHeadings":14},[1545,1546,1547,1548,1549,1550],[390,391],[393,394],[396,397],[399,400],[402,403],[405,406],{},{"id":409,"data":1553,"type":42,"tunes":1554},{"text":411,"level":219},{},{"id":414,"data":1556,"type":226,"tunes":1557},{"text":416},{},{"id":419,"data":1559,"type":226,"tunes":1560},{"text":421},{},{"id":424,"data":1562,"type":226,"tunes":1563},{"text":426},{},{"id":429,"data":1565,"type":42,"tunes":1566},{"text":431,"level":218},{},{"id":434,"data":1568,"type":368,"tunes":1571},{"meta":1569,"items":1570,"style":367},{},[438,439,440,441,442,443],{},{"id":446,"data":1573,"type":42,"tunes":1574},{"text":448,"level":219},{},{"id":451,"data":1576,"type":226,"tunes":1577},{"text":453},{},{"id":456,"data":1579,"type":226,"tunes":1580},{"text":458},{},{"id":461,"data":1582,"type":297,"tunes":1593},{"content":1583,"stretched":43,"withHeadings":14},[1584,1585,1586,1587,1588,1589,1590,1591,1592],[465,466,467],[469,315,470],[472,315,289],[474,315,475],[477,310,478],[480,310,481],[483,310,484],[486,310,487],[489,490,491],{},{"id":494,"data":1595,"type":42,"tunes":1596},{"text":496,"level":219},{},{"id":499,"data":1598,"type":226,"tunes":1599},{"text":501},{},{"id":504,"data":1601,"type":530,"tunes":1610},{"steps":1602,"title":528,"orientation":529},[1603,1604,1605,1606,1607,1608,1609],{"label":508,"description":509},{"label":511,"description":512},{"label":514,"description":515},{"label":517,"description":518},{"label":520,"description":521},{"label":523,"description":524},{"label":526,"description":527},{},{"id":533,"data":1612,"type":42,"tunes":1613},{"text":535,"level":219},{},{"id":538,"data":1615,"type":226,"tunes":1616},{"text":540},{},{"id":543,"data":1618,"type":226,"tunes":1619},{"text":545},{},{"id":548,"data":1621,"type":297,"tunes":1633},{"content":1622,"stretched":43,"withHeadings":14},[1623,1624,1625,1626,1627,1628,1629,1630,1631,1632],[552,553],[555,556],[558,559],[561,562],[564,565],[567,568],[570,571],[573,574],[576,577],[579,580],{},{"id":583,"data":1635,"type":42,"tunes":1636},{"text":585,"level":219},{},{"id":588,"data":1638,"type":226,"tunes":1639},{"text":590},{},{"id":593,"data":1641,"type":226,"tunes":1642},{"text":595},{},{"id":598,"data":1644,"type":234,"tunes":1645},{"body":600,"title":601,"variant":241},{},{"id":604,"data":1647,"type":42,"tunes":1648},{"text":606,"level":219},{},{"id":609,"data":1650,"type":226,"tunes":1651},{"text":611},{},{"id":614,"data":1653,"type":226,"tunes":1654},{"text":616},{},{"id":619,"data":1656,"type":42,"tunes":1657},{"text":621,"level":219},{},{"id":624,"data":1659,"type":297,"tunes":1672},{"content":1660,"stretched":43,"withHeadings":14},[1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671],[628,284,289,629],[631,632,633,634],[636,637,632,632],[639,633,632,632],[641,642,642,643],[645,646,647,643],[649,650,651,652],[654,655,655,656],[658,642,659,659],[661,662,662,663],[665,666,667,668],{},{"id":671,"data":1674,"type":42,"tunes":1675},{"text":673,"level":219},{},{"id":676,"data":1677,"type":226,"tunes":1678},{"text":678},{},{"id":681,"data":1680,"type":226,"tunes":1681},{"text":683},{},{"id":686,"data":1683,"type":692,"tunes":1684},{"url":688,"title":689,"excerpt":690,"ctaLabel":691},{},{"id":695,"data":1686,"type":42,"tunes":1687},{"text":697,"level":219},{},{"id":700,"data":1689,"type":226,"tunes":1690},{"text":702},{},{"id":705,"data":1692,"type":226,"tunes":1693},{"text":707},{},{"id":710,"data":1695,"type":42,"tunes":1696},{"text":712,"level":219},{},{"id":715,"data":1698,"type":226,"tunes":1699},{"text":717},{},{"id":720,"data":1701,"type":226,"tunes":1702},{"text":722},{},{"id":725,"data":1704,"type":42,"tunes":1705},{"text":727,"level":219},{},{"id":730,"data":1707,"type":226,"tunes":1708},{"text":732},{},{"id":735,"data":1710,"type":226,"tunes":1711},{"text":737},{},{"id":740,"data":1713,"type":42,"tunes":1714},{"text":742,"level":219},{},{"id":745,"data":1716,"type":745,"tunes":1723},{"items":1717,"title":768},[1718,1719,1720,1721,1722],{"id":749,"answer":750,"question":751},{"id":753,"answer":754,"question":755},{"id":757,"answer":758,"question":759},{"id":761,"answer":762,"question":763},{"id":765,"answer":766,"question":767},{},{"id":771,"data":1725,"type":42,"tunes":1726},{"text":773,"level":219},{},{"id":776,"data":1728,"type":776,"tunes":1736},{"title":778,"entries":1729},[1730,1731,1732,1733,1734,1735],{"term":781,"anchor":782,"definition":783},{"term":785,"anchor":786,"definition":787},{"term":789,"anchor":790,"definition":791},{"term":793,"anchor":794,"definition":795},{"term":797,"anchor":798,"definition":799},{"term":801,"anchor":802,"definition":803},{},{"id":806,"data":1738,"type":42,"tunes":1739},{"text":808,"level":219},{},{"id":811,"data":1741,"type":818,"tunes":1744},{"link":813,"meta":1742},{"image":1743,"title":816,"description":817},{"url":312},{},{"id":821,"data":1746,"type":818,"tunes":1749},{"link":823,"meta":1747},{"image":1748,"title":826,"description":827},{"url":312},{},{"id":830,"data":1751,"type":818,"tunes":1754},{"link":832,"meta":1752},{"image":1753,"title":835,"description":836},{"url":312},{},{"id":839,"data":1756,"type":818,"tunes":1759},{"link":841,"meta":1757},{"image":1758,"title":844,"description":845},{"url":312},{},{"id":848,"data":1761,"type":818,"tunes":1764},{"link":850,"meta":1762},{"image":1763,"title":853,"description":854},{"url":312},{},{"id":857,"data":1766,"type":818,"tunes":1769},{"link":859,"meta":1767},{"image":1768,"title":862,"description":863},{"url":312},{},{"id":866,"data":1771,"type":818,"tunes":1774},{"link":868,"meta":1772},{"image":1773,"title":871,"description":872},{"url":312},{},"Post erfolgreich abgerufen",{"items":1777,"source":1819,"manualIds":1820,"manualMatchedIds":1821},[1778,1785,1792,1798,1805,1812],{"id":1779,"slug":1780,"title":1781,"excerpt":1782,"featuredImage":1783,"publishedAt":1784},"455","zbt-z8102ax-dual-sim-failover-test","ZBT Z8102AX Failover Dual-SIM: cosa funziona, cosa manca e cosa necessita di un firmware migliore","Lo ZBT Z8102AX è un router OpenWrt 5G dual-SIM, ma l'hardware dual-SIM da solo non è la stessa cosa di un failover intelligente. Il router riconosce la SIM e si connette con successo, ma la commutazione automatica, il ripristino del modem, le decisioni basate sul segnale e una logica di failover pulita richiedono ancora test più approfonditi.","\u002Fuploads\u002F2026\u002F06\u002Fopenwrt-router-review-dual-sim-03-1781620592829-7t77j7.webp","2026-06-16T10:40:00.000Z",{"id":1786,"slug":1787,"title":1788,"excerpt":1789,"featuredImage":1790,"publishedAt":1791},"364","tipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung","Padroneggiare il Flusso di Lavoro SEO: Strategie di Ottimizzazione Essenziali per la Crescita Organica","Un flusso di lavoro SEO strutturato è fondamentale per una crescita organica sostenibile. Scopri le dieci strategie fondamentali, dalla ricerca di parole chiave e dall'ottimizzazione tecnica alla qualità dei contenuti e all'analisi delle prestazioni.","\u002Fuploads\u002F2026\u002F03\u002Ftipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung-1774866098131-hwkzrg.webp","2024-01-26T06:35:00.000Z",{"id":1793,"slug":895,"title":1794,"excerpt":1795,"featuredImage":1796,"publishedAt":1797},"434","Guida completa a Evaluation Harness: Padroneggiare la valutazione delle prestazioni degli LLM","Questa guida fornisce una panoramica dettagliata di Evaluation Harness, un framework essenziale per valutare rigorosamente le capacità dei modelli linguistici di grandi dimensioni (LLM) nelle pipeline LLMOps aziendali. Scopri la configurazione, le best practice e le tecniche avanzate per garantire un benchmarking e un'ottimizzazione dei modelli affidabili.","\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},"469","rag-failed-but-which-layer-actually-failed-a-diagnostic-method","RAG non riuscito — Ma quale livello ha effettivamente fallito? Un metodo diagnostico","Quando una risposta RAG è sbagliata, dare la colpa al recupero o al modello è troppo vago. Questo metodo diagnostico isola la copertura delle fonti, la costruzione della query, il recupero, il ranking, l'assemblaggio del contesto, la generazione, l'attribuzione delle evidenze e l'aggiornamento—così il guasto effettivo può essere riprodotto e corretto.","\u002Fuploads\u002F2026\u002F09\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method-1790350847177-pior4c.webp","2026-09-24T19:39:00.000Z",{"id":1806,"slug":1807,"title":1808,"excerpt":1809,"featuredImage":1810,"publishedAt":1811},"362","suchmaschinen-webcrawler-suchsoftware-und-suchergebnissen","Ottimizzazione per i motori di ricerca: il workflow affidabile per i primi posizionamenti","Analisi dettagliata dell'ottimizzazione per i motori di ricerca (SEO), dei suoi fondamenti tecnici, del ruolo dei web crawler e dei passaggi strategici per ottenere i primi posizionamenti organici.","\u002Fuploads\u002F2026\u002F03\u002Fsuchmaschinen-webcrawler-suchsoftware-und-suchergebnissen-1774865001795-5wv0cw.webp","2023-04-12T13:03:00.000Z",{"id":1813,"slug":1814,"title":1815,"excerpt":1816,"featuredImage":1817,"publishedAt":1818},"459","ollama-is-not-the-product-building-production-ready-open-llm-applications","Ollama non è il prodotto: costruire applicazioni Open-LLM pronte per la produzione","Eseguire un modello locale con Ollama è facile. Costruire un'applicazione Open-LLM pronta per la produzione è più difficile: richiede RAG, controllo degli accessi, astrazione del provider, valutazione, logging, disciplina di deployment e un livello applicativo controllato attorno al modello.","\u002Fuploads\u002F2026\u002F06\u002Follama-is-not-the-product-building-production-ready-open-llm-applications-1782679361640-h0usqf.webp","2026-06-28T16:39:00.000Z","fallback",[],[]]