[{"data":1,"prerenderedAt":268},["ShallowReactive",2],{"\u002Fblog\u002Fagent-harness-selection\u002F:ru":3,"\u002Fblog\u002Fagent-harness-selection\u002F-surround:ru":164,"blog-all-posts:ru":165},{"id":4,"title":5,"author":6,"body":10,"date":147,"description":148,"extension":149,"image":150,"locale":151,"meta":152,"minRead":153,"navigation":154,"original":155,"path":156,"pinned":155,"seo":157,"source":158,"sourceUrl":23,"stem":159,"tags":160,"updated":150,"__hash__":163},"blog\u002Fblog\u002Fagent-harness-selection.ru.md","Помучившись с Pi Agent, OMP, Codex и ZCode: почему я в итоге выбрал OpenCode + OpenChamber",{"name":7,"avatar":8},"Chen Dahuang",{"src":9,"alt":7},"\u002Favatar.jpg",{"type":11,"value":12,"toc":135},"minimark",[13,28,31,36,41,44,47,59,63,66,69,72,76,79,83,89,95,108,115,119,122,125,128],[14,15,16],"blockquote",{},[17,18,19,20,27],"p",{},"Оригинал опубликован в ",[21,22,26],"a",{"href":23,"rel":24},"https:\u002F\u002Fx.com\u002Frealchendahuang\u002Fstatus\u002F2085410520459604026",[25],"nofollow","X",".",[17,29,30],{},"В последнее время я возился с разными Agent Harness — Pi Agent, OMP, ZCode, Codex, OpenCode — и наконец понял, что мне на самом деле нужно.",[32,33,35],"h2",{"id":34},"мои-три-критерия","Мои три критерия",[37,38,40],"h3",{"id":39},"первый-зрелый-стабильный-gui","Первый: зрелый, стабильный GUI",[17,42,43],{},"Я привык к графическим интерфейсам и терпеть не могу TUI. Переписываться в чёрном терминальном окошке — это боль: приходится заучивать кучу шорткатов и команд, лишь бы сделать его пригодным для жизни. А GUI достаточно интуитивно тыкать мышкой в иконки и кнопки.",[17,45,46],{},"Поэтому мне нужен зрелый, стабильный и симпатичный GUI.",[17,48,49,50,54,55,58],{},"Уже одного этого критерия хватило, чтобы отсеять ",[51,52,53],"strong",{},"Pi Agent"," и ",[51,56,57],{},"OMP",". Дело не в том, что их ядра плохие, — просто комьюнити-оболочки вокруг них ужасные. Писать свою с нуля — слишком много труда, а инструменты настолько кастомизируемые, что самодельная оболочка непереносима: сменишь машину или человека — и всё начинается заново с нуля.",[37,60,62],{"id":61},"второй-без-привязки-к-вендору-и-без-его-фаворитизма","Второй: без привязки к вендору и без его фаворитизма",[17,64,65],{},"Codex вроде бы даёт настраивать сторонние модели, но конфигурировать их — сплошное мучение, и сторонние модели всегда «граждане второго сорта»: их давят официальные модели и тянет вниз ритм обновлений. Меня это откровенно бесит.",[17,67,68],{},"ZCode ещё абсурднее: через OAuth невозможно войти в Coding Plan сторонних вендоров (например, Kimi For Code и Grok Build в ZCode вообще не задействуешь, разве что костылями).",[17,70,71],{},"Так что я вычеркнул ZCode и Codex — софт с фаворитизмом вендоров моделей.",[37,73,75],{"id":74},"третий-открытый-исходный-код-и-свобода-доработки","Третий: открытый исходный код и свобода доработки",[17,77,78],{},"Мне нужно дорабатывать и кастомизировать инструмент под свои задачи, чтобы проще давать клиентам готовый опыт «из коробки». Значит, продукт должен быть open-source и дружелюбным к лицензированию — чтобы и мне было удобно им пользоваться, и моим клиентам было просто это делать, без всякой чёрной магии.",[32,80,82],{"id":81},"финальный-ответ-opencode-openchamber","Финальный ответ: OpenCode + OpenChamber",[17,84,85,86,27],{},"После того как я вычеркнул всё остальное, реальный выбор остался один — ",[51,87,88],{},"OpenCode",[17,90,91,92,27],{},"Но OpenCode — это лишь ядро агента. Чтобы соединить его со зрелым, стабильным и удобным GUI, я наконец нашёл настоящее решение: ",[51,93,94],{},"OpenChamber",[96,97,98,102,105],"ul",{},[99,100,101],"li",{},"Ядро: OpenCode — open source, без привязки к вендору, поддерживает модели всех провайдеров",[99,103,104],{},"Интерфейс: OpenChamber — зрелая GUI-среда",[99,106,107],{},"Связка: стабильное ядро + удобный интерфейс, плюс возможность дорабатывать под себя",[17,109,110,111],{},"Открытый код: ",[21,112,113],{"href":113,"rel":114},"https:\u002F\u002Fgithub.com\u002Fopenchamber\u002Fopenchamber",[25],[32,116,118],{"id":117},"несколько-мыслей-на-закуску","Несколько мыслей на закуску",[17,120,121],{},"Выбор инструмента — это, по сути, выбор того, «кто имеет над тобой право голоса».",[17,123,124],{},"Каким бы хорошим ни был закрытый инструмент, направление его обновлений, поддержка моделей и ценовая политика решаются другими — тебе остаётся лишь пассивно принимать. А в связке «open source + без привязки» у тебя всегда есть выход и всегда есть свобода что-то изменить.",[17,126,127],{},"Что касается спора TUI против GUI — не насилуйте себя. Инструменты нужны, чтобы делать работу, а не чтобы доказывать, что ты знаешь командную строку. Удобный интерфейс, с которым ты готов оставаться надолго, важнее всего остального.",[17,129,130,131],{},"По теме: ",[21,132,134],{"href":133},"\u002Fblog\u002Fdeepseek-v4-flash-review","DeepSeek V4 Flash — подробный разбор стабильного релиза",{"title":136,"searchDepth":137,"depth":137,"links":138},"",2,[139,145,146],{"id":34,"depth":137,"text":35,"children":140},[141,143,144],{"id":39,"depth":142,"text":40},3,{"id":61,"depth":142,"text":62},{"id":74,"depth":142,"text":75},{"id":81,"depth":137,"text":82},{"id":117,"depth":137,"text":118},"2026-08-06","Ретроспектива выбора Agent Harness: три критерия — GUI-опыт, привязка к вендору и свобода доработки — отсеяли Pi Agent, OMP, Codex и ZCode, и в итоге я остановился на ядре OpenCode + интерфейсе OpenChamber.","md",null,"ru",{},6,true,false,"\u002Fblog\u002Fagent-harness-selection",{"title":5,"description":148},"x","blog\u002Fagent-harness-selection.ru",[161,162],"AI Agent","Выбор инструментов","1gRlRVe3nKQslHKbQfff8hrnOxZrsRZVtXP7Gd5CHVM",[150,150],[166,168,177,186,192,200,207,214,222,228,235,244,251,259],{"path":156,"title":5,"description":148,"date":147,"minRead":153,"tags":167},[161,162],{"path":169,"title":170,"description":171,"date":172,"minRead":153,"tags":173},"\u002Fblog\u002Fcloudflare-broke-stack","Лучшие практики инди-разработки 2026: „нищебродский“ стек Cloudflare „всё в одном“","Технологический стек инди-разработчика с нулевой стоимостью: код пишет Codex, версиями управляет GitHub, платежи принимает Stripe, фронтенд на TanStack Start, бэкенд на Hono + Workers, база данных D1, хранилище R2, кэш KV — и всё это крутится на Cloudflare.","2026-06-15",[174,175,176],"Cloudflare","Инди-разработка","Технологический стек",{"path":178,"title":179,"description":180,"date":181,"minRead":153,"tags":182},"\u002Fblog\u002Fdeepseek-api-web-search","В API DeepSeek встроен веб-поиск — официальный поиск на халяву через Responses API","DeepSeek встроил веб-поиск прямо в API: вызываешь deepseek-v4-flash через интерфейс Responses и объявляешь инструмент web_search. Никакой интеграции со сторонним поисковиком, никакого ключа поискового API не нужно.","2026-08-05",[183,184,185],"DeepSeek","API","AI-инструменты",{"path":133,"title":187,"description":188,"date":181,"minRead":189,"tags":190},"DeepSeek V4 Flash — стабильный релиз, проверка на практике: дёшево, быстро, контекст 1M, встроенный поиск","Несколько дней погружался в стабильный релиз DeepSeek V4 Flash: невероятно дёшево, молниеносно быстро, контекст 1M, официальный встроенный веб-поиск, полностью открытый код. Единственная слабость — мультимодальность, но её можно закрыть связкой с другими моделями.",7,[183,191,185],"Обзор модели",{"path":193,"title":194,"description":195,"date":172,"minRead":196,"tags":197},"\u002Fblog\u002Ffree-cloudflare","Как бесплатным пользователям выжать Cloudflare досуха — на что реально хватает бесплатного тарифа?","Бесплатного тарифа Cloudflare хватает почти на всю личную интернет-инфраструктуру: DNS, CDN, Pages, Workers, KV, D1, R2, почта, Tunnel, AI Gateway и не только.",8,[174,198,199],"Бесплатный тариф","Деплой",{"path":201,"title":202,"description":203,"date":204,"minRead":196,"tags":205},"\u002Fblog\u002Fmodel-harness-decoupling","Собственный Harness производителя — не всегда лучший выбор: в эпоху открытых моделей модель и Harness выбирают раздельно","Пишешь на Claude — берёшь Claude Code? В эпоху открытых моделей этот инстинкт пора обновить. Преимущество первого производителя реально, но обучить хорошую модель и построить хороший Harness — две разные инженерные задачи. Эта статья объясняет, почему модель и Harness теперь можно выбирать по отдельности, и даёт карту позиционирования пяти Harness.","2026-09-09",[161,206,162],"Harness",{"path":208,"title":209,"description":210,"date":204,"minRead":196,"tags":211},"\u002Fblog\u002Fopencode-productive-stack","Стабильно, быстро, продуктивно, дёшево: полный отчёт по моему AI Coding-стеку","OpenCode + OpenChamber + две подписки DeepSeek V4 Flash: 15 проектов одновременно пишут код, а квота почти не двигается. Полная выкладка конфигурации — обрезка Context, многоуровневая память, автоматизация рабочего стола и урок «держись родной связки».",[88,212,213],"ИИ-программирование","Настройка",{"path":215,"title":216,"description":217,"date":218,"minRead":219,"tags":220},"\u002Fblog\u002Fproduct-faxin-principle","Принцип изначального намерения: почему инди-разработчику нужно учиться отпускать","Зачем ты начинаешь? Для кого ты начинаешь? Какую проблему на самом деле хочешь решить? Острота продукта — в том, что ты осмеливаешься отрезать.","2026-06-20",10,[221,175],"Продуктовое мышление",{"path":223,"title":224,"description":225,"date":218,"minRead":196,"tags":226},"\u002Fblog\u002Fproduct-pain-vs-itch","Не обольщайся, когда пользователи говорят «круто»: болевые точки против зуда","Словесное одобрение ничего не стоит. Единственный жёсткий критерий спроса — за что пользователь готов платить.",[221,227],"Оценка спроса",{"path":229,"title":230,"description":231,"date":147,"minRead":232,"tags":233},"\u002Fblog\u002Fqwen-vision-for-deepseek","Даём DeepSeek мультимодальность: подход Qwen-3.7-Flash vision","У DeepSeek V4 Flash нет мультимодальности — что делать с пониманием изображений? После обзора рынка самый выгодный по цене вариант сейчас — Qwen-3.7-Flash: распознавание одной картинки стоит почти ничего, и в паре с V4 Flash дыра закрывается.",5,[183,234,191],"Мультимодальность",{"path":236,"title":237,"description":238,"date":239,"minRead":240,"tags":241},"\u002Fblog\u002Fsub-store-cloudflare","Я перенёс агрегацию прокси-подписок на Cloudflare","Объединяет несколько прокси-сервисов и собственные ноды в одну подписку, а правила маршрутизации настраиваются на стороне сервера — клиенту остаётся только подписаться.","2026-06-28",4,[174,242,243],"Обход блокировок","Open-source проект",{"path":245,"title":246,"description":247,"date":204,"minRead":189,"tags":248},"\u002Fblog\u002Ftui-cognitive-bandwidth","TUI убивает вашу когнитивную пропускную способность: «гик-фильтру» в AI Coding пора разбиться","Куча AI Coding Agent наперебой выпускают TUI, заталкивают взаимодействие обратно в терминальную парадигму 80-х и называют это «иммерсивностью» и «уважением к программистам». Эта статья разбирает три механизма, которыми TUI системно снижает когнитивную пропускную способность, — и объясняет, почему Web UI — правильный ответ.",[212,249,250],"Дизайн взаимодействия","Эссе",{"path":252,"title":253,"description":254,"date":255,"minRead":153,"tags":256},"\u002Fblog\u002Fvalue-not-external","Спорить о том, есть ли у чего-то ценность, — само по себе бесполезно","Нашу ценность не определяет никто. В эпоху ИИ как человеку понимать себя?","2026-06-18",[257,258],"Размышления об ИИ","Гуманистическое эссе",{"path":260,"title":261,"description":262,"date":263,"minRead":264,"tags":265},"\u002Fblog\u002Fx-growth-1000-followers","Набрал 1000+ подписчиков чуть больше чем за день — вот что я делал","В июне я всерьёз занялся своим аккаунтом в X и за чуть более чем день набрал 1000+ подписчиков. Этот пост фиксирует, что я делал и какие получал отклики.","2026-06-16",12,[266,267],"Ведение X","Рост контента",1789752316422]