<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ai on Михаил Ледин</title>
    <link>https://blog.ledin.pro/ru/tags/ai/</link>
    <description>Recent content in Ai on Михаил Ледин</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ru-RU</language>
    <managingEditor>m@ledin.pro (Михаил Ледин)</managingEditor>
    <webMaster>m@ledin.pro (Михаил Ледин)</webMaster>
    <lastBuildDate>Mon, 30 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.ledin.pro/ru/tags/ai/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Agents Week в ШАДе: что там интересного</title>
      <link>https://blog.ledin.pro/ru/posts/agents-week-at-shad/</link>
      <pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate>
      <author>m@ledin.pro (Михаил Ледин)</author>
      <guid>https://blog.ledin.pro/ru/posts/agents-week-at-shad/</guid>
      <description>&lt;p&gt;В ШАДе до 9 апреля открыта регистрация на Agents Week — интенсив про современные AI-агенты, их устройство, оценку качества и продакшн-инженерию.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-обещают-в-программе&#34;&gt;Что обещают в программе&lt;/h2&gt;
&lt;p&gt;Судя по описанию, курс покрывает не только общие разговоры про &amp;ldquo;агентов&amp;rdquo;, а довольно практический набор тем:&lt;/p&gt;</description>
      <content>&lt;p&gt;В ШАДе до 9 апреля открыта регистрация на Agents Week — интенсив про современные AI-агенты, их устройство, оценку качества и продакшн-инженерию.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-обещают-в-программе&#34;&gt;Что обещают в программе&lt;/h2&gt;
&lt;p&gt;Судя по описанию, курс покрывает не только общие разговоры про &amp;ldquo;агентов&amp;rdquo;, а довольно практический набор тем:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;устройство современных агентных систем: LLM, промпты, thought-action-observation, память, инструменты;&lt;/li&gt;
&lt;li&gt;проектирование поведения агента: reasoning, оркестрация multi-agent-систем, guardrails;&lt;/li&gt;
&lt;li&gt;оценка качества, корректности и устойчивости агентных решений;&lt;/li&gt;
&lt;li&gt;продакшн-подходы: мониторинг, масштабирование и эксплуатация под реальной нагрузкой.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ссылка на регистрацию: &lt;a href=&#34;https://shad.yandex.ru/agentsweek&#34;&gt;&lt;code&gt;shad.yandex.ru/agentsweek&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-полезно-знать-заранее&#34;&gt;Что полезно знать заранее&lt;/h2&gt;
&lt;p&gt;Смотреть лекции можно и без отбора. Но если хочется получить доступ к итоговой работе и сертификат, отбор проходить все-таки нужно.&lt;/p&gt;
&lt;p&gt;Это хороший компромисс: можно сначала понять, насколько тебе вообще релевантна программа, и только потом решать, идти ли глубже.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-еще-там-есть&#34;&gt;Что еще там есть&lt;/h2&gt;
&lt;p&gt;Кроме самого Agents Week, доступны и материалы прошлых интенсивов:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://shad.yandex.ru/gptweek&#34;&gt;&lt;code&gt;GPT Week&lt;/code&gt;&lt;/a&gt; — про работу с большими языковыми моделями;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://shad.yandex.ru/cvweek&#34;&gt;&lt;code&gt;CV Week&lt;/code&gt;&lt;/a&gt; — про генеративные диффузионные модели и визуальные системы;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://shad.yandex.ru/llmscalingweek&#34;&gt;&lt;code&gt;LLM Scaling Week&lt;/code&gt;&lt;/a&gt; — про инженерные и математические основы работы с большими моделями, включая обучение на крупных GPU-кластерах и методы ускорения.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Если тема агентных систем тебе интересна не на уровне хайпа, а как инженерная дисциплина, выглядит это довольно стояще.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Еще бесплатные курсы по AI-агентам</title>
      <link>https://blog.ledin.pro/ru/posts/free-ai-agent-courses/</link>
      <pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate>
      <author>m@ledin.pro (Михаил Ледин)</author>
      <guid>https://blog.ledin.pro/ru/posts/free-ai-agent-courses/</guid>
      <description>&lt;p&gt;Если хочешь не просто смотреть на хайп вокруг агентов, а системно разобраться в теме, сейчас есть сразу несколько бесплатных вариантов, на которые стоит обратить внимание.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-mit--oxford&#34;&gt;1. MIT + Oxford&lt;/h2&gt;
&lt;p&gt;Курс по разработке AI-агентов, который раньше стоил $2500, сейчас доступен бесплатно:&lt;/p&gt;</description>
      <content>&lt;p&gt;Если хочешь не просто смотреть на хайп вокруг агентов, а системно разобраться в теме, сейчас есть сразу несколько бесплатных вариантов, на которые стоит обратить внимание.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-mit--oxford&#34;&gt;1. MIT + Oxford&lt;/h2&gt;
&lt;p&gt;Курс по разработке AI-агентов, который раньше стоил $2500, сейчас доступен бесплатно:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/ed-donner/agents&#34;&gt;&lt;code&gt;github.com/ed-donner/agents&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Что внутри:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenAI SDK, CrewAI, LangGraph, AutoGen, MCP;&lt;/li&gt;
&lt;li&gt;проектирование агентных систем и оркестрация;&lt;/li&gt;
&lt;li&gt;путь от кода до production-развертывания.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;2-google-gear&#34;&gt;2. Google GEAR&lt;/h2&gt;
&lt;p&gt;Программа для разработчиков AI-агентов от Google:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://developers.google.com/program/gear&#34;&gt;&lt;code&gt;developers.google.com/program/gear&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Что обещают:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;35 учебных кредитов в месяц;&lt;/li&gt;
&lt;li&gt;прямые консультации с AI-экспертами Google;&lt;/li&gt;
&lt;li&gt;четыре этапа обучения — от базы до enterprise-масштаба;&lt;/li&gt;
&lt;li&gt;Agent Development Kit (&lt;code&gt;ADK&lt;/code&gt;) и &lt;code&gt;Gemini CLI&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;3-anthropic-academy&#34;&gt;3. Anthropic Academy&lt;/h2&gt;
&lt;p&gt;Большая подборка бесплатных курсов по Claude:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.anthropic.com/learn&#34;&gt;&lt;code&gt;anthropic.com/learn&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;По описанию там уже вполне серьезный объем:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;287 лекций;&lt;/li&gt;
&lt;li&gt;26 часов видео;&lt;/li&gt;
&lt;li&gt;33 квиза;&lt;/li&gt;
&lt;li&gt;практика с Claude, API, MCP и интеграциями;&lt;/li&gt;
&lt;li&gt;интеграции с Amazon Bedrock и Google Vertex AI;&lt;/li&gt;
&lt;li&gt;сертификаты по завершении.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Судя по формулировкам, траектория идет от новичка до enterprise-уровня.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-из-этого-выглядит-полезнее-всего&#34;&gt;Что из этого выглядит полезнее всего&lt;/h2&gt;
&lt;p&gt;Если нужен прикладной обзор инструментов и агентных фреймворков, я бы смотрел в сторону MIT + Oxford. Если интересует экосистема Google и хочется образовательных кредитов — в GEAR. А если цель глубже разобраться именно в практической работе с Claude, то Anthropic Academy выглядит самым объемным вариантом.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Найм в 2026 году</title>
      <link>https://blog.ledin.pro/ru/posts/hiring-in-2026/</link>
      <pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate>
      <author>m@ledin.pro (Михаил Ледин)</author>
      <guid>https://blog.ledin.pro/ru/posts/hiring-in-2026/</guid>
      <description>&lt;p&gt;Есть ощущение, что рынок найма резко качнулся в сторону работодателя, но это не означает, что жизнь рекрутеров стала проще. Скорее наоборот: вместе с новой властью над воронкой пришел новый тип шума.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-изменилось-на-рынке&#34;&gt;Что изменилось на рынке&lt;/h2&gt;
&lt;p&gt;Когда был рынок кандидата, рекрутеры массово писали специалистам, а те спокойно игнорировали большую часть сообщений. Сейчас ситуация другая: из-за внедрения AI, сокращений и общего давления на бизнес работодатели снова чувствуют себя сильнее.&lt;/p&gt;</description>
      <content>&lt;p&gt;Есть ощущение, что рынок найма резко качнулся в сторону работодателя, но это не означает, что жизнь рекрутеров стала проще. Скорее наоборот: вместе с новой властью над воронкой пришел новый тип шума.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-изменилось-на-рынке&#34;&gt;Что изменилось на рынке&lt;/h2&gt;
&lt;p&gt;Когда был рынок кандидата, рекрутеры массово писали специалистам, а те спокойно игнорировали большую часть сообщений. Сейчас ситуация другая: из-за внедрения AI, сокращений и общего давления на бизнес работодатели снова чувствуют себя сильнее.&lt;/p&gt;
&lt;p&gt;На бумаге это должно было облегчить найм. Кажется, вот оно — кандидаты начнут охотнее отвечать, а то и сами придут в личку.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;где-начинается-новая-проблема&#34;&gt;Где начинается новая проблема&lt;/h2&gt;
&lt;p&gt;Пишут действительно чаще. Только очень часто это уже не сами кандидаты, а их AI-агенты, настроенные на массовую рассылку откликов.&lt;/p&gt;
&lt;p&gt;В итоге рекрутер получает не живую коммуникацию, а поток идеально прилизанных сопроводительных писем и резюме, где существенная часть опыта может оказаться выдуманной или сильно приукрашенной.&lt;/p&gt;
&lt;p&gt;То есть вместо проблемы &amp;ldquo;кандидаты не отвечают&amp;rdquo; появляется проблема &amp;ldquo;отвечает не человек&amp;rdquo;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;почему-это-опасно&#34;&gt;Почему это опасно&lt;/h2&gt;
&lt;p&gt;Если эта практика станет массовой, то доверие между кандидатом и работодателем начнет разрушаться еще до первого интервью. Рекрутер будет сомневаться, что перед ним вообще реальный интерес и реальный опыт. Кандидат, в свою очередь, будет видеть, что без автоматизации его сообщение тонет в шуме.&lt;/p&gt;
&lt;p&gt;И это уже не просто про AI в найме, а про то, как AI меняет саму ткань первичного контакта на рынке труда.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Мой текущий AI-сетап</title>
      <link>https://blog.ledin.pro/ru/posts/my-current-ai-setup/</link>
      <pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate>
      <author>m@ledin.pro (Михаил Ледин)</author>
      <guid>https://blog.ledin.pro/ru/posts/my-current-ai-setup/</guid>
      <description>&lt;p&gt;К концу прошлой недели у меня более-менее устаканился набор инструментов, которыми я реально пользуюсь в работе. Не в формате &amp;ldquo;вот еще 15 сервисов, которые я когда-то открывал&amp;rdquo;, а именно как практический стек под повседневные задачи.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;базовый-набор&#34;&gt;Базовый набор&lt;/h2&gt;
&lt;p&gt;Сейчас основа у меня такая:&lt;/p&gt;</description>
      <content>&lt;p&gt;К концу прошлой недели у меня более-менее устаканился набор инструментов, которыми я реально пользуюсь в работе. Не в формате &amp;ldquo;вот еще 15 сервисов, которые я когда-то открывал&amp;rdquo;, а именно как практический стек под повседневные задачи.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;базовый-набор&#34;&gt;Базовый набор&lt;/h2&gt;
&lt;p&gt;Сейчас основа у меня такая:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://opencode.ai/&#34;&gt;&lt;code&gt;OpenCode&lt;/code&gt;&lt;/a&gt; как AI coding agent;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GPT-5.4&lt;/code&gt; как основная модель для кодинга;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Claude&lt;/code&gt; для глубоких исследований и задач, где важнее аккуратное копание в материале, чем чистая скорость.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;С &lt;code&gt;GPT-5.4&lt;/code&gt; схема у меня довольно утилитарная: я подключаю несколько аккаунтов к &lt;a href=&#34;https://github.com/nguyenphutrong/quotio&#34;&gt;&lt;code&gt;Quotio&lt;/code&gt;&lt;/a&gt;, а запросы между ними распределяются по round robin. Это делает сетап устойчивее: если один аккаунт отваливается, работа не встает полностью.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-использую-дополнительно&#34;&gt;Что использую дополнительно&lt;/h2&gt;
&lt;p&gt;Поверх базового набора периодически подключаю еще несколько инструментов:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ChatGPT Atlas&lt;/code&gt; как альтернативу связке Claude Desktop + Google Chrome;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/nguyenphutrong/quotio&#34;&gt;&lt;code&gt;Quotio&lt;/code&gt;&lt;/a&gt; как более продвинутую альтернативу VibeProxy; под капотом он, как и VibeProxy, опирается на &lt;a href=&#34;https://github.com/router-for-me/CLIProxyAPI&#34;&gt;&lt;code&gt;CLIProxyAPI&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Google Gemini&lt;/code&gt; для генерации картинок и как дополнительное мнение по задачам.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;В кодинге Gemini пока не впечатлил, а вот как вспомогательный инструмент для отдельных сценариев он бывает полезен.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-здесь-для-меня-важно&#34;&gt;Что здесь для меня важно&lt;/h2&gt;
&lt;p&gt;Я давно перестал искать один &amp;ldquo;лучший&amp;rdquo; инструмент. Гораздо полезнее собрать стек, где у каждого сервиса есть четкая роль: один лучше пишет код, другой лучше исследует, третий удобнее для интеграций, четвертый нужен как запасной канал.&lt;/p&gt;
&lt;p&gt;Именно такой набор в реальной работе оказывается устойчивее, чем попытка все задачи закрыть одной-единственной моделью.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Как мне заблочили два аккаунта ChatGPT и почему пришлось писать свой kill switch</title>
      <link>https://blog.ledin.pro/ru/posts/macos-killswitch-for-chatgpt/</link>
      <pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate>
      <author>m@ledin.pro (Михаил Ледин)</author>
      <guid>https://blog.ledin.pro/ru/posts/macos-killswitch-for-chatgpt/</guid>
      <description>&lt;p&gt;На прошлой неделе мне заблокировали два аккаунта ChatGPT. История получилась неприятная, но полезная: она быстро показала, что полагаться на маркетинговое описание VPN-клиента — плохая идея, если цена ошибки высокая.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;где-именно-подвел-vpn&#34;&gt;Где именно подвел VPN&lt;/h2&gt;
&lt;p&gt;Я слишком надеялся на kill switch в VPN-клиенте. Предполагалось, что он должен блокировать сетевые подключения, если VPN неактивен, чтобы инструменты не уходили на сервера OpenAI с российского IP.&lt;/p&gt;</description>
      <content>&lt;p&gt;На прошлой неделе мне заблокировали два аккаунта ChatGPT. История получилась неприятная, но полезная: она быстро показала, что полагаться на маркетинговое описание VPN-клиента — плохая идея, если цена ошибки высокая.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;где-именно-подвел-vpn&#34;&gt;Где именно подвел VPN&lt;/h2&gt;
&lt;p&gt;Я слишком надеялся на kill switch в VPN-клиенте. Предполагалось, что он должен блокировать сетевые подключения, если VPN неактивен, чтобы инструменты не уходили на сервера OpenAI с российского IP.&lt;/p&gt;
&lt;p&gt;На практике оказалось, что kill switch работает только в soft-режиме. То есть он защищает от утечки трафика только если соединение упало само по себе. Если же VPN отключить руками, весь трафик сразу уходит через обычный интерфейс.&lt;/p&gt;
&lt;p&gt;После этого доверия к такой защите уже не остается, особенно если речь идет о сервисах, для которых география подключения критична.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-произошло-дальше&#34;&gt;Что произошло дальше&lt;/h2&gt;
&lt;p&gt;Судя по всему, Codex в какой-то момент сходил на сервера OpenAI с российского IP. Этого оказалось достаточно, чтобы аккаунты быстро улетели в блок.&lt;/p&gt;
&lt;p&gt;Когда работа завязана на AI-инструменты, такой сбой — это не просто раздражающая мелочь, а реальный операционный риск.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-сделал-после-этого&#34;&gt;Что сделал после этого&lt;/h2&gt;
&lt;p&gt;Чтобы не зависеть от кривой реализации чужого клиента, мы с Codex написали свой kill switch для macOS:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/mxl/macos-killswitch&#34;&gt;&lt;code&gt;github.com/mxl/macos-killswitch&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Идея простая: если нельзя быть уверенным в готовом решении, значит, критичный кусок надо забирать под свой контроль.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Мультиагентный сетап в OpenCode</title>
      <link>https://blog.ledin.pro/ru/posts/multi-agent-opencode-setup/</link>
      <pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate>
      <author>m@ledin.pro (Михаил Ледин)</author>
      <guid>https://blog.ledin.pro/ru/posts/multi-agent-opencode-setup/</guid>
      <description>&lt;p&gt;Сейчас тестирую мультиагентный процесс в OpenCode, где разные агенты берут на себя разные роли по цепочке разработки. Интерес тут не в том, что &amp;ldquo;агентов много&amp;rdquo;, а в том, что их взаимодействие можно выстроить как почти полноценный конвейер.&lt;/p&gt;</description>
      <content>&lt;p&gt;Сейчас тестирую мультиагентный процесс в OpenCode, где разные агенты берут на себя разные роли по цепочке разработки. Интерес тут не в том, что &amp;ldquo;агентов много&amp;rdquo;, а в том, что их взаимодействие можно выстроить как почти полноценный конвейер.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;как-выглядит-цепочка&#34;&gt;Как выглядит цепочка&lt;/h2&gt;
&lt;p&gt;На первом сценарии &lt;code&gt;developer&lt;/code&gt; делает задачу, а затем &lt;code&gt;code-reviewer&lt;/code&gt; и &lt;code&gt;security-auditor&lt;/code&gt; параллельно проводят ревью результата. Всем этим управляет &lt;code&gt;conductor&lt;/code&gt;, который следит за процессом и дергает нужных агентов в нужный момент.&lt;/p&gt;
&lt;p&gt;На втором сценарии в работу включается уже продуктовая часть. Агент &lt;code&gt;product&lt;/code&gt; дописывает user story, после чего &lt;code&gt;QA&lt;/code&gt; и &lt;code&gt;architect&lt;/code&gt; проверяют качество описания. Дальше &lt;code&gt;architect&lt;/code&gt; разбивает историю на задачи с учетом максимального распараллеливания.&lt;/p&gt;
&lt;p&gt;Потом снова вступают &lt;code&gt;developer&lt;/code&gt;-агенты, а после них — ревьюеры и тестовые роли вроде &lt;code&gt;test-coverage&lt;/code&gt; и &lt;code&gt;test-runner&lt;/code&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-здесь-самое-интересное&#34;&gt;Что здесь самое интересное&lt;/h2&gt;
&lt;p&gt;Главный вопрос для меня не в том, может ли один агент что-то написать. Это уже не особенно удивляет. Интереснее другое: можно ли собрать из нескольких специализированных ролей процесс, где качество держится не за счет одного &amp;ldquo;суперагента&amp;rdquo;, а за счет правильной оркестрации.&lt;/p&gt;
&lt;p&gt;Если такая схема работает стабильно, то следующий шаг очевиден: думать не только о промптах для одного агента, а об архитектуре всей агентной системы.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>ИИхак дня: как удалять приложения вместе с хвостами</title>
      <link>https://blog.ledin.pro/ru/posts/aihack-remove-apps-with-ai/</link>
      <pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate>
      <author>m@ledin.pro (Михаил Ледин)</author>
      <guid>https://blog.ledin.pro/ru/posts/aihack-remove-apps-with-ai/</guid>
      <description>&lt;p&gt;Одна из бытовых задач на macOS, которая стабильно бесит, — это удаление приложений вместе со всем мусором, который они оставляют после себя: агентами, демонами, конфигами, CLI-утилитами и прочими следами. Обычно для этого либо нужен ручной аудит системы, либо какая-нибудь платная утилита в духе CleanMyMac.&lt;/p&gt;</description>
      <content>&lt;p&gt;Одна из бытовых задач на macOS, которая стабильно бесит, — это удаление приложений вместе со всем мусором, который они оставляют после себя: агентами, демонами, конфигами, CLI-утилитами и прочими следами. Обычно для этого либо нужен ручной аудит системы, либо какая-нибудь платная утилита в духе CleanMyMac.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-я-попробовал&#34;&gt;Что я попробовал&lt;/h2&gt;
&lt;p&gt;У меня на машине оставался Citrix Workspace с прошлой работы. Вместо того чтобы идти по стандартному пути с гуглением, я просто дал Codex задачу в лоб:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Мне нужно удалить Citrix Workspace с этой машины&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Codex выдал подробный план: что проверить, какие процессы выгрузить, какие файлы и служебные сущности относятся к приложению и что безопасно удалить.&lt;/p&gt;
&lt;p&gt;После подтверждения он сам прошелся по шагам и довел зачистку до конца.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;почему-это-полезно&#34;&gt;Почему это полезно&lt;/h2&gt;
&lt;p&gt;В этом сценарии AI не делает ничего магического. Он просто очень хорошо справляется с рутинной системной задачей, где раньше приходилось либо доверяться непрозрачной утилите, либо тратить время на ручную проверку десятков путей и процессов.&lt;/p&gt;
&lt;p&gt;Для меня это хороший пример практической пользы: не &amp;ldquo;сделай стартап&amp;rdquo;, а реши конкретную мелкую проблему на моей машине быстро и проверяемо.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;где-здесь-главный-выигрыш&#34;&gt;Где здесь главный выигрыш&lt;/h2&gt;
&lt;p&gt;Раньше за такую зачистку отвечали в основном платные приложения, и проверить качество их работы было сложно. С AI-подходом шаги хотя бы видны, а значит, гораздо проще понять, что именно будет удалено и почему.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Telegram MCP в Claude и ChatGPT</title>
      <link>https://blog.ledin.pro/ru/posts/telegram-mcp-in-claude-and-chatgpt/</link>
      <pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate>
      <author>m@ledin.pro (Михаил Ледин)</author>
      <guid>https://blog.ledin.pro/ru/posts/telegram-mcp-in-claude-and-chatgpt/</guid>
      <description>&lt;p&gt;Я хотел подключить Telegram к Claude и ChatGPT так, чтобы можно было массово подгружать сообщения из каналов в контекст и работать с ними прямо из AI-инструмента. Казалось бы, задача простая: взять готовый MCP-сервер, подключить и пользоваться. На практике пришлось немного допилить чужой проект.&lt;/p&gt;</description>
      <content>&lt;p&gt;Я хотел подключить Telegram к Claude и ChatGPT так, чтобы можно было массово подгружать сообщения из каналов в контекст и работать с ними прямо из AI-инструмента. Казалось бы, задача простая: взять готовый MCP-сервер, подключить и пользоваться. На практике пришлось немного допилить чужой проект.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-не-хватало-из-коробки&#34;&gt;Что не хватало из коробки&lt;/h2&gt;
&lt;p&gt;В качестве основы я взял &lt;a href=&#34;https://github.com/chigwell/telegram-mcp&#34;&gt;&lt;code&gt;telegram-mcp&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;После подключения выяснилось, что для реальной работы не хватает нескольких вещей:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;не распознаются расшаренные папки Telegram;&lt;/li&gt;
&lt;li&gt;поиск чатов по умолчанию ограничен 20 результатами;&lt;/li&gt;
&lt;li&gt;нет глобального поиска по сообщениям.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Раньше такой набор недочетов означал бы полноценное мини-исследование: нужно разобраться в чужом Python-коде, понять, как работает MTProto, и только потом что-то править. Сейчас на это ушло буквально пару часов — Codex помог быстро дотащить изменения до рабочего состояния и даже оформить &lt;a href=&#34;https://github.com/chigwell/telegram-mcp/pull/72&#34;&gt;PR&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;базовая-установка-telegram-mcp&#34;&gt;Базовая установка Telegram MCP&lt;/h2&gt;
&lt;p&gt;Сначала нужно развернуть сам сервер:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/chigwell/telegram-mcp.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; telegram-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Дальше поставить &lt;code&gt;uv&lt;/code&gt; и зависимости:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -LsSf https://astral.sh/uv/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv sync
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;После этого нужно сгенерировать session string и подготовить &lt;code&gt;.env&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv run session_string_generator.py
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;И наконец — создать свое Telegram-приложение на &lt;a href=&#34;https://my.telegram.org/apps&#34;&gt;my.telegram.org/apps&lt;/a&gt;, получить &lt;code&gt;TELEGRAM_API_ID&lt;/code&gt; и &lt;code&gt;TELEGRAM_API_HASH&lt;/code&gt; и прописать их в &lt;code&gt;.env&lt;/code&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;как-подключить-к-claude&#34;&gt;Как подключить к Claude&lt;/h2&gt;
&lt;p&gt;В &lt;code&gt;claude_desktop_config.json&lt;/code&gt; нужно добавить MCP-сервер:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;telegram-mcp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;uv&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;s2&#34;&gt;&amp;#34;--directory&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;s2&#34;&gt;&amp;#34;/path/to/telegram-mcp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;s2&#34;&gt;&amp;#34;run&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;s2&#34;&gt;&amp;#34;main.py&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;После перезапуска Claude Desktop сервер должен появиться в &lt;code&gt;Customize =&amp;gt; Connectors =&amp;gt; Desktop&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;И дальше уже можно делать вполне прикладные запросы вроде: &amp;ldquo;Напиши саммари по 20 последним сообщениям из Telegram&amp;rdquo;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;почему-с-chatgpt-сложнее&#34;&gt;Почему с ChatGPT сложнее&lt;/h2&gt;
&lt;p&gt;У ChatGPT проблема в том, что он не умеет работать с локальными MCP-серверами так же напрямую, как Claude Desktop. Теоретически можно поднять публичный MCP-сервер и подключить его через свое приложение для ChatGPT, но это означает выводить наружу сервис, который имеет доступ к личному Telegram-аккаунту. Даже с авторизацией это выглядит как плохая идея.&lt;/p&gt;
&lt;p&gt;Поэтому более практичный путь — использовать сторонний клиент, который умеет и в модели OpenAI, и в локальные MCP-серверы.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;вариант-с-opencode&#34;&gt;Вариант с OpenCode&lt;/h2&gt;
&lt;p&gt;В качестве такого клиента подойдет &lt;a href=&#34;https://opencode.ai/&#34;&gt;OpenCode&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;В &lt;code&gt;~/.config/opencode/opencode.json&lt;/code&gt; можно добавить локальный MCP так:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;$schema&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://opencode.ai/config.json&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;mcp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;telegram&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;local&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;uv&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;--directory&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;/Users/michaelledin/Documents/projects/telegram-mcp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;run&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;main.py&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;enabled&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;После этого остается подключить OpenAI-аккаунт через &lt;code&gt;/connect&lt;/code&gt;, а затем проверить через &lt;code&gt;/mcp&lt;/code&gt;, что сервер действительно в статусе &lt;code&gt;connected&lt;/code&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-в-этом-самое-интересное&#34;&gt;Что в этом самое интересное&lt;/h2&gt;
&lt;p&gt;Для меня важнее всего здесь не сам Telegram MCP, а скорость, с которой теперь можно закрывать такие инфраструктурные задачи. Еще недавно на подобную доработку чужого проекта уходила бы неделя. Сейчас это обычная вечерняя инженерная задача.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Обновил `ai-devcontainer`</title>
      <link>https://blog.ledin.pro/ru/posts/ai-devcontainer-firewall-fixes/</link>
      <pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate>
      <author>m@ledin.pro (Михаил Ледин)</author>
      <guid>https://blog.ledin.pro/ru/posts/ai-devcontainer-firewall-fixes/</guid>
      <description>&lt;p&gt;В &lt;code&gt;ai-devcontainer&lt;/code&gt; закинул две небольшие, но полезные доработки: добавил более подробный гайд по установке в проект и поправил настройки фаервола для Codex.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-изменилось&#34;&gt;Что изменилось&lt;/h2&gt;
&lt;p&gt;Первая часть — документация. Чем больше в окружении автоматизации, тем важнее, чтобы его можно было подключить без ручного шаманства и чтения исходников. Поэтому я дополнил инструкции по установке так, чтобы devcontainer было проще интегрировать в новый проект.&lt;/p&gt;</description>
      <content>&lt;p&gt;В &lt;code&gt;ai-devcontainer&lt;/code&gt; закинул две небольшие, но полезные доработки: добавил более подробный гайд по установке в проект и поправил настройки фаервола для Codex.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-изменилось&#34;&gt;Что изменилось&lt;/h2&gt;
&lt;p&gt;Первая часть — документация. Чем больше в окружении автоматизации, тем важнее, чтобы его можно было подключить без ручного шаманства и чтения исходников. Поэтому я дополнил инструкции по установке так, чтобы devcontainer было проще интегрировать в новый проект.&lt;/p&gt;
&lt;p&gt;Вторая часть — сетевые ограничения. Я подправил firewall-настройки для Codex, чтобы поведение внутри контейнера было более предсказуемым и не ломало рабочий процесс.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;где-смотреть&#34;&gt;Где смотреть&lt;/h2&gt;
&lt;p&gt;Репозиторий здесь: &lt;a href=&#34;https://github.com/mxl/ai-devcontainer&#34;&gt;&lt;code&gt;github.com/mxl/ai-devcontainer&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Если используешь devcontainers как безопасную песочницу для AI-агентов, это обновление должно быть полезным.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>ChatGPT Plus за рубли через SmartAIPack</title>
      <link>https://blog.ledin.pro/ru/posts/smartaipack-chatgpt-plus-for-rubles/</link>
      <pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate>
      <author>m@ledin.pro (Михаил Ледин)</author>
      <guid>https://blog.ledin.pro/ru/posts/smartaipack-chatgpt-plus-for-rubles/</guid>
      <description>&lt;p&gt;Одна из самых банальных, но неприятных проблем вокруг AI-инструментов — не настройка и не качество моделей, а оплата. Не у всех есть зарубежные карты, а искать посредников на маркетплейсах рискованно: слишком легко нарваться на сомнительные схемы.&lt;/p&gt;</description>
      <content>&lt;p&gt;Одна из самых банальных, но неприятных проблем вокруг AI-инструментов — не настройка и не качество моделей, а оплата. Не у всех есть зарубежные карты, а искать посредников на маркетплейсах рискованно: слишком легко нарваться на сомнительные схемы.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;какой-вариант-я-нашел&#34;&gt;Какой вариант я нашел&lt;/h2&gt;
&lt;p&gt;Я наткнулся на сервис &lt;a href=&#34;https://smartaipack.ru&#34;&gt;&lt;code&gt;smartaipack.ru&lt;/code&gt;&lt;/a&gt;. Его продвигают люди, которым я склонен доверять, в частности Глеб Кудрявцев из канала &lt;code&gt;@gleb_pro_ai&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Они предлагают оформить ChatGPT Plus-подписку за рубли. По сути это способ получить доступ не только к самому ChatGPT, но и к Codex, без необходимости самому решать вопрос с зарубежной оплатой.&lt;/p&gt;
&lt;p&gt;Цена заявлена примерно на уровне обычной подписки: около $20 в пересчете по текущему курсу, то есть примерно 1590 рублей.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;важный-нюанс&#34;&gt;Важный нюанс&lt;/h2&gt;
&lt;p&gt;Подписка оформляется не на твой личный аккаунт. Вместо этого тебе дают логин и пароль от уже готового аккаунта.&lt;/p&gt;
&lt;p&gt;Для тестов, экспериментов и open source-задач это может быть нормальным вариантом. Но если речь идет о рабочих данных, NDA, внутреннем коде или любой чувствительной информации, я бы относился к такой схеме очень осторожно.&lt;/p&gt;
&lt;p&gt;Даже если аккаунт выглядит чистым и в нем нет чужой истории, ключевой вопрос остается прежним: это не твой личный контур доверия.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;как-я-к-этому-отношусь&#34;&gt;Как я к этому отношусь&lt;/h2&gt;
&lt;p&gt;Я взял такой вариант на месяц, чтобы спокойно поиграться с Codex и понять, насколько он мне подходит в реальной работе. Параллельно запросил у поддержки информацию, можно ли сохранить доступ к аккаунту после окончания подписки.&lt;/p&gt;
&lt;p&gt;Когда получу ответ, можно будет уже более трезво оценить, подходит ли этот вариант не только для теста, но и для более длительного использования.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>ИИхак дня: VibeProxy и `ai-shell`</title>
      <link>https://blog.ledin.pro/ru/posts/aihack-vibeproxy-and-ai-shell/</link>
      <pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate>
      <author>m@ledin.pro (Михаил Ледин)</author>
      <guid>https://blog.ledin.pro/ru/posts/aihack-vibeproxy-and-ai-shell/</guid>
      <description>&lt;p&gt;У многих сторонних AI-инструментов есть одна неприятная особенность: они хотят работать с моделями OpenAI или Anthropic только через API. Это значит, что нужно заводить отдельный API-ключ, пополнять баланс и платить поминутно за запросы — даже если у тебя уже есть обычная подписка ChatGPT Plus или Claude.&lt;/p&gt;</description>
      <content>&lt;p&gt;У многих сторонних AI-инструментов есть одна неприятная особенность: они хотят работать с моделями OpenAI или Anthropic только через API. Это значит, что нужно заводить отдельный API-ключ, пополнять баланс и платить поминутно за запросы — даже если у тебя уже есть обычная подписка ChatGPT Plus или Claude.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;где-возникает-проблема&#34;&gt;Где возникает проблема&lt;/h2&gt;
&lt;p&gt;Сторонние coding assistants обычно требуют переменные вроде &lt;code&gt;OPENAI_API_ENDPOINT&lt;/code&gt; и &lt;code&gt;OPENAI_KEY&lt;/code&gt;. Формально все выглядит просто, но на практике подписочный аккаунт не дает тебе API-доступ. Хочешь пользоваться — иди и отдельно пополняй API-биллинг.&lt;/p&gt;
&lt;p&gt;Именно здесь многие внезапно понимают, что стоимость через API легко становится заметно выше, чем работа по обычной подписке.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-помогает-обойти-ограничение&#34;&gt;Что помогает обойти ограничение&lt;/h2&gt;
&lt;p&gt;Для macOS есть приложение &lt;a href=&#34;https://github.com/automazeio/vibeproxy&#34;&gt;VibeProxy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Оно позволяет проксировать доступ так, чтобы инструменты, ожидающие API-подключение, могли работать через локальную точку входа.&lt;/p&gt;
&lt;p&gt;Базовый сценарий такой:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ставишь VibeProxy из релизов&lt;/li&gt;
&lt;li&gt;Добавляешь аккаунт Claude Code или Codex&lt;/li&gt;
&lt;li&gt;Настраиваешь нужный инструмент под локальный endpoint&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&#34;пример-на-ai-shell&#34;&gt;Пример на &lt;code&gt;ai-shell&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Один из полезных примеров — &lt;a href=&#34;https://github.com/BuilderIO/ai-shell&#34;&gt;&lt;code&gt;ai-shell&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Это утилита для тех случаев, когда ты в сотый раз забываешь точный синтаксис терминальной команды и не хочешь снова лезть в поиск. Она позволяет формулировать задачу человеческим языком и получать готовую команду с пояснением.&lt;/p&gt;
&lt;p&gt;После установки и настройки VibeProxy конфигурация выглядит так:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @builder.io/ai-shell
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ai config &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENAI_API_ENDPOINT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://localhost:8317/v1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ai config &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;OPENAI_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;dummy
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ai config &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;MODEL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gpt-5.2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ключ здесь формальный — подойдет любая строка. Главное, что запрос уходит в локальный прокси.&lt;/p&gt;
&lt;p&gt;Дальше можно просто написать:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ai list open ports
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;И инструмент сам предложит подходящую команду, объяснит, что она делает, и предложит ее запустить.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;почему-это-удобно&#34;&gt;Почему это удобно&lt;/h2&gt;
&lt;p&gt;Такие утилиты особенно хороши не для магии, а для мелкой повседневной экономии времени. Когда не нужно отвлекаться на поиск синтаксиса, терминал становится заметно приятнее.&lt;/p&gt;
&lt;p&gt;Для меня это хороший пример того, как AI полезен не только в генерации кода, но и в бытовых инженерных задачах.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Потратил недельный лимит в Claude Code за 5 дней</title>
      <link>https://blog.ledin.pro/ru/posts/ai-devcontainer-codex-support/</link>
      <pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate>
      <author>m@ledin.pro (Михаил Ледин)</author>
      <guid>https://blog.ledin.pro/ru/posts/ai-devcontainer-codex-support/</guid>
      <description>&lt;p&gt;За пять дней я полностью съел недельный лимит в Claude Code и на остаток недели переключился на Codex. Этот переход неожиданно оказался полезным: пришлось быстро привести рабочее окружение в состояние, где можно без боли перескакивать между агентами и не ломать доступ к остальным репозиториям.&lt;/p&gt;</description>
      <content>&lt;p&gt;За пять дней я полностью съел недельный лимит в Claude Code и на остаток недели переключился на Codex. Этот переход неожиданно оказался полезным: пришлось быстро привести рабочее окружение в состояние, где можно без боли перескакивать между агентами и не ломать доступ к остальным репозиториям.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;что-обновил-в-devcontainer&#34;&gt;Что обновил в devcontainer&lt;/h2&gt;
&lt;p&gt;В свой &lt;code&gt;ai-devcontainer&lt;/code&gt; я добавил поддержку Codex, чтобы среда одинаково хорошо подходила и для Claude Code, и для Codex. Идея простая: если инструменты меняются, инфраструктура вокруг них не должна заставлять заново собирать весь сетап.&lt;/p&gt;
&lt;p&gt;Отдельно я добавил инструкции по настройке Personal Access Token для &lt;code&gt;gh&lt;/code&gt; (GitHub CLI). Это особенно важно, если запускать агентов в максимально автономном режиме: без ограничений они могут случайно залезть не в тот репозиторий или выполнить лишние действия в GitHub-аккаунте.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;зачем-это-вообще-нужно&#34;&gt;Зачем это вообще нужно&lt;/h2&gt;
&lt;p&gt;Когда работаешь с AI-агентами всерьез, переключение между инструментами перестает быть редким исключением. Сегодня уперся в лимит одного инструмента, завтра тестируешь другой, послезавтра сравниваешь качество выполнения задач. В этот момент выигрывает не тот, у кого один &amp;ldquo;идеальный&amp;rdquo; агент, а тот, у кого окружение собрано так, что замена инструмента занимает минуты, а не полдня.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;где-посмотреть&#34;&gt;Где посмотреть&lt;/h2&gt;
&lt;p&gt;Репозиторий лежит тут: &lt;a href=&#34;https://github.com/mxl/ai-devcontainer&#34;&gt;&lt;code&gt;github.com/mxl/ai-devcontainer&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Если будешь пробовать, забирай, тестируй и пиши, чего не хватает или что работает не так.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Почему сессия Claude Code съедает лимит быстрее ожидания</title>
      <link>https://blog.ledin.pro/ru/posts/claude-code-context-optimization/</link>
      <pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate>
      <author>m@ledin.pro (Михаил Ледин)</author>
      <guid>https://blog.ledin.pro/ru/posts/claude-code-context-optimization/</guid>
      <description>&lt;p&gt;Смотрю — использую всего 10% контекста. Думаю — всё ок, мне хватит лимита 5-часовой сессии тарифа Pro. Но он тает на глазах.&lt;/p&gt;
&lt;p&gt;Оказалось, дело не в проценте, а в двух вещах, которые включены по умолчанию.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-1m-контекст-по-умолчанию&#34;&gt;🧠 1M контекст по умолчанию&lt;/h2&gt;
&lt;p&gt;Claude Code по умолчанию включает расширенный контекст в 1 миллион токенов. Если не знаешь об этом, то кажется, что 10% — немного, но 10% от 1 миллиона — это 100 тыс. токенов!
При этом обычный размер контекста — это 200 тыс. токенов, то есть эти 10% на самом деле - 50% обычного контекста!&lt;/p&gt;</description>
      <content>&lt;p&gt;Смотрю — использую всего 10% контекста. Думаю — всё ок, мне хватит лимита 5-часовой сессии тарифа Pro. Но он тает на глазах.&lt;/p&gt;
&lt;p&gt;Оказалось, дело не в проценте, а в двух вещах, которые включены по умолчанию.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;-1m-контекст-по-умолчанию&#34;&gt;🧠 1M контекст по умолчанию&lt;/h2&gt;
&lt;p&gt;Claude Code по умолчанию включает расширенный контекст в 1 миллион токенов. Если не знаешь об этом, то кажется, что 10% — немного, но 10% от 1 миллиона — это 100 тыс. токенов!
При этом обычный размер контекста — это 200 тыс. токенов, то есть эти 10% на самом деле - 50% обычного контекста!&lt;/p&gt;
&lt;p&gt;Решение — отключить расширенный контекст через переменную среды в терминале:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;CLAUDE_CODE_DISABLE_1M_CONTEXT&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Либо добавить настройку в &lt;code&gt;~/.claude/settings.json&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;CLAUDE_CODE_DISABLE_1M_CONTEXT&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;-mcp-серверы-claude-desktop&#34;&gt;🔌 MCP-серверы Claude Desktop&lt;/h2&gt;
&lt;p&gt;Вторая проблема — по умолчанию подключаются все MCP-серверы из Claude Desktop: Google Calendar, Gmail, Slack&amp;hellip; Каждый добавляет свои инструменты в контекст, при этом в Claude Code они не нужны.&lt;/p&gt;
&lt;p&gt;Решение — отключить MCP-серверы через переменную среды в терминале:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;ENABLE_CLAUDEAI_MCP_SERVERS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Или добавить настройку в &lt;code&gt;~/.claude/settings.json&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;env&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;ENABLE_CLAUDEAI_MCP_SERVERS&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;false&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;-короче&#34;&gt;📌 Короче&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Смотри не только на процент заполненности контекста, но и на его размер&lt;/li&gt;
&lt;li&gt;MCP-серверы Claude Desktop засоряют контекст для Claude Code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;#ClaudeCode #оптимизация&lt;/p&gt;
</content>
    </item>
    
  </channel>
</rss>
