[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:ru":3,"public-menus:all":38,"post:managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose:ru":205,"related:post:managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose:ru:1":1775},{"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","ru","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":1774},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":873,"featuredImage":874,"featuredImageAlt":875,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":876,"publishedAt":877,"createdAt":878,"updatedAt":879,"seoLocalePaths":880,"categories":889,"author":902,"translations":907},"475","Управляемая обвязка агента против self-hosted цикла агента: что вы приобретаете, что теряете","managed-agent-harness-vs-self-hosted-agent-loop-what-you-gain-what-you-lose","\u003Cnav class=\"editorjs-toc\" data-editorjs-toc=\"true\" aria-label=\"Содержание\">\u003Cstrong class=\"editorjs-toc__title\">Содержание\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\">Ошибка: воспринимать self-hosting как единое решение\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-10\" class=\"editorjs-toc__link\">Три архитектуры, которые часто называют «self-hosted»\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-12\" class=\"editorjs-toc__link\">Двухуровневая модель\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-15\" class=\"editorjs-toc__link\">Управляемая обвязка: что вы получаете на самом деле\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-19\" class=\"editorjs-toc__link\">Управляемый harness: от чего вы отказываетесь\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-23\" class=\"editorjs-toc__link\">Self-hosted среда выполнения: промежуточная архитектура\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\">Когда self-hosted выполнения достаточно\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-29\" class=\"editorjs-toc__link\">Когда вам может потребоваться владеть и самим harness\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-33\" class=\"editorjs-toc__link\">Тест эскалации контроля\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-36\" class=\"editorjs-toc__link\">Эксплуатационная нагрузка растет нелинейно, когда вы берете harness на себя\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-40\" class=\"editorjs-toc__link\">Граница безопасности: самостоятельный хостинг вычислений не делает агента приватным автоматически\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-44\" class=\"editorjs-toc__link\">Задержка и стоимость: контроль может лишь сместить узкие места, а не устранить их\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-47\" class=\"editorjs-toc__link\">Матрица принятия решений для продакшена\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-49\" class=\"editorjs-toc__link\">Гибридный подход — это не компромисс, а зачастую чистая архитектура\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-53\" class=\"editorjs-toc__link\">Что могло бы изменить этот вывод?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-56\" class=\"editorjs-toc__link\">Ограничения\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-59\" class=\"editorjs-toc__link\">Заключение\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-62\" class=\"editorjs-toc__link\">Часто задаваемые вопросы\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-64\" class=\"editorjs-toc__link\">Глоссарий\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-66\" class=\"editorjs-toc__link\">Первоисточники и материалы для дальнейшего чтения\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fnav>\n\u003Cp>Под понятием «self-hosted агент» сегодня скрываются как минимум три различные архитектуры. Можно использовать управляемую обвязку (harness) с вычислениями на стороне OpenAI, управляемую обвязку, подключенную к вашей собственной инфраструктуре, или развернуть обвязку и цикл агента полностью самостоятельно. Эти варианты существенно различаются с точки зрения контроля, восстановления, управления контекстом, безопасности, задержек и эксплуатационной нагрузки.\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\">Короткий ответ\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">&lt;strong&gt;Не выбирайте между «управляемым» и «self-hosted» вариантами так, будто это бинарное решение.&lt;\u002Fstrong&gt; Разделяйте &lt;strong&gt;уровень обвязки (harness plane)&lt;\u002Fstrong&gt; и &lt;strong&gt;уровень исполнения (execution plane)&lt;\u002Fstrong&gt;. Управляемая обвязка вполне может использовать вычислительные ресурсы self-hosted. Self-hosted окружение дает контроль над файлами, пакетами, доступом к сети и исполнением, не требуя при этом брать на себя управление циклом агента. Разворачивайте обвязку самостоятельно только тогда, когда вам необходим контроль над оркестрацией, жизненным циклом, логикой маршрутизации моделей или поведением среды выполнения, которые управляемая обвязка не позволяет настроить.\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\">Актуально на 25 сентября 2026 г.\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Agents API от OpenAI находится в стадии публичной беты, и его архитектура может развиваться. Текущая документация разделяет размещенную в OpenAI обвязку Codex и среду исполнения, а также явно поддерживает self-hosted окружения. Кроме того, OpenAI предоставляет обвязку Codex отдельно через Codex SDK для запуска на вашей собственной инфраструктуре.\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\">Модель, используемая в этой статье\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Концепция разделения на Harness Plane \u002F Execution Plane и приведенный ниже тест эскалации контроля — это практические архитектурные инструменты, предложенные в данной статье. Они не являются официальной терминологией вендоров.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-6\">Ошибка: воспринимать self-hosting как единое решение\u003C\u002Fh2>\n\u003Cp>В традиционном ПО термин «self-hosted» обычно означает, что приложение работает на инфраструктуре, которую вы контролируете. В агентных системах это определение усложняется, поскольку среду выполнения можно разделить. Цикл работы модели и инструментов может выполняться в одном месте, а выполнение кода, файлы и доступ к приватной сети — в другом.\u003C\u002Fp>\n\u003Cp>Текущая архитектура Agents API от OpenAI делает это разделение явным: OpenAI берет на себя обвязку, тогда как среда исполнения может отсутствовать, быть развернута на мощностях OpenAI или быть self-hosted. Следовательно, self-hosted среда не означает, что цикл агента также является self-hosted.\u003C\u002Fp>\n\u003Cp>Это различие принципиально, поскольку многие команды выбирают более сложный рантайм, чем им реально требуется. Нуждаясь в доступе к приватной сети или кастомных пакетах, они делают вывод, что весь агент должен быть self-hosted, и непреднамеренно берут на себя управление контекстом, оркестрацию, восстановление и жизненный цикл, которые вполне могли бы оставаться управляемыми со стороны платформы.\u003C\u002Fp>\n\u003Ch2 id=\"section-10\">Три архитектуры, которые часто называют «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\">Архитектура\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Кто запускает обвязку?\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Где выполняются код и файлы\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">За что в основном отвечаете вы\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Управляемая обвязка + управляемая среда\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Платформа\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Песочница, размещенная на платформе\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Приложение, инструменты, продуктовая логика, авторизация\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Управляемая обвязка + self-hosted среда\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Платформа\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ваш контейнер, VM, ноутбук, приватное облако или другие вычислительные ресурсы\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Подготовка среды, сеть, файлы и жизненный цикл; обвязку по-прежнему обеспечивает платформа\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Self-hosted обвязка \u002F цикл агента\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Вы\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Выбранная вами среда\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Процесс обвязки, оркестрация, стратегия контекста, хостинг, восстановление, исполнение и жизненный цикл приложения\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-12\">Двухуровневая модель\u003C\u002Fh2>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Разделяйте уровень обвязки и уровень исполнения\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\">Уровень\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\">За что отвечает\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\">Вопросы для анализа\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\">Уровень обвязки (Harness plane)\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\">Уровень исполнения (Execution plane)\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\">Уровень приложения (Application plane)\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\">Ключевой архитектурный вывод\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Вы можете перевести на self-hosting &lt;strong&gt;уровень исполнения&lt;\u002Fstrong&gt;, не переводя на self-hosting &lt;strong&gt;уровень обвязки&lt;\u002Fstrong&gt;. Зачастую это и есть оптимальная золотая середина.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-15\">Управляемая обвязка: что вы получаете на самом деле\u003C\u002Fh2>\n\u003Cp>Управляемая обвязка избавляет от гораздо большего, чем просто от цикла while. Текущий Agents API от OpenAI берет на себя сессии, оркестрацию, сжатие контекста и восстановление. Работа Anthropic над управляемыми агентами описывает ту же глобальную мотивацию: обвязки завязаны на предположениях о поведении моделей, и эти предположения должны развиваться по мере совершенствования самих моделей.\u003C\u002Fp>\n\u003Cp>Это означает, что выгода заключается не только в сокращении строк кода. Платформа может обновлять поведение среды выполнения, работу с долгосрочным контекстом, координацию субагентов и механизмы восстановления без необходимости для каждой команды переписывать эти решения с нуля.\u003C\u002Fp>\n\u003Cul>\u003Cli>Меньше кода оркестрации в зоне ответственности приложения.\u003C\u002Fli>\u003Cli>Встроенная поддержка персистентных сессий.\u003C\u002Fli>\u003Cli>Управляемое сжатие контекста и механизмы восстановления.\u003C\u002Fli>\u003Cli>Среда выполнения, способная развиваться вместе с возможностями моделей.\u003C\u002Fli>\u003Cli>Более простое внедрение нативных функций платформы для работы с субагентами и длительными задачами.\u003C\u002Fli>\u003Cli>Потенциальное снижение эксплуатационной нагрузки для команд, чья уникальная ценность не связана с разработкой собственной обвязки.\u003C\u002Fli>\u003C\u002Ful>\n\u003Ch2 id=\"section-19\">Управляемый harness: от чего вы отказываетесь\u003C\u002Fh2>\n\u003Cp>Делегирование harness означает и передачу части контроля. Ваше приложение больше не управляет каждой деталью итераций, стратегией контекста, оркестрацией и эволюцией среды выполнения. Обновление платформы может улучшить систему, но также способно изменить поведение, от которого неявно зависел ваш продукт.\u003C\u002Fp>\n\u003Cp>Это формирует иной класс инженерных требований: надежные оценки (evals), четкие границы продукта и интеграционный слой, который не позволит поведению управляемых сессий стать единственным источником бизнес-правды.\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\">Компромисс управляемого harness\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Что это означает на практике\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Меньше контроля над циклом\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Вы не можете рассчитывать, что каждая деталь оркестрации задается приложением\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Эволюция платформы\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Поведение harness может улучшаться или меняться без изменения вашего кода\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Вендор-специфичный жизненный цикл\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Сессии, события и семантика восстановления становятся частью интеграционного интерфейса\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Граница наблюдаемости (observability)\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Трейсы платформы необходимо объединять с данными аудита приложения\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Затраты на переносимость\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Переход на другой harness в будущем может потребовать гораздо большего, чем простая смена эндпоинтов модели\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-23\">Self-hosted среда выполнения: промежуточная архитектура\u003C\u002Fh2>\n\u003Cp>Модель self-hosted окружения от OpenAI важна тем, что она отделяет приватные вычислительные ресурсы от владения harness. Платформа по-прежнему запускает Codex harness, тогда как исполнитель (executor) работает внутри вашей среды и получает команды через исходящее соединение.\u003C\u002Fp>\n\u003Cp>Вы контролируете выделение ресурсов, файлы, зависимости, доступ к сети и очистку. Таким образом, harness может работать с приватной инфраструктурой или кастомным ПО без необходимости переносить весь runtime агента в ваше приложение.\u003C\u002Fp>\n\u003Cp>Платой за это становится ответственность за жизненный цикл. Ваше приложение должно привязывать сессии к вычислительным ресурсам, избегать дублирующего провижининга, переподключать окружения, координировать завершение работы и сохранять файлы, которые должны пережить уничтожение среды.\u003C\u002Fp>\n\u003Ch3 id=\"section-27\">Когда self-hosted выполнения достаточно\u003C\u002Fh3>\n\u003Cul>\u003Cli>Агенту требуется доступ к приватной VPC или внутреннему сервису.\u003C\u002Fli>\u003Cli>Агенту требуются кастомные бинарные файлы, пакеты, драйверы или системное ПО.\u003C\u002Fli>\u003Cli>Нагрузка должна выполняться на оборудовании или в облачных аккаунтах под вашим управлением.\u003C\u002Fli>\u003Cli>Файлы должны оставаться внутри контролируемого периметра.\u003C\u002Fli>\u003Cli>Вам нужен собственный провайдер песочниц (sandbox) или модель изоляции.\u003C\u002Fli>\u003Cli>Вам нужна оркестрация на стороне платформы, но выполнение под контролем собственной инфраструктуры.\u003C\u002Fli>\u003C\u002Ful>\n\u003Ch2 id=\"section-29\">Когда вам может потребоваться владеть и самим harness\u003C\u002Fh2>\n\u003Cp>Владение harness становится оправданным, когда сам harness является частью дифференциации вашего продукта или набора ограничений. В текущем обзоре среды выполнения OpenAI позиционирует Codex SDK для запуска Codex harness на управляемой вами инфраструктуре, тогда как Responses выступает более низкоуровневым вариантом, если вы хотите полностью контролировать цикл агента самостоятельно.\u003C\u002Fp>\n\u003Cp>Главное — определить требование, которое действительно относится к уровню harness, а не к уровню выполнения (execution plane).\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\">Требование\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Проблема уровня выполнения или уровня harness?\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Вероятное решение\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Доступ к приватной базе данных\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Уровень выполнения\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Управляемый harness + self-hosted среда может быть достаточным\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Пользовательские пакеты Linux\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Уровень выполнения\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Управляемый harness + self-hosted среда\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Специализированные GPU\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Уровень выполнения\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Управляемый harness + self-hosted среда (где поддерживается)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Кастомная логика остановки агента\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Уровень harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Собственный harness \u002F кастомный цикл\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Маршрутизация между моделями разных провайдеров на каждом шаге\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Уровень harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Кастомный цикл или собственный harness\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Кастомный алгоритм сжатия контекста\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Уровень harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Собственный harness, если управляемый runtime не предоставляет такой возможности\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Детерминированная семантика оркестрации, требуемая продуктом\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Уровень harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Собственный harness или строго контролируемый кастомный цикл\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Полностью локальное развертывание продукта без зависимости от управляемого harness\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Уровень harness + уровень выполнения\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Полностью автономный runtime\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-33\">Тест эскалации контроля\u003C\u002Fh2>\n\u003Cp>Используйте наименее требовательную к самостоятельному хостингу архитектуру, которая покрывает реальные потребности. Повышайте уровень контроля строго пошагово.\u003C\u002Fp>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Тест эскалации контроля\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. Начните с границ приложения\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Сохраняйте бизнес-логику, авторизацию и критически важные действия внутри собственного продукта независимо от среды выполнения агента.\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. Определите, нужно ли агенту локальное выполнение\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Если нет, управляемого harness без выделенной среды может оказаться достаточно.\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. Определите, допустимы ли вычисления на стороне платформы\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Если да, используйте управляемую среду и избегайте лишних затрат на владение инфраструктурой.\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. Если нет, разверните уровень выполнения у себя\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Подключите собственную среду для работы с приватной сетью, файлами, пакетами или контролируемыми вычислительными ресурсами.\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. Переоцените оставшиеся ограничения\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Если требования удовлетворены, остановитесь. Не берите управление harness на себя исключительно ради архитектурной симметрии.\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. Переходите к владению harness только при реальной необходимости\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Разворачивайте собственный Codex harness или кастомный цикл агента, только если этого действительно требуют оркестрация, работа с контекстом, жизненный цикл или переносимость.\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. Убедитесь, что дополнительный контроль окупает затраты на эксплуатацию\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Оцените надежность, задержки, затраты, сценарии восстановления, наблюдаемость и нагрузку на инженеров перед принятием решения.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-36\">Эксплуатационная нагрузка растет нелинейно, когда вы берете harness на себя\u003C\u002Fh2>\n\u003Cp>Самостоятельно реализованный цикл кажется простым в демо-версии: вызов модели, проверка вызова инструмента, выполнение инструмента, добавление результата, повтор. В продакшене к этому добавляются долговременное состояние (durable state), повторные попытки (retries), дублирование событий, отмена, подтверждения, переполнение контекста, таймауты инструментов, перезапуски процессов, сохранение трассировок, противодавление (backpressure), параллельная работа и восстановление после частичных побочных эффектов.\u003C\u002Fp>\n\u003Cp>Исследования Anthropic в области долгоживущих агентов неоднократно показывают, что архитектура обвязки (harness) существенно влияет на производительность. В их работе над созданием долгоживущих приложений используются явное планирование, структурированные артефакты и агенты-оценщики, поскольку наивные циклы склонны терять прогресс или завершаться преждевременно. Таким образом, обвязка — это логика продакшена, а не просто техническая рутина.\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\">Если вы сами управляете обвязкой, вам также нужно решение для\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Почему это важно\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Долговременное состояние сессии\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Процессы перезапускаются; долгоживущая работа должна корректно возобновляться\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Сжатие контекста\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">История со временем начинает превышать практический рабочий контекст\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Идемпотентность инструментов\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Повторные попытки не должны приводить к дублированию необратимых побочных эффектов\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Отмена и прерывание\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Пользователям и системам необходимо останавливать или перенаправлять работу\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Восстановление после частичного выполнения\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Инструмент может успешно отработать, даже если агент так и не получил результат\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Параллелизм (concurrency)\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Несколько задач, воркеров или агентов могут обращаться к общему состоянию\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Наблюдаемость (observability)\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Финального результата недостаточно для отладки сбоев во время выполнения\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Версионирование\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Обновления обвязки могут изменить поведение, даже если промпты остаются неизменными\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Оценка (evaluation)\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Изменения в среде выполнения требуют регрессионного тестирования на репрезентативных сценариях\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-40\">Граница безопасности: самостоятельный хостинг вычислений не делает агента приватным автоматически\u003C\u002Fh2>\n\u003Cp>Self-hosted среда выполнения контролирует, где запускаются команды и хранятся файлы, однако управляемая обвязка и взаимодействие с моделью по-прежнему пересекают границы сервиса. Поэтому командам следует явно картировать потоки данных, а не использовать термин «self-hosted» как синоним гарантированной приватности.\u003C\u002Fp>\n\u003Cp>Self-hosted исполнитель (executor) OpenAI использует ограниченные учетные данные окружения и исходящие соединения. Это полезная изоляция, но вашему приложению все равно требуются собственные правила для работы с секретами, доступа к приватным сетям, изоляции пользователей от окружения, хранения файлов, авторизации инструментов и классификации данных.\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\">Важное различие\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">&lt;strong&gt;Контроль инфраструктуры, изоляция выполнения и границы управления данными взаимосвязаны, но не идентичны.&lt;\u002Fstrong&gt; Принимайте решения по каждому из этих аспектов раздельно.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-44\">Задержка и стоимость: контроль может лишь сместить узкие места, а не устранить их\u003C\u002Fh2>\n\u003Cp>Self-hosting может снизить некоторые расходы на передачу данных или запуск сред, но способен добавить время на выделение ресурсов, управление жизненным циклом WebSocket, холодные старты, очистку песочниц, инфраструктуру наблюдаемости и инженерные накладные расходы. Управляемая среда может стоить дороже в пересчете на единицу вычислений, оставаясь при этом дешевле в эксплуатации при низких или нерегулярных объемах нагрузки.\u003C\u002Fp>\n\u003Cp>Корректное сопоставление — это совокупная стоимость всей системы: использование моделей и инструментов, время работы среды, инфраструктура, затраты на разработку, нагрузка на дежурных (on-call), восстановление после сбоев и цена замедления итераций.\u003C\u002Fp>\n\u003Ch2 id=\"section-47\">Матрица принятия решений для продакшена\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\">Критерий\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Управляемая обвязка + управляемая среда\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Управляемая обвязка + self-hosted среда\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Собственная обвязка \u002F цикл\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Кратчайший путь в продакшен\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Высокий\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Умеренный\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Самый низкий\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Выполнение в приватной сети\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Слабо \u002F зависит от архитектуры подключения\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Высокий\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Высокий\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Пользовательские пакеты \u002F системное ПО\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Умеренно\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Высокий\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Высокий\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Контроль на уровне обвязки\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Низкий\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Низкий\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Максимальный\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Эксплуатационная нагрузка\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Минимальная\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Средняя\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Максимальная\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Портативность\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Минимальная\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Средняя\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Потенциально максимальная при продуманной архитектуре\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Контроль стратегии контекста\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Управляется платформой\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Управляется платформой\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Управляется приложением\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Контроль инфраструктуры выполнения\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Низкий\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Высокий\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Высокий\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Возможность использовать обновления управляемой обвязки\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Максимальная\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Максимальная\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Внедрение полностью на вашей стороне\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Кому лучше всего подходит\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Командам, создающим уникальность на уровне продукта\u002Fинструментов\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Командам, которым нужны изолированные\u002Fкастомные вычисления без управления оркестрацией\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Командам, для которых сама семантика среды выполнения является ключевым требованием\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-49\">Гибридный подход — это не компромисс, а зачастую чистая архитектура\u003C\u002Fh2>\n\u003Cp>Управляемая обвязка с self-hosted средой выполнения — это не «половинчатый self-hosting». Это осознанное разделение сфер ответственности (separation of concerns). Платформа берет на себя сложности долгосрочной среды выполнения агентов, в то время как ваша инфраструктура управляет выполнением кода, доступом к приватной сети и файлами.\u003C\u002Fp>\n\u003Cp>Такое разделение границ напоминает другие облачные архитектуры: управляемая плоскость управления (control plane) и подконтрольная клиенту плоскость данных или выполнения (data\u002Fexecution plane). Основная проектная работа здесь заключается в определении контракта между ними: идентификаторы сессий, идентификаторы окружения, учетные данные, файлы, права доступа к инструментам, события жизненного цикла и процессы очистки.\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Fru\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 против Agents SDK и Responses API: на чем строить в 2026 году?\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">Сравнение вариантов владения средой выполнения для текущих интерфейсов агентов OpenAI и распределения границ контроля.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Читать сравнение сред выполнения →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Ch2 id=\"section-53\">Что могло бы изменить этот вывод?\u003C\u002Fh2>\n\u003Cp>Рекомендация может измениться, если управляемые обвязки предоставят существенно больше контроля над средой выполнения, если в self-hosted обвязках появятся более простые примитивы для долгоживущих сессий и восстановления, либо если регуляторные требования обяжут удерживать весь цикл агента и взаимодействие с моделями строго внутри инфраструктуры, находящейся под вашим управлением.\u003C\u002Fp>\n\u003Cp>Это также меняется по мере роста возможностей моделей. Anthropic прямо указывает, что исходные предпосылки об обвязке (harness) могут устаревать по мере совершенствования моделей. Механизм контроля, необходимый сегодня, позже может оказаться избыточным, тогда как новая возможность модели может породить новое требование к управлению.\u003C\u002Fp>\n\u003Ch2 id=\"section-56\">Ограничения\u003C\u002Fh2>\n\u003Cp>В этой статье разграничиваются архитектурные зоны ответственности; в ней не утверждается, что одна модель хостинга универсально более безопасна, дешевле или надежнее. Эти результаты зависят от реализации, рабочей нагрузки, нормативных требований, квалификации команды и специфики провайдера.\u003C\u002Fp>\n\u003Cp>OpenAI Agents API все еще находится в стадии публичной беты, а управляемые агентские продукты от разных вендоров проводят границы по-разному. Двухуровневая модель призвана помочь сопоставить эти архитектуры, не предполагая, что каждый вендор использует одинаковую терминологию.\u003C\u002Fp>\n\u003Ch2 id=\"section-59\">Заключение\u003C\u002Fh2>\n\u003Cp>Полезный вопрос звучит не «Стоит ли нам самостоятельно хостить агента?». Он заключается в следующем: Какой именно уровень нам действительно необходимо контролировать?\u003C\u002Fp>\n\u003Cp>Если требование состоит в приватных вычислительных ресурсах, кастомных пакетах, локальных файлах или доступе к внутренней сети — используйте собственный хостинг для уровня исполнения (execution plane), оставив обвязку (harness) управляемой. Если же требование касается семантики оркестрации, стратегии контекста, контроля над провайдером или жизненного цикла самой среды выполнения, то владение обвязкой может быть оправдано. Эскалируйте контроль ровно настолько, насколько этого требуют задачи.\u003C\u002Fp>\n\u003Ch2 id=\"section-62\">Часто задаваемые вопросы\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\">Управляемые обвязки и среды выполнения агентов на собственном хостинге\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\">Является ли self-hosted среда OpenAI Agents API полностью автономным агентом?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Не совсем. OpenAI по-прежнему управляет обвязкой Codex, в то время как ваша инфраструктура обеспечивает среду исполнения для команд, файлов и локальных инструментов.\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\">Когда достаточно среды на собственном хостинге?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Этого часто достаточно, когда ваши требования касаются доступа к приватной сети, кастомных пакетов, контролируемых файлов, специфического оборудования или политик инфраструктуры, а не контроля над самим циклом агента.\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\">Когда следует запускать обвязку самостоятельно?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Задумайтесь о самостоятельном владении обвязкой, если вам необходима кастомная семантика оркестрации, особое управление контекстом, маршрутизация между провайдерами, строго локальное поведение среды выполнения или другие требования, относящиеся к циклу агента, а не к среде исполнения.\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\">Повышает ли собственный хостинг безопасность автоматически?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Нет. Он лишь меняет перечень компонентов, которые вы контролируете. Безопасность зависит от потоков данных, изоляции, учетных данных, прав доступа инструментов, сети, логирования и организации жизненного цикла всех компонентов.\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\">В чем заключаются основные эксплуатационные расходы при контроле агентского цикла?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">На вас ложится ответственность за сохранение состояния, управление контекстом, повторные попытки, отмену операций, восстановление, наблюдаемость, конкурентность, обновления среды выполнения и оценку изменений в обвязке.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-64\">Глоссарий\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\">Ключевые архитектурные термины\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\">Уровень обвязки (Harness plane)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Слой среды выполнения агента, отвечающий за исполнение цикла, оркестрацию, управление контекстом, непрерывность сессий и восстановление.\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\">Уровень исполнения (Execution plane)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Среда, в которой запускаются команды, выполняется код и осуществляется доступ к файлам, пакетам и локальным ресурсам.\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\">Управляемая обвязка (Managed harness)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Обвязка агента, чья среда выполнения, управление сессиями и оркестрация обслуживаются платформенным провайдером.\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\">Self-hosted среда (Self-hosted environment)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Вычислительные мощности и файлы, управляемые владельцем приложения, тогда как отдельная обвязка агента может оставаться на стороне внешнего провайдера.\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\">Самостоятельно управляемая обвязка (Self-operated harness)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Среда выполнения агента, чей цикл, хостинг, стратегия работы с контекстом и жизненный цикл полностью контролируются командой приложения.\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\">Тест эскалации контроля (Control Escalation Test)\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Метод принятия решений, при котором контроль над инфраструктурой и средой выполнения усиливается только тогда, когда требование не может быть удовлетворено на более низком уровне контроля.\u003C\u002Fdd>\u003C\u002Fdiv>\u003C\u002Fdl>\u003C\u002Fsection>\n\u003Ch2 id=\"section-66\">Первоисточники и материалы для дальнейшего чтения\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 — Архитектура Agents API\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Текущее разделение между размещенной обвязкой, средой исполнения и сервером приложения.\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 — Песочницы на собственном хостинге\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Как управляемые клиентом среды исполнения подключаются к управляемой обвязке и какие обязанности по жизненному циклу остаются на стороне приложения.\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 — Жизненный цикл песочницы\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Инициализация, переподключение, предотвращение дублирования сред и обязанности по очистке для собственных вычислительных мощностей.\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 — Варианты сред выполнения агентов\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Текущее сравнение Agents API, Codex SDK и Responses API по зонам ответственности провайдера и приложения.\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 как платформа\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Обвязка Codex с открытым исходным кодом и интеграционные слои для приложений, которым требуется более глубокий контроль над средой выполнения.\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 — Масштабирование управляемых агентов: отделение мозга от рук\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Обсуждение архитектуры управляемых агентов и причин, по которым представления об обвязке должны эволюционировать вместе с возможностями моделей.\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 — Эффективные обвязки для длительно работающих агентов\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Инженерные выводы, показывающие, что производительность длительно работающих агентов существенно зависит от архитектуры обвязки и постоянных артефактов.\u003C\u002Fp>\u003C\u002Fa>",{"time":212,"blocks":213,"version":872},1790365735246,[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,496,501,506,534,539,544,549,584,589,594,599,605,610,615,620,625,670,675,680,685,694,699,704,709,714,719,724,729,734,739,744,770,775,803,808,818,827,836,845,854,863],{"id":215,"data":216,"type":220,"tunes":221},"-PDI7SJcNl",{"title":217,"maxLevel":218,"minLevel":219},"Содержание",3,2,"tableOfContents",{},{"id":223,"data":224,"type":226,"tunes":227},"intro",{"text":225},"Под понятием «self-hosted агент» сегодня скрываются как минимум три различные архитектуры. Можно использовать управляемую обвязку (harness) с вычислениями на стороне OpenAI, управляемую обвязку, подключенную к вашей собственной инфраструктуре, или развернуть обвязку и цикл агента полностью самостоятельно. Эти варианты существенно различаются с точки зрения контроля, восстановления, управления контекстом, безопасности, задержек и эксплуатационной нагрузки.","paragraph",{},{"id":229,"data":230,"type":234,"tunes":235},"direct",{"body":231,"title":232,"variant":233},"\u003Cstrong>Не выбирайте между «управляемым» и «self-hosted» вариантами так, будто это бинарное решение.\u003C\u002Fstrong> Разделяйте \u003Cstrong>уровень обвязки (harness plane)\u003C\u002Fstrong> и \u003Cstrong>уровень исполнения (execution plane)\u003C\u002Fstrong>. Управляемая обвязка вполне может использовать вычислительные ресурсы self-hosted. Self-hosted окружение дает контроль над файлами, пакетами, доступом к сети и исполнением, не требуя при этом брать на себя управление циклом агента. Разворачивайте обвязку самостоятельно только тогда, когда вам необходим контроль над оркестрацией, жизненным циклом, логикой маршрутизации моделей или поведением среды выполнения, которые управляемая обвязка не позволяет настроить.","Короткий ответ","info","callout",{},{"id":237,"data":238,"type":234,"tunes":242},"current",{"body":239,"title":240,"variant":241},"Agents API от OpenAI находится в стадии публичной беты, и его архитектура может развиваться. Текущая документация разделяет размещенную в OpenAI обвязку Codex и среду исполнения, а также явно поддерживает self-hosted окружения. Кроме того, OpenAI предоставляет обвязку Codex отдельно через Codex SDK для запуска на вашей собственной инфраструктуре.","Актуально на 25 сентября 2026 г.","warning",{},{"id":244,"data":245,"type":234,"tunes":248},"note",{"body":246,"title":247,"variant":244},"Концепция разделения на Harness Plane \u002F Execution Plane и приведенный ниже тест эскалации контроля — это практические архитектурные инструменты, предложенные в данной статье. Они не являются официальной терминологией вендоров.","Модель, используемая в этой статье",{},{"id":250,"data":251,"type":42,"tunes":253},"h-mistake",{"text":252,"level":219},"Ошибка: воспринимать self-hosting как единое решение",{},{"id":255,"data":256,"type":226,"tunes":258},"p-mistake-1",{"text":257},"В традиционном ПО термин «self-hosted» обычно означает, что приложение работает на инфраструктуре, которую вы контролируете. В агентных системах это определение усложняется, поскольку среду выполнения можно разделить. Цикл работы модели и инструментов может выполняться в одном месте, а выполнение кода, файлы и доступ к приватной сети — в другом.",{},{"id":260,"data":261,"type":226,"tunes":263},"p-mistake-2",{"text":262},"Текущая архитектура Agents API от OpenAI делает это разделение явным: OpenAI берет на себя обвязку, тогда как среда исполнения может отсутствовать, быть развернута на мощностях OpenAI или быть self-hosted. Следовательно, self-hosted среда не означает, что цикл агента также является self-hosted.",{},{"id":265,"data":266,"type":226,"tunes":268},"p-mistake-3",{"text":267},"Это различие принципиально, поскольку многие команды выбирают более сложный рантайм, чем им реально требуется. Нуждаясь в доступе к приватной сети или кастомных пакетах, они делают вывод, что весь агент должен быть self-hosted, и непреднамеренно берут на себя управление контекстом, оркестрацию, восстановление и жизненный цикл, которые вполне могли бы оставаться управляемыми со стороны платформы.",{},{"id":270,"data":271,"type":42,"tunes":273},"h-three",{"text":272,"level":219},"Три архитектуры, которые часто называют «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],"Архитектура","Кто запускает обвязку?","Где выполняются код и файлы","За что в основном отвечаете вы",[284,285,286,287],"Управляемая обвязка + управляемая среда","Платформа","Песочница, размещенная на платформе","Приложение, инструменты, продуктовая логика, авторизация",[289,285,290,291],"Управляемая обвязка + self-hosted среда","Ваш контейнер, VM, ноутбук, приватное облако или другие вычислительные ресурсы","Подготовка среды, сеть, файлы и жизненный цикл; обвязку по-прежнему обеспечивает платформа",[293,294,295,296],"Self-hosted обвязка \u002F цикл агента","Вы","Выбранная вами среда","Процесс обвязки, оркестрация, стратегия контекста, хостинг, восстановление, исполнение и жизненный цикл приложения","table",{},{"id":300,"data":301,"type":42,"tunes":303},"h-two-plane",{"text":302,"level":219},"Двухуровневая модель",{},{"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","Уровень обвязки (Harness plane)",[312,312,312],"",{"id":314,"label":315,"values":316},"execution","Уровень исполнения (Execution plane)",[312,312,312],{"id":318,"label":319,"values":320},"application","Уровень приложения (Application plane)",[312,312,312],"Разделяйте уровень обвязки и уровень исполнения",[323,326,329],{"id":324,"label":325},"plane","Уровень",{"id":327,"label":328},"owns","За что отвечает",{"id":330,"label":331},"questions","Вопросы для анализа","comparison",{},{"id":335,"data":336,"type":234,"tunes":340},"key-consequence",{"body":337,"title":338,"variant":339},"Вы можете перевести на self-hosting \u003Cstrong>уровень исполнения\u003C\u002Fstrong>, не переводя на self-hosting \u003Cstrong>уровень обвязки\u003C\u002Fstrong>. Зачастую это и есть оптимальная золотая середина.","Ключевой архитектурный вывод","success",{},{"id":342,"data":343,"type":42,"tunes":345},"h-managed",{"text":344,"level":219},"Управляемая обвязка: что вы получаете на самом деле",{},{"id":347,"data":348,"type":226,"tunes":350},"p-managed-1",{"text":349},"Управляемая обвязка избавляет от гораздо большего, чем просто от цикла while. Текущий Agents API от OpenAI берет на себя сессии, оркестрацию, сжатие контекста и восстановление. Работа Anthropic над управляемыми агентами описывает ту же глобальную мотивацию: обвязки завязаны на предположениях о поведении моделей, и эти предположения должны развиваться по мере совершенствования самих моделей.",{},{"id":352,"data":353,"type":226,"tunes":355},"p-managed-2",{"text":354},"Это означает, что выгода заключается не только в сокращении строк кода. Платформа может обновлять поведение среды выполнения, работу с долгосрочным контекстом, координацию субагентов и механизмы восстановления без необходимости для каждой команды переписывать эти решения с нуля.",{},{"id":357,"data":358,"type":368,"tunes":369},"managed-list",{"meta":359,"items":360,"style":367},{},[361,362,363,364,365,366],"Меньше кода оркестрации в зоне ответственности приложения.","Встроенная поддержка персистентных сессий.","Управляемое сжатие контекста и механизмы восстановления.","Среда выполнения, способная развиваться вместе с возможностями моделей.","Более простое внедрение нативных функций платформы для работы с субагентами и длительными задачами.","Потенциальное снижение эксплуатационной нагрузки для команд, чья уникальная ценность не связана с разработкой собственной обвязки.","unordered","list",{},{"id":371,"data":372,"type":42,"tunes":374},"h-managed-cost",{"text":373,"level":219},"Управляемый harness: от чего вы отказываетесь",{},{"id":376,"data":377,"type":226,"tunes":379},"p-managed-cost-1",{"text":378},"Делегирование harness означает и передачу части контроля. Ваше приложение больше не управляет каждой деталью итераций, стратегией контекста, оркестрацией и эволюцией среды выполнения. Обновление платформы может улучшить систему, но также способно изменить поведение, от которого неявно зависел ваш продукт.",{},{"id":381,"data":382,"type":226,"tunes":384},"p-managed-cost-2",{"text":383},"Это формирует иной класс инженерных требований: надежные оценки (evals), четкие границы продукта и интеграционный слой, который не позволит поведению управляемых сессий стать единственным источником бизнес-правды.",{},{"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],"Компромисс управляемого harness","Что это означает на практике",[393,394],"Меньше контроля над циклом","Вы не можете рассчитывать, что каждая деталь оркестрации задается приложением",[396,397],"Эволюция платформы","Поведение harness может улучшаться или меняться без изменения вашего кода",[399,400],"Вендор-специфичный жизненный цикл","Сессии, события и семантика восстановления становятся частью интеграционного интерфейса",[402,403],"Граница наблюдаемости (observability)","Трейсы платформы необходимо объединять с данными аудита приложения",[405,406],"Затраты на переносимость","Переход на другой harness в будущем может потребовать гораздо большего, чем простая смена эндпоинтов модели",{},{"id":409,"data":410,"type":42,"tunes":412},"h-self-env",{"text":411,"level":219},"Self-hosted среда выполнения: промежуточная архитектура",{},{"id":414,"data":415,"type":226,"tunes":417},"p-self-env-1",{"text":416},"Модель self-hosted окружения от OpenAI важна тем, что она отделяет приватные вычислительные ресурсы от владения harness. Платформа по-прежнему запускает Codex harness, тогда как исполнитель (executor) работает внутри вашей среды и получает команды через исходящее соединение.",{},{"id":419,"data":420,"type":226,"tunes":422},"p-self-env-2",{"text":421},"Вы контролируете выделение ресурсов, файлы, зависимости, доступ к сети и очистку. Таким образом, harness может работать с приватной инфраструктурой или кастомным ПО без необходимости переносить весь runtime агента в ваше приложение.",{},{"id":424,"data":425,"type":226,"tunes":427},"p-self-env-3",{"text":426},"Платой за это становится ответственность за жизненный цикл. Ваше приложение должно привязывать сессии к вычислительным ресурсам, избегать дублирующего провижининга, переподключать окружения, координировать завершение работы и сохранять файлы, которые должны пережить уничтожение среды.",{},{"id":429,"data":430,"type":42,"tunes":432},"h-enough",{"text":431,"level":218},"Когда self-hosted выполнения достаточно",{},{"id":434,"data":435,"type":368,"tunes":444},"enough-list",{"meta":436,"items":437,"style":367},{},[438,439,440,441,442,443],"Агенту требуется доступ к приватной VPC или внутреннему сервису.","Агенту требуются кастомные бинарные файлы, пакеты, драйверы или системное ПО.","Нагрузка должна выполняться на оборудовании или в облачных аккаунтах под вашим управлением.","Файлы должны оставаться внутри контролируемого периметра.","Вам нужен собственный провайдер песочниц (sandbox) или модель изоляции.","Вам нужна оркестрация на стороне платформы, но выполнение под контролем собственной инфраструктуры.",{},{"id":446,"data":447,"type":42,"tunes":449},"h-own-harness",{"text":448,"level":219},"Когда вам может потребоваться владеть и самим harness",{},{"id":451,"data":452,"type":226,"tunes":454},"p-own-1",{"text":453},"Владение harness становится оправданным, когда сам harness является частью дифференциации вашего продукта или набора ограничений. В текущем обзоре среды выполнения OpenAI позиционирует Codex SDK для запуска Codex harness на управляемой вами инфраструктуре, тогда как Responses выступает более низкоуровневым вариантом, если вы хотите полностью контролировать цикл агента самостоятельно.",{},{"id":456,"data":457,"type":226,"tunes":459},"p-own-2",{"text":458},"Главное — определить требование, которое действительно относится к уровню harness, а не к уровню выполнения (execution plane).",{},{"id":461,"data":462,"type":297,"tunes":495},"requirements-table",{"content":463,"stretched":43,"withHeadings":14},[464,468,472,475,478,482,485,488,491],[465,466,467],"Требование","Проблема уровня выполнения или уровня harness?","Вероятное решение",[469,470,471],"Доступ к приватной базе данных","Уровень выполнения","Управляемый harness + self-hosted среда может быть достаточным",[473,470,474],"Пользовательские пакеты Linux","Управляемый harness + self-hosted среда",[476,470,477],"Специализированные GPU","Управляемый harness + self-hosted среда (где поддерживается)",[479,480,481],"Кастомная логика остановки агента","Уровень harness","Собственный harness \u002F кастомный цикл",[483,480,484],"Маршрутизация между моделями разных провайдеров на каждом шаге","Кастомный цикл или собственный harness",[486,480,487],"Кастомный алгоритм сжатия контекста","Собственный harness, если управляемый runtime не предоставляет такой возможности",[489,480,490],"Детерминированная семантика оркестрации, требуемая продуктом","Собственный harness или строго контролируемый кастомный цикл",[492,493,494],"Полностью локальное развертывание продукта без зависимости от управляемого harness","Уровень harness + уровень выполнения","Полностью автономный runtime",{},{"id":497,"data":498,"type":42,"tunes":500},"h-control-test",{"text":499,"level":219},"Тест эскалации контроля",{},{"id":502,"data":503,"type":226,"tunes":505},"p-control-intro",{"text":504},"Используйте наименее требовательную к самостоятельному хостингу архитектуру, которая покрывает реальные потребности. Повышайте уровень контроля строго пошагово.",{},{"id":507,"data":508,"type":532,"tunes":533},"control-flow",{"steps":509,"title":499,"orientation":531},[510,513,516,519,522,525,528],{"label":511,"description":512},"1. Начните с границ приложения","Сохраняйте бизнес-логику, авторизацию и критически важные действия внутри собственного продукта независимо от среды выполнения агента.",{"label":514,"description":515},"2. Определите, нужно ли агенту локальное выполнение","Если нет, управляемого harness без выделенной среды может оказаться достаточно.",{"label":517,"description":518},"3. Определите, допустимы ли вычисления на стороне платформы","Если да, используйте управляемую среду и избегайте лишних затрат на владение инфраструктурой.",{"label":520,"description":521},"4. Если нет, разверните уровень выполнения у себя","Подключите собственную среду для работы с приватной сетью, файлами, пакетами или контролируемыми вычислительными ресурсами.",{"label":523,"description":524},"5. Переоцените оставшиеся ограничения","Если требования удовлетворены, остановитесь. Не берите управление harness на себя исключительно ради архитектурной симметрии.",{"label":526,"description":527},"6. Переходите к владению harness только при реальной необходимости","Разворачивайте собственный Codex harness или кастомный цикл агента, только если этого действительно требуют оркестрация, работа с контекстом, жизненный цикл или переносимость.",{"label":529,"description":530},"7. Убедитесь, что дополнительный контроль окупает затраты на эксплуатацию","Оцените надежность, задержки, затраты, сценарии восстановления, наблюдаемость и нагрузку на инженеров перед принятием решения.","auto","processFlow",{},{"id":535,"data":536,"type":42,"tunes":538},"h-ops",{"text":537,"level":219},"Эксплуатационная нагрузка растет нелинейно, когда вы берете harness на себя",{},{"id":540,"data":541,"type":226,"tunes":543},"p-ops-1",{"text":542},"Самостоятельно реализованный цикл кажется простым в демо-версии: вызов модели, проверка вызова инструмента, выполнение инструмента, добавление результата, повтор. В продакшене к этому добавляются долговременное состояние (durable state), повторные попытки (retries), дублирование событий, отмена, подтверждения, переполнение контекста, таймауты инструментов, перезапуски процессов, сохранение трассировок, противодавление (backpressure), параллельная работа и восстановление после частичных побочных эффектов.",{},{"id":545,"data":546,"type":226,"tunes":548},"p-ops-2",{"text":547},"Исследования Anthropic в области долгоживущих агентов неоднократно показывают, что архитектура обвязки (harness) существенно влияет на производительность. В их работе над созданием долгоживущих приложений используются явное планирование, структурированные артефакты и агенты-оценщики, поскольку наивные циклы склонны терять прогресс или завершаться преждевременно. Таким образом, обвязка — это логика продакшена, а не просто техническая рутина.",{},{"id":550,"data":551,"type":297,"tunes":583},"ops-table",{"content":552,"stretched":43,"withHeadings":14},[553,556,559,562,565,568,571,574,577,580],[554,555],"Если вы сами управляете обвязкой, вам также нужно решение для","Почему это важно",[557,558],"Долговременное состояние сессии","Процессы перезапускаются; долгоживущая работа должна корректно возобновляться",[560,561],"Сжатие контекста","История со временем начинает превышать практический рабочий контекст",[563,564],"Идемпотентность инструментов","Повторные попытки не должны приводить к дублированию необратимых побочных эффектов",[566,567],"Отмена и прерывание","Пользователям и системам необходимо останавливать или перенаправлять работу",[569,570],"Восстановление после частичного выполнения","Инструмент может успешно отработать, даже если агент так и не получил результат",[572,573],"Параллелизм (concurrency)","Несколько задач, воркеров или агентов могут обращаться к общему состоянию",[575,576],"Наблюдаемость (observability)","Финального результата недостаточно для отладки сбоев во время выполнения",[578,579],"Версионирование","Обновления обвязки могут изменить поведение, даже если промпты остаются неизменными",[581,582],"Оценка (evaluation)","Изменения в среде выполнения требуют регрессионного тестирования на репрезентативных сценариях",{},{"id":585,"data":586,"type":42,"tunes":588},"h-security",{"text":587,"level":219},"Граница безопасности: самостоятельный хостинг вычислений не делает агента приватным автоматически",{},{"id":590,"data":591,"type":226,"tunes":593},"p-sec-1",{"text":592},"Self-hosted среда выполнения контролирует, где запускаются команды и хранятся файлы, однако управляемая обвязка и взаимодействие с моделью по-прежнему пересекают границы сервиса. Поэтому командам следует явно картировать потоки данных, а не использовать термин «self-hosted» как синоним гарантированной приватности.",{},{"id":595,"data":596,"type":226,"tunes":598},"p-sec-2",{"text":597},"Self-hosted исполнитель (executor) OpenAI использует ограниченные учетные данные окружения и исходящие соединения. Это полезная изоляция, но вашему приложению все равно требуются собственные правила для работы с секретами, доступа к приватным сетям, изоляции пользователей от окружения, хранения файлов, авторизации инструментов и классификации данных.",{},{"id":600,"data":601,"type":234,"tunes":604},"sec-callout",{"body":602,"title":603,"variant":241},"\u003Cstrong>Контроль инфраструктуры, изоляция выполнения и границы управления данными взаимосвязаны, но не идентичны.\u003C\u002Fstrong> Принимайте решения по каждому из этих аспектов раздельно.","Важное различие",{},{"id":606,"data":607,"type":42,"tunes":609},"h-cost",{"text":608,"level":219},"Задержка и стоимость: контроль может лишь сместить узкие места, а не устранить их",{},{"id":611,"data":612,"type":226,"tunes":614},"p-cost-1",{"text":613},"Self-hosting может снизить некоторые расходы на передачу данных или запуск сред, но способен добавить время на выделение ресурсов, управление жизненным циклом WebSocket, холодные старты, очистку песочниц, инфраструктуру наблюдаемости и инженерные накладные расходы. Управляемая среда может стоить дороже в пересчете на единицу вычислений, оставаясь при этом дешевле в эксплуатации при низких или нерегулярных объемах нагрузки.",{},{"id":616,"data":617,"type":226,"tunes":619},"p-cost-2",{"text":618},"Корректное сопоставление — это совокупная стоимость всей системы: использование моделей и инструментов, время работы среды, инфраструктура, затраты на разработку, нагрузка на дежурных (on-call), восстановление после сбоев и цена замедления итераций.",{},{"id":621,"data":622,"type":42,"tunes":624},"h-matrix",{"text":623,"level":219},"Матрица принятия решений для продакшена",{},{"id":626,"data":627,"type":297,"tunes":669},"decision-matrix",{"content":628,"stretched":43,"withHeadings":14},[629,632,637,640,643,647,652,655,659,661,664],[630,284,289,631],"Критерий","Собственная обвязка \u002F цикл",[633,634,635,636],"Кратчайший путь в продакшен","Высокий","Умеренный","Самый низкий",[638,639,634,634],"Выполнение в приватной сети","Слабо \u002F зависит от архитектуры подключения",[641,642,634,634],"Пользовательские пакеты \u002F системное ПО","Умеренно",[644,645,645,646],"Контроль на уровне обвязки","Низкий","Максимальный",[648,649,650,651],"Эксплуатационная нагрузка","Минимальная","Средняя","Максимальная",[653,649,650,654],"Портативность","Потенциально максимальная при продуманной архитектуре",[656,657,657,658],"Контроль стратегии контекста","Управляется платформой","Управляется приложением",[660,645,634,634],"Контроль инфраструктуры выполнения",[662,651,651,663],"Возможность использовать обновления управляемой обвязки","Внедрение полностью на вашей стороне",[665,666,667,668],"Кому лучше всего подходит","Командам, создающим уникальность на уровне продукта\u002Fинструментов","Командам, которым нужны изолированные\u002Fкастомные вычисления без управления оркестрацией","Командам, для которых сама семантика среды выполнения является ключевым требованием",{},{"id":671,"data":672,"type":42,"tunes":674},"h-hybrid",{"text":673,"level":219},"Гибридный подход — это не компромисс, а зачастую чистая архитектура",{},{"id":676,"data":677,"type":226,"tunes":679},"p-hybrid-1",{"text":678},"Управляемая обвязка с self-hosted средой выполнения — это не «половинчатый self-hosting». Это осознанное разделение сфер ответственности (separation of concerns). Платформа берет на себя сложности долгосрочной среды выполнения агентов, в то время как ваша инфраструктура управляет выполнением кода, доступом к приватной сети и файлами.",{},{"id":681,"data":682,"type":226,"tunes":684},"p-hybrid-2",{"text":683},"Такое разделение границ напоминает другие облачные архитектуры: управляемая плоскость управления (control plane) и подконтрольная клиенту плоскость данных или выполнения (data\u002Fexecution plane). Основная проектная работа здесь заключается в определении контракта между ними: идентификаторы сессий, идентификаторы окружения, учетные данные, файлы, права доступа к инструментам, события жизненного цикла и процессы очистки.",{},{"id":686,"data":687,"type":692,"tunes":693},"ref-runtime",{"url":688,"title":689,"excerpt":690,"ctaLabel":691},"https:\u002F\u002Fstajic.de\u002Fru\u002Fblog\u002Fopenai-agents-api-vs-agents-sdk-vs-responses-api-what-should-you-build-on-in-2026","OpenAI Agents API против Agents SDK и Responses API: на чем строить в 2026 году?","Сравнение вариантов владения средой выполнения для текущих интерфейсов агентов OpenAI и распределения границ контроля.","Читать сравнение сред выполнения","referralArticle",{},{"id":695,"data":696,"type":42,"tunes":698},"h-change",{"text":697,"level":219},"Что могло бы изменить этот вывод?",{},{"id":700,"data":701,"type":226,"tunes":703},"p-change-1",{"text":702},"Рекомендация может измениться, если управляемые обвязки предоставят существенно больше контроля над средой выполнения, если в self-hosted обвязках появятся более простые примитивы для долгоживущих сессий и восстановления, либо если регуляторные требования обяжут удерживать весь цикл агента и взаимодействие с моделями строго внутри инфраструктуры, находящейся под вашим управлением.",{},{"id":705,"data":706,"type":226,"tunes":708},"p-change-2",{"text":707},"Это также меняется по мере роста возможностей моделей. Anthropic прямо указывает, что исходные предпосылки об обвязке (harness) могут устаревать по мере совершенствования моделей. Механизм контроля, необходимый сегодня, позже может оказаться избыточным, тогда как новая возможность модели может породить новое требование к управлению.",{},{"id":710,"data":711,"type":42,"tunes":713},"h-limit",{"text":712,"level":219},"Ограничения",{},{"id":715,"data":716,"type":226,"tunes":718},"p-limit-1",{"text":717},"В этой статье разграничиваются архитектурные зоны ответственности; в ней не утверждается, что одна модель хостинга универсально более безопасна, дешевле или надежнее. Эти результаты зависят от реализации, рабочей нагрузки, нормативных требований, квалификации команды и специфики провайдера.",{},{"id":720,"data":721,"type":226,"tunes":723},"p-limit-2",{"text":722},"OpenAI Agents API все еще находится в стадии публичной беты, а управляемые агентские продукты от разных вендоров проводят границы по-разному. Двухуровневая модель призвана помочь сопоставить эти архитектуры, не предполагая, что каждый вендор использует одинаковую терминологию.",{},{"id":725,"data":726,"type":42,"tunes":728},"h-conclusion",{"text":727,"level":219},"Заключение",{},{"id":730,"data":731,"type":226,"tunes":733},"p-conclusion-1",{"text":732},"Полезный вопрос звучит не «Стоит ли нам самостоятельно хостить агента?». Он заключается в следующем: Какой именно уровень нам действительно необходимо контролировать?",{},{"id":735,"data":736,"type":226,"tunes":738},"p-conclusion-2",{"text":737},"Если требование состоит в приватных вычислительных ресурсах, кастомных пакетах, локальных файлах или доступе к внутренней сети — используйте собственный хостинг для уровня исполнения (execution plane), оставив обвязку (harness) управляемой. Если же требование касается семантики оркестрации, стратегии контекста, контроля над провайдером или жизненного цикла самой среды выполнения, то владение обвязкой может быть оправдано. Эскалируйте контроль ровно настолько, насколько этого требуют задачи.",{},{"id":740,"data":741,"type":42,"tunes":743},"h-faq",{"text":742,"level":219},"Часто задаваемые вопросы",{},{"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","Не совсем. OpenAI по-прежнему управляет обвязкой Codex, в то время как ваша инфраструктура обеспечивает среду исполнения для команд, файлов и локальных инструментов.","Является ли self-hosted среда OpenAI Agents API полностью автономным агентом?",{"id":753,"answer":754,"question":755},"faq2","Этого часто достаточно, когда ваши требования касаются доступа к приватной сети, кастомных пакетов, контролируемых файлов, специфического оборудования или политик инфраструктуры, а не контроля над самим циклом агента.","Когда достаточно среды на собственном хостинге?",{"id":757,"answer":758,"question":759},"faq3","Задумайтесь о самостоятельном владении обвязкой, если вам необходима кастомная семантика оркестрации, особое управление контекстом, маршрутизация между провайдерами, строго локальное поведение среды выполнения или другие требования, относящиеся к циклу агента, а не к среде исполнения.","Когда следует запускать обвязку самостоятельно?",{"id":761,"answer":762,"question":763},"faq4","Нет. Он лишь меняет перечень компонентов, которые вы контролируете. Безопасность зависит от потоков данных, изоляции, учетных данных, прав доступа инструментов, сети, логирования и организации жизненного цикла всех компонентов.","Повышает ли собственный хостинг безопасность автоматически?",{"id":765,"answer":766,"question":767},"faq5","На вас ложится ответственность за сохранение состояния, управление контекстом, повторные попытки, отмену операций, восстановление, наблюдаемость, конкурентность, обновления среды выполнения и оценку изменений в обвязке.","В чем заключаются основные эксплуатационные расходы при контроле агентского цикла?","Управляемые обвязки и среды выполнения агентов на собственном хостинге",{},{"id":771,"data":772,"type":42,"tunes":774},"h-glossary",{"text":773,"level":219},"Глоссарий",{},{"id":776,"data":777,"type":776,"tunes":802},"glossary",{"title":778,"entries":779},"Ключевые архитектурные термины",[780,783,786,790,794,798],{"term":310,"anchor":781,"definition":782},"harness-plane","Слой среды выполнения агента, отвечающий за исполнение цикла, оркестрацию, управление контекстом, непрерывность сессий и восстановление.",{"term":315,"anchor":784,"definition":785},"execution-plane","Среда, в которой запускаются команды, выполняется код и осуществляется доступ к файлам, пакетам и локальным ресурсам.",{"term":787,"anchor":788,"definition":789},"Управляемая обвязка (Managed harness)","managed-harness","Обвязка агента, чья среда выполнения, управление сессиями и оркестрация обслуживаются платформенным провайдером.",{"term":791,"anchor":792,"definition":793},"Self-hosted среда (Self-hosted environment)","self-hosted-environment","Вычислительные мощности и файлы, управляемые владельцем приложения, тогда как отдельная обвязка агента может оставаться на стороне внешнего провайдера.",{"term":795,"anchor":796,"definition":797},"Самостоятельно управляемая обвязка (Self-operated harness)","self-operated-harness","Среда выполнения агента, чей цикл, хостинг, стратегия работы с контекстом и жизненный цикл полностью контролируются командой приложения.",{"term":799,"anchor":800,"definition":801},"Тест эскалации контроля (Control Escalation Test)","control-escalation-test","Метод принятия решений, при котором контроль над инфраструктурой и средой выполнения усиливается только тогда, когда требование не может быть удовлетворено на более низком уровне контроля.",{},{"id":804,"data":805,"type":42,"tunes":807},"h-sources",{"text":806,"level":219},"Первоисточники и материалы для дальнейшего чтения",{},{"id":809,"data":810,"type":816,"tunes":817},"src-openai-architecture",{"link":811,"meta":812},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Farchitecture",{"image":813,"title":814,"description":815},{"url":312},"OpenAI — Архитектура Agents API","Текущее разделение между размещенной обвязкой, средой исполнения и сервером приложения.","linkTool",{},{"id":819,"data":820,"type":816,"tunes":826},"src-openai-selfhosted",{"link":821,"meta":822},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Fenvironments\u002Fself-hosted",{"image":823,"title":824,"description":825},{"url":312},"OpenAI — Песочницы на собственном хостинге","Как управляемые клиентом среды исполнения подключаются к управляемой обвязке и какие обязанности по жизненному циклу остаются на стороне приложения.",{},{"id":828,"data":829,"type":816,"tunes":835},"src-openai-lifecycle",{"link":830,"meta":831},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents-api\u002Fenvironments\u002Flifecycle",{"image":832,"title":833,"description":834},{"url":312},"OpenAI — Жизненный цикл песочницы","Инициализация, переподключение, предотвращение дублирования сред и обязанности по очистке для собственных вычислительных мощностей.",{},{"id":837,"data":838,"type":816,"tunes":844},"src-openai-runtime",{"link":839,"meta":840},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents",{"image":841,"title":842,"description":843},{"url":312},"OpenAI — Варианты сред выполнения агентов","Текущее сравнение Agents API, Codex SDK и Responses API по зонам ответственности провайдера и приложения.",{},{"id":846,"data":847,"type":816,"tunes":853},"src-openai-platform",{"link":848,"meta":849},"https:\u002F\u002Fdevelopers.openai.com\u002Fblog\u002Fcodex-as-a-platform",{"image":850,"title":851,"description":852},{"url":312},"OpenAI — Codex как платформа","Обвязка Codex с открытым исходным кодом и интеграционные слои для приложений, которым требуется более глубокий контроль над средой выполнения.",{},{"id":855,"data":856,"type":816,"tunes":862},"src-anthropic-managed",{"link":857,"meta":858},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fmanaged-agents",{"image":859,"title":860,"description":861},{"url":312},"Anthropic — Масштабирование управляемых агентов: отделение мозга от рук","Обсуждение архитектуры управляемых агентов и причин, по которым представления об обвязке должны эволюционировать вместе с возможностями моделей.",{},{"id":864,"data":865,"type":816,"tunes":871},"src-anthropic-harness",{"link":866,"meta":867},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"image":868,"title":869,"description":870},{"url":312},"Anthropic — Эффективные обвязки для длительно работающих агентов","Инженерные выводы, показывающие, что производительность длительно работающих агентов существенно зависит от архитектуры обвязки и постоянных артефактов.",{},"2.31","“Self-hosted агент” может означать совершенно разные архитектуры. Это руководство разделяет управляемую обвязку, self-hosted среду выполнения и полностью самостоятельно управляемый цикл агента — и показывает, какая граница контроля на самом деле нужна командам.","\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":881,"de":882,"sr":883,"es":884,"fr":885,"it":886,"ru":887,"zh":888},"\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",[890,894,898],{"id":891,"name":892,"slug":893},89,"Стенд оценки","evaluation-harness",{"id":895,"name":896,"slug":897},78,"Цикл оптимизации","optimization-loop",{"id":899,"name":900,"slug":901},91,"Мониторинг (качество, дрейф)","monitoring",{"id":903,"login":904,"email":905,"displayName":906},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[908,1457],{"lang":909,"title":910,"content":911,"contentJson":912,"excerpt":1456},"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":913,"blocks":914,"version":1455},1790352404508,[915,919,923,928,933,938,942,946,950,954,958,981,985,1006,1011,1015,1019,1023,1034,1038,1042,1046,1068,1072,1076,1080,1084,1088,1099,1103,1107,1111,1143,1147,1151,1177,1181,1185,1189,1223,1227,1231,1235,1240,1244,1248,1252,1256,1299,1303,1307,1311,1318,1322,1326,1330,1334,1338,1342,1346,1350,1354,1358,1378,1382,1402,1406,1413,1420,1427,1434,1441,1448],{"id":215,"data":916,"type":220,"tunes":918},{"title":917,"maxLevel":218,"minLevel":219},"Contents",{},{"id":223,"data":920,"type":226,"tunes":922},{"text":921},"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":924,"type":234,"tunes":927},{"body":925,"title":926,"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":929,"type":234,"tunes":932},{"body":930,"title":931,"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":934,"type":234,"tunes":937},{"body":935,"title":936,"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":939,"type":42,"tunes":941},{"text":940,"level":219},"The mistake: treating self-hosting as one decision",{},{"id":255,"data":943,"type":226,"tunes":945},{"text":944},"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":947,"type":226,"tunes":949},{"text":948},"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":951,"type":226,"tunes":953},{"text":952},"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":955,"type":42,"tunes":957},{"text":956,"level":219},"Three architectures that are often called “self-hosted”",{},{"id":275,"data":959,"type":297,"tunes":980},{"content":960,"stretched":43,"withHeadings":14},[961,966,971,975],[962,963,964,965],"Architecture","Who runs the harness?","Where code\u002Ffiles execute","What you primarily own",[967,968,969,970],"Managed harness + managed environment","Platform","Platform-hosted sandbox","Application, tools, product logic, authorization",[972,968,973,974],"Managed harness + self-hosted environment","Your container, VM, laptop, private cloud or other compute","Environment provisioning, networking, files and lifecycle; platform still owns harness",[976,977,978,979],"Self-operated harness \u002F agent loop","You","Your chosen environment","Harness process, orchestration, context strategy, hosting, recovery, execution and application lifecycle",{},{"id":300,"data":982,"type":42,"tunes":984},{"text":983,"level":219},"The two-plane model",{},{"id":305,"data":986,"type":332,"tunes":1005},{"rows":987,"title":997,"layout":297,"columns":998},[988,991,994],{"id":309,"label":989,"values":990},"Harness plane",[312,312,312],{"id":314,"label":992,"values":993},"Execution plane",[312,312,312],{"id":318,"label":995,"values":996},"Application plane",[312,312,312],"Separate the harness plane from the execution plane",[999,1001,1003],{"id":324,"label":1000},"Plane",{"id":327,"label":1002},"What it owns",{"id":330,"label":1004},"Questions to ask",{},{"id":335,"data":1007,"type":234,"tunes":1010},{"body":1008,"title":1009,"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":1012,"type":42,"tunes":1014},{"text":1013,"level":219},"Managed harness: what you actually gain",{},{"id":347,"data":1016,"type":226,"tunes":1018},{"text":1017},"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":1020,"type":226,"tunes":1022},{"text":1021},"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":1024,"type":368,"tunes":1033},{"meta":1025,"items":1026,"style":367},{},[1027,1028,1029,1030,1031,1032],"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":1035,"type":42,"tunes":1037},{"text":1036,"level":219},"Managed harness: what you give up",{},{"id":376,"data":1039,"type":226,"tunes":1041},{"text":1040},"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":1043,"type":226,"tunes":1045},{"text":1044},"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":1047,"type":297,"tunes":1067},{"content":1048,"stretched":43,"withHeadings":14},[1049,1052,1055,1058,1061,1064],[1050,1051],"Managed-harness trade-off","What it means operationally",[1053,1054],"Less loop control","You cannot assume every orchestration detail is application-defined",[1056,1057],"Platform evolution","Harness behaviour can improve or change without your code changing",[1059,1060],"Vendor-specific lifecycle","Sessions, events and recovery semantics become part of the integration surface",[1062,1063],"Observability boundary","Platform traces must be joined with application audit data",[1065,1066],"Portability cost","Moving to another harness later may require more than swapping model endpoints",{},{"id":409,"data":1069,"type":42,"tunes":1071},{"text":1070,"level":219},"Self-hosted execution environment: the middle architecture",{},{"id":414,"data":1073,"type":226,"tunes":1075},{"text":1074},"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":1077,"type":226,"tunes":1079},{"text":1078},"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":1081,"type":226,"tunes":1083},{"text":1082},"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":1085,"type":42,"tunes":1087},{"text":1086,"level":218},"When self-hosted execution is enough",{},{"id":434,"data":1089,"type":368,"tunes":1098},{"meta":1090,"items":1091,"style":367},{},[1092,1093,1094,1095,1096,1097],"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":1100,"type":42,"tunes":1102},{"text":1101,"level":219},"When you may need to own the harness too",{},{"id":451,"data":1104,"type":226,"tunes":1106},{"text":1105},"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":1108,"type":226,"tunes":1110},{"text":1109},"The key is to identify a requirement that genuinely lives in the harness plane, not the execution plane.",{},{"id":461,"data":1112,"type":297,"tunes":1142},{"content":1113,"stretched":43,"withHeadings":14},[1114,1118,1121,1123,1126,1129,1132,1135,1138],[1115,1116,1117],"Requirement","Execution-plane problem or harness-plane problem?","Likely direction",[1119,992,1120],"Private database access","Managed harness + self-hosted environment may be sufficient",[1122,992,972],"Custom Linux packages",[1124,992,1125],"Custom GPU hardware","Managed harness + self-hosted environment where supported",[1127,989,1128],"Custom agent stopping logic","Self-operated harness \u002F custom loop",[1130,989,1131],"Cross-provider model routing at every step","Custom loop or harness you operate",[1133,989,1134],"Custom context-compaction algorithm","Self-operated harness if the managed runtime cannot expose it",[1136,989,1137],"Deterministic orchestration semantics required by product","Self-operated harness or tightly controlled custom loop",[1139,1140,1141],"Local-only product deployment with no managed harness dependency","Harness plane + execution plane","Self-operated runtime",{},{"id":497,"data":1144,"type":42,"tunes":1146},{"text":1145,"level":219},"The Control Escalation Test",{},{"id":502,"data":1148,"type":226,"tunes":1150},{"text":1149},"Use the least self-hosted architecture that satisfies the actual requirement. Escalate control one layer at a time.",{},{"id":507,"data":1152,"type":532,"tunes":1176},{"steps":1153,"title":1175,"orientation":531},[1154,1157,1160,1163,1166,1169,1172],{"label":1155,"description":1156},"1. Start with the application boundary","Keep domain truth, authorization and consequential business actions in your own product regardless of agent runtime.",{"label":1158,"description":1159},"2. Ask whether the agent needs local execution","If not, a managed harness without a dedicated environment may be enough.",{"label":1161,"description":1162},"3. Ask whether platform-hosted compute is acceptable","If yes, use a managed environment and avoid unnecessary infrastructure ownership.",{"label":1164,"description":1165},"4. If not, self-host the execution plane","Connect your own environment for private network, files, packages or controlled compute.",{"label":1167,"description":1168},"5. Re-evaluate the remaining constraint","If the requirement is now satisfied, stop. Do not self-host the harness simply for architectural symmetry.",{"label":1170,"description":1171},"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":1173,"description":1174},"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":535,"data":1178,"type":42,"tunes":1180},{"text":1179,"level":219},"Operational burden grows nonlinearly when you own the harness",{},{"id":540,"data":1182,"type":226,"tunes":1184},{"text":1183},"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":545,"data":1186,"type":226,"tunes":1188},{"text":1187},"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":550,"data":1190,"type":297,"tunes":1222},{"content":1191,"stretched":43,"withHeadings":14},[1192,1195,1198,1201,1204,1207,1210,1213,1216,1219],[1193,1194],"If you own the harness, you also need an answer for","Why it matters",[1196,1197],"Durable session state","Processes restart; long-running work must resume correctly",[1199,1200],"Context compaction","History eventually exceeds practical working context",[1202,1203],"Tool idempotency","Retries must not repeat irreversible side effects",[1205,1206],"Cancellation and interruption","Users and systems need to stop or redirect work",[1208,1209],"Recovery after partial execution","A tool may succeed even if the agent never receives the result",[1211,1212],"Concurrency","Multiple tasks, workers or agents can touch shared state",[1214,1215],"Observability","Final output is insufficient for debugging runtime failures",[1217,1218],"Versioning","Harness updates can change behaviour even when prompts remain constant",[1220,1221],"Evaluation","Runtime changes need regression testing across representative trajectories",{},{"id":585,"data":1224,"type":42,"tunes":1226},{"text":1225,"level":219},"Security boundary: self-hosting compute does not automatically make the agent private",{},{"id":590,"data":1228,"type":226,"tunes":1230},{"text":1229},"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":595,"data":1232,"type":226,"tunes":1234},{"text":1233},"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":600,"data":1236,"type":234,"tunes":1239},{"body":1237,"title":1238,"variant":241},"\u003Cstrong>Infrastructure control, execution isolation and data-governance boundaries are related but not identical.\u003C\u002Fstrong> Decide them separately.","Important distinction",{},{"id":606,"data":1241,"type":42,"tunes":1243},{"text":1242,"level":219},"Latency and cost: control can move bottlenecks rather than remove them",{},{"id":611,"data":1245,"type":226,"tunes":1247},{"text":1246},"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":616,"data":1249,"type":226,"tunes":1251},{"text":1250},"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":621,"data":1253,"type":42,"tunes":1255},{"text":1254,"level":219},"A production decision matrix",{},{"id":626,"data":1257,"type":297,"tunes":1298},{"content":1258,"stretched":43,"withHeadings":14},[1259,1262,1267,1270,1272,1276,1280,1283,1287,1290,1293],[1260,967,972,1261],"Constraint","Self-operated harness \u002F loop",[1263,1264,1265,1266],"Fastest path to production","Strong","Moderate","Weakest",[1268,1269,1264,1264],"Private-network execution","Weak \u002F depends on connectivity design",[1271,1265,1264,1264],"Custom packages \u002F system software",[1273,1274,1274,1275],"Harness-level control","Low","Highest",[1277,1278,1279,1275],"Operational burden","Lowest","Medium",[1281,1278,1279,1282],"Portability","Potentially highest if intentionally designed",[1284,1285,1285,1286],"Context strategy control","Platform-managed","Application-controlled",[1288,1274,1289,1289],"Execution infrastructure control","High",[1291,1275,1275,1292],"Ability to benefit from managed harness updates","You own adoption",[1294,1295,1296,1297],"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":1300,"type":42,"tunes":1302},{"text":1301,"level":219},"Hybrid is not a compromise — it is often the clean architecture",{},{"id":676,"data":1304,"type":226,"tunes":1306},{"text":1305},"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":1308,"type":226,"tunes":1310},{"text":1309},"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":1312,"type":692,"tunes":1317},{"url":1313,"title":1314,"excerpt":1315,"ctaLabel":1316},"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":1319,"type":42,"tunes":1321},{"text":1320,"level":219},"What would change this answer?",{},{"id":700,"data":1323,"type":226,"tunes":1325},{"text":1324},"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":1327,"type":226,"tunes":1329},{"text":1328},"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":1331,"type":42,"tunes":1333},{"text":1332,"level":219},"Limitations",{},{"id":715,"data":1335,"type":226,"tunes":1337},{"text":1336},"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":1339,"type":226,"tunes":1341},{"text":1340},"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":1343,"type":42,"tunes":1345},{"text":1344,"level":219},"Conclusion",{},{"id":730,"data":1347,"type":226,"tunes":1349},{"text":1348},"The useful question is not “Should we self-host the agent?” It is: Which plane do we actually need to control?",{},{"id":735,"data":1351,"type":226,"tunes":1353},{"text":1352},"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":1355,"type":42,"tunes":1357},{"text":1356,"level":219},"FAQ",{},{"id":745,"data":1359,"type":745,"tunes":1377},{"items":1360,"title":1376},[1361,1364,1367,1370,1373],{"id":749,"answer":1362,"question":1363},"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":1365,"question":1366},"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":1368,"question":1369},"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":1371,"question":1372},"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":1374,"question":1375},"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":1379,"type":42,"tunes":1381},{"text":1380,"level":219},"Glossary",{},{"id":776,"data":1383,"type":776,"tunes":1401},{"title":1384,"entries":1385},"Key architecture terms",[1386,1388,1390,1393,1396,1399],{"term":989,"anchor":781,"definition":1387},"The agent-runtime layer responsible for loop execution, orchestration, context management, session continuity and recovery.",{"term":992,"anchor":784,"definition":1389},"The environment in which commands run, code executes and files, packages and local resources are accessed.",{"term":1391,"anchor":788,"definition":1392},"Managed harness","An agent harness whose runtime, session management and orchestration are operated by a platform provider.",{"term":1394,"anchor":792,"definition":1395},"Self-hosted environment","Compute and files operated by the application owner while a separate agent harness may remain managed elsewhere.",{"term":1397,"anchor":796,"definition":1398},"Self-operated harness","An agent runtime whose loop, hosting, context strategy and lifecycle are operated by the application team.",{"term":1175,"anchor":800,"definition":1400},"A decision method that increases infrastructure and runtime ownership only when a requirement cannot be satisfied at a lower-control layer.",{},{"id":804,"data":1403,"type":42,"tunes":1405},{"text":1404,"level":219},"Primary sources and further reading",{},{"id":809,"data":1407,"type":816,"tunes":1412},{"link":811,"meta":1408},{"image":1409,"title":1410,"description":1411},{"url":312},"OpenAI — Agents API Architecture","Current separation between the hosted harness, execution environment and application server.",{},{"id":819,"data":1414,"type":816,"tunes":1419},{"link":821,"meta":1415},{"image":1416,"title":1417,"description":1418},{"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":828,"data":1421,"type":816,"tunes":1426},{"link":830,"meta":1422},{"image":1423,"title":1424,"description":1425},{"url":312},"OpenAI — Sandbox lifecycle","Provisioning, reconnection, duplicate-environment prevention and cleanup responsibilities for self-hosted compute.",{},{"id":837,"data":1428,"type":816,"tunes":1433},{"link":839,"meta":1429},{"image":1430,"title":1431,"description":1432},{"url":312},"OpenAI — Agent runtime options","Current comparison of Agents API, Codex SDK and Responses API by managed versus application-operated responsibilities.",{},{"id":846,"data":1435,"type":816,"tunes":1440},{"link":848,"meta":1436},{"image":1437,"title":1438,"description":1439},{"url":312},"OpenAI — Codex as a platform","Open-source Codex harness and integration layers for applications that want deeper runtime control.",{},{"id":855,"data":1442,"type":816,"tunes":1447},{"link":857,"meta":1443},{"image":1444,"title":1445,"description":1446},{"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":864,"data":1449,"type":816,"tunes":1454},{"link":866,"meta":1450},{"image":1451,"title":1452,"description":1453},{"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":1458,"excerpt":873},{"time":212,"blocks":1459,"version":872},[1460,1463,1466,1469,1472,1475,1478,1481,1484,1487,1490,1498,1501,1515,1518,1521,1524,1527,1532,1535,1538,1541,1551,1554,1557,1560,1563,1566,1571,1574,1577,1580,1593,1596,1599,1610,1613,1616,1619,1633,1636,1639,1642,1645,1648,1651,1654,1657,1672,1675,1678,1681,1684,1687,1690,1693,1696,1699,1702,1705,1708,1711,1714,1723,1726,1736,1739,1744,1749,1754,1759,1764,1769],{"id":215,"data":1461,"type":220,"tunes":1462},{"title":217,"maxLevel":218,"minLevel":219},{},{"id":223,"data":1464,"type":226,"tunes":1465},{"text":225},{},{"id":229,"data":1467,"type":234,"tunes":1468},{"body":231,"title":232,"variant":233},{},{"id":237,"data":1470,"type":234,"tunes":1471},{"body":239,"title":240,"variant":241},{},{"id":244,"data":1473,"type":234,"tunes":1474},{"body":246,"title":247,"variant":244},{},{"id":250,"data":1476,"type":42,"tunes":1477},{"text":252,"level":219},{},{"id":255,"data":1479,"type":226,"tunes":1480},{"text":257},{},{"id":260,"data":1482,"type":226,"tunes":1483},{"text":262},{},{"id":265,"data":1485,"type":226,"tunes":1486},{"text":267},{},{"id":270,"data":1488,"type":42,"tunes":1489},{"text":272,"level":219},{},{"id":275,"data":1491,"type":297,"tunes":1497},{"content":1492,"stretched":43,"withHeadings":14},[1493,1494,1495,1496],[279,280,281,282],[284,285,286,287],[289,285,290,291],[293,294,295,296],{},{"id":300,"data":1499,"type":42,"tunes":1500},{"text":302,"level":219},{},{"id":305,"data":1502,"type":332,"tunes":1514},{"rows":1503,"title":321,"layout":297,"columns":1510},[1504,1506,1508],{"id":309,"label":310,"values":1505},[312,312,312],{"id":314,"label":315,"values":1507},[312,312,312],{"id":318,"label":319,"values":1509},[312,312,312],[1511,1512,1513],{"id":324,"label":325},{"id":327,"label":328},{"id":330,"label":331},{},{"id":335,"data":1516,"type":234,"tunes":1517},{"body":337,"title":338,"variant":339},{},{"id":342,"data":1519,"type":42,"tunes":1520},{"text":344,"level":219},{},{"id":347,"data":1522,"type":226,"tunes":1523},{"text":349},{},{"id":352,"data":1525,"type":226,"tunes":1526},{"text":354},{},{"id":357,"data":1528,"type":368,"tunes":1531},{"meta":1529,"items":1530,"style":367},{},[361,362,363,364,365,366],{},{"id":371,"data":1533,"type":42,"tunes":1534},{"text":373,"level":219},{},{"id":376,"data":1536,"type":226,"tunes":1537},{"text":378},{},{"id":381,"data":1539,"type":226,"tunes":1540},{"text":383},{},{"id":386,"data":1542,"type":297,"tunes":1550},{"content":1543,"stretched":43,"withHeadings":14},[1544,1545,1546,1547,1548,1549],[390,391],[393,394],[396,397],[399,400],[402,403],[405,406],{},{"id":409,"data":1552,"type":42,"tunes":1553},{"text":411,"level":219},{},{"id":414,"data":1555,"type":226,"tunes":1556},{"text":416},{},{"id":419,"data":1558,"type":226,"tunes":1559},{"text":421},{},{"id":424,"data":1561,"type":226,"tunes":1562},{"text":426},{},{"id":429,"data":1564,"type":42,"tunes":1565},{"text":431,"level":218},{},{"id":434,"data":1567,"type":368,"tunes":1570},{"meta":1568,"items":1569,"style":367},{},[438,439,440,441,442,443],{},{"id":446,"data":1572,"type":42,"tunes":1573},{"text":448,"level":219},{},{"id":451,"data":1575,"type":226,"tunes":1576},{"text":453},{},{"id":456,"data":1578,"type":226,"tunes":1579},{"text":458},{},{"id":461,"data":1581,"type":297,"tunes":1592},{"content":1582,"stretched":43,"withHeadings":14},[1583,1584,1585,1586,1587,1588,1589,1590,1591],[465,466,467],[469,470,471],[473,470,474],[476,470,477],[479,480,481],[483,480,484],[486,480,487],[489,480,490],[492,493,494],{},{"id":497,"data":1594,"type":42,"tunes":1595},{"text":499,"level":219},{},{"id":502,"data":1597,"type":226,"tunes":1598},{"text":504},{},{"id":507,"data":1600,"type":532,"tunes":1609},{"steps":1601,"title":499,"orientation":531},[1602,1603,1604,1605,1606,1607,1608],{"label":511,"description":512},{"label":514,"description":515},{"label":517,"description":518},{"label":520,"description":521},{"label":523,"description":524},{"label":526,"description":527},{"label":529,"description":530},{},{"id":535,"data":1611,"type":42,"tunes":1612},{"text":537,"level":219},{},{"id":540,"data":1614,"type":226,"tunes":1615},{"text":542},{},{"id":545,"data":1617,"type":226,"tunes":1618},{"text":547},{},{"id":550,"data":1620,"type":297,"tunes":1632},{"content":1621,"stretched":43,"withHeadings":14},[1622,1623,1624,1625,1626,1627,1628,1629,1630,1631],[554,555],[557,558],[560,561],[563,564],[566,567],[569,570],[572,573],[575,576],[578,579],[581,582],{},{"id":585,"data":1634,"type":42,"tunes":1635},{"text":587,"level":219},{},{"id":590,"data":1637,"type":226,"tunes":1638},{"text":592},{},{"id":595,"data":1640,"type":226,"tunes":1641},{"text":597},{},{"id":600,"data":1643,"type":234,"tunes":1644},{"body":602,"title":603,"variant":241},{},{"id":606,"data":1646,"type":42,"tunes":1647},{"text":608,"level":219},{},{"id":611,"data":1649,"type":226,"tunes":1650},{"text":613},{},{"id":616,"data":1652,"type":226,"tunes":1653},{"text":618},{},{"id":621,"data":1655,"type":42,"tunes":1656},{"text":623,"level":219},{},{"id":626,"data":1658,"type":297,"tunes":1671},{"content":1659,"stretched":43,"withHeadings":14},[1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670],[630,284,289,631],[633,634,635,636],[638,639,634,634],[641,642,634,634],[644,645,645,646],[648,649,650,651],[653,649,650,654],[656,657,657,658],[660,645,634,634],[662,651,651,663],[665,666,667,668],{},{"id":671,"data":1673,"type":42,"tunes":1674},{"text":673,"level":219},{},{"id":676,"data":1676,"type":226,"tunes":1677},{"text":678},{},{"id":681,"data":1679,"type":226,"tunes":1680},{"text":683},{},{"id":686,"data":1682,"type":692,"tunes":1683},{"url":688,"title":689,"excerpt":690,"ctaLabel":691},{},{"id":695,"data":1685,"type":42,"tunes":1686},{"text":697,"level":219},{},{"id":700,"data":1688,"type":226,"tunes":1689},{"text":702},{},{"id":705,"data":1691,"type":226,"tunes":1692},{"text":707},{},{"id":710,"data":1694,"type":42,"tunes":1695},{"text":712,"level":219},{},{"id":715,"data":1697,"type":226,"tunes":1698},{"text":717},{},{"id":720,"data":1700,"type":226,"tunes":1701},{"text":722},{},{"id":725,"data":1703,"type":42,"tunes":1704},{"text":727,"level":219},{},{"id":730,"data":1706,"type":226,"tunes":1707},{"text":732},{},{"id":735,"data":1709,"type":226,"tunes":1710},{"text":737},{},{"id":740,"data":1712,"type":42,"tunes":1713},{"text":742,"level":219},{},{"id":745,"data":1715,"type":745,"tunes":1722},{"items":1716,"title":768},[1717,1718,1719,1720,1721],{"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":1724,"type":42,"tunes":1725},{"text":773,"level":219},{},{"id":776,"data":1727,"type":776,"tunes":1735},{"title":778,"entries":1728},[1729,1730,1731,1732,1733,1734],{"term":310,"anchor":781,"definition":782},{"term":315,"anchor":784,"definition":785},{"term":787,"anchor":788,"definition":789},{"term":791,"anchor":792,"definition":793},{"term":795,"anchor":796,"definition":797},{"term":799,"anchor":800,"definition":801},{},{"id":804,"data":1737,"type":42,"tunes":1738},{"text":806,"level":219},{},{"id":809,"data":1740,"type":816,"tunes":1743},{"link":811,"meta":1741},{"image":1742,"title":814,"description":815},{"url":312},{},{"id":819,"data":1745,"type":816,"tunes":1748},{"link":821,"meta":1746},{"image":1747,"title":824,"description":825},{"url":312},{},{"id":828,"data":1750,"type":816,"tunes":1753},{"link":830,"meta":1751},{"image":1752,"title":833,"description":834},{"url":312},{},{"id":837,"data":1755,"type":816,"tunes":1758},{"link":839,"meta":1756},{"image":1757,"title":842,"description":843},{"url":312},{},{"id":846,"data":1760,"type":816,"tunes":1763},{"link":848,"meta":1761},{"image":1762,"title":851,"description":852},{"url":312},{},{"id":855,"data":1765,"type":816,"tunes":1768},{"link":857,"meta":1766},{"image":1767,"title":860,"description":861},{"url":312},{},{"id":864,"data":1770,"type":816,"tunes":1773},{"link":866,"meta":1771},{"image":1772,"title":869,"description":870},{"url":312},{},"Post erfolgreich abgerufen",{"items":1776,"source":1818,"manualIds":1819,"manualMatchedIds":1820},[1777,1784,1790,1797,1804,1811],{"id":1778,"slug":1779,"title":1780,"excerpt":1781,"featuredImage":1782,"publishedAt":1783},"459","ollama-is-not-the-product-building-production-ready-open-llm-applications","Ollama — это не продукт: создание готовых к продакшену приложений на базе открытых LLM","Запустить локальную модель с Ollama просто. Создать готовое к продакшену Open-LLM-приложение сложнее: для этого требуются RAG, контроль доступа, абстракция провайдеров, оценка, логирование, дисциплина развертывания и контролируемый уровень приложения вокруг модели.","\u002Fuploads\u002F2026\u002F06\u002Follama-is-not-the-product-building-production-ready-open-llm-applications-1782679361640-h0usqf.webp","2026-06-28T16:39:00.000Z",{"id":1785,"slug":893,"title":1786,"excerpt":1787,"featuredImage":1788,"publishedAt":1789},"434","Исчерпывающее руководство по Evaluation Harness: освоение оценки производительности LLM","Это руководство содержит подробный обзор Evaluation Harness — важного фреймворка для строгой оценки возможностей больших языковых моделей (LLM) в корпоративных конвейерах LLMOps. Узнайте о настройке, лучших практиках и продвинутых методах для обеспечения надежного бенчмаркинга и оптимизации моделей.","\u002Fuploads\u002F2026\u002F04\u002Fevaluation-harness-1775466944495-4s0xv2.webp","2026-03-01T17:50:00.000Z",{"id":1791,"slug":1792,"title":1793,"excerpt":1794,"featuredImage":1795,"publishedAt":1796},"364","tipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung","Освоение рабочего процесса SEO: Основные стратегии оптимизации для органического роста","Структурированный рабочий процесс SEO крайне важен для устойчивого органического роста. Изучите десять основополагающих стратегий, от исследования ключевых слов и технической оптимизации до качества контента и анализа производительности.","\u002Fuploads\u002F2026\u002F03\u002Ftipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung-1774866098131-hwkzrg.webp","2024-01-26T06:35:00.000Z",{"id":1798,"slug":1799,"title":1800,"excerpt":1801,"featuredImage":1802,"publishedAt":1803},"455","zbt-z8102ax-dual-sim-failover-test","Резервное переключение Dual-SIM на ZBT Z8102AX: что работает, чего не хватает и что требует лучшей прошивки","ZBT Z8102AX — это 5G-роутер OpenWrt с поддержкой двух SIM-карт, но одно лишь аппаратное обеспечение с поддержкой двух SIM-карт — это не то же самое, что интеллектуальное резервирование. Роутер распознает SIM-карту и успешно подключается, но автоматическое переключение, восстановление модема, решения на основе сигнала и четкая логика резервирования все еще требуют более глубокого тестирования.","\u002Fuploads\u002F2026\u002F06\u002Fopenwrt-router-review-dual-sim-03-1781620592829-7t77j7.webp","2026-06-16T10:40:00.000Z",{"id":1805,"slug":1806,"title":1807,"excerpt":1808,"featuredImage":1809,"publishedAt":1810},"362","suchmaschinen-webcrawler-suchsoftware-und-suchergebnissen","Поисковая оптимизация: надежный рабочий процесс для топовых позиций","Подробный анализ поисковой оптимизации (SEO), её технических основ, роли поисковых роботов и стратегических шагов для достижения высоких позиций в органической выдаче.","\u002Fuploads\u002F2026\u002F03\u002Fsuchmaschinen-webcrawler-suchsoftware-und-suchergebnissen-1774865001795-5wv0cw.webp","2023-04-12T13:03:00.000Z",{"id":1812,"slug":1813,"title":1814,"excerpt":1815,"featuredImage":1816,"publishedAt":1817},"469","rag-failed-but-which-layer-actually-failed-a-diagnostic-method","RAG не сработал — но какой именно слой на самом деле отказал? Метод диагностики","Когда ответ RAG неверен, обвинять поиск или модель — слишком расплывчато. Этот диагностический метод изолирует покрытие источников, построение запроса, поиск, ранжирование, сборку контекста, генерацию, атрибуцию доказательств и актуальность — так что фактический сбой можно воспроизвести и исправить.","\u002Fuploads\u002F2026\u002F09\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method-1790350847177-pior4c.webp","2026-09-24T19:39:00.000Z","fallback",[],[]]