TGViewer
C# Short Posts 🔞 C# Short Posts 🔞 @dimasshortposts · 306 subscribers
Post #407 485
😂 Помните Semantic Kernel? Можете выкинуть. Тащите Agent Framework 1.0

Помните я писал про Semantic Kernel? Про то как можно за пару строчек кода собрать мини-агента с тулами, который сам решает что вызывать? Так вот — можете его выкинуть. 3 апреля Microsoft выкатили Agent Framework 1.0. Это не очередной превью — это стаблильнейший релиз от тех же людей, что делали SK. Фактически они взяли всё хорошее из SK, выкинули всё что бесило, и в итог переписали все с нуля.

Как говорится, устранили фатальный недостаток.

Главная боль SK была в том, что для всего нужен был объект Kernel. Хочешь тул зарегать — оберни в KernelPlugin, навесь [KernelFunction], добавь в Kernel.Plugins. Хочешь другого провайдера — отдельный класс агента (ChatCompletionAgent, OpenAIAssistantAgent, AzureAIAgent). Много обвязки.

В Agent Framework всё это выкинули. Вот что поменялось:

1️⃣ Один тип агента на всех провайдеров. ChatClientAgent работает с любым IChatClient — OpenAI, Azure, Anthropic, Ollama. Никаких отдельных классов.

2️⃣ Тулы без атрибутов. Не нужен [KernelFunction]. Берёшь любой C# метод, оборачиваешь в AIFunctionFactory.Create() — и готово. Description по-прежнему важен (как я и говорил — мусор на входе, мусор на выходе), но обвязки стало меньше.

3️⃣ Сессии из коробки. Не надо руками таскать ChatHistory. Вызвал agent.CreateSessionAsync() — и агент сам хранит историю переписки между вызовами.

4️⃣ Middleware pipeline. Вместо фильтров SK — полноценный пайплайн как в ASP.NET. Три уровня: перехват на уровне агента, на уровне вызова функций, на уровне IChatClient.

Покажу на примере. На пояснительном дикпике 1 — агент с тулами для работы с GitHub. Обратите внимание: никакого [KernelFunction], никакого Kernel.Plugins. Просто метод с [Description] и AIFunctionFactory.Create(). Минус целый один атрибут! 😳

А на дикпике 2 — сравнение старого SK и нового Agent Framework бок о бок. Тот же функционал, вдвое меньше кода.

А ещё там есть мультиагентные воркфлоу. На дикпике 3 — цепочка из трёх агентов: один исследует, второй пишет, третий редактирует. И всё это собирается в одного workflowAgent. Я вот тут чуток попробовал. Мне понраивлось в целом

А что с Semantic Kernel, кстати где он?

Ну вот тут кек. ☺️ Мы буквально только-только затащили SK в проект. 😀 Написали плагины, настроили агентный цикл, я даже посты про это написал!!! — и тут Microsoft такие: "а мы тут новый фреймворк сделали, старый в maintenance mode". Классика AI. А помните как мы угорали над фронтентдными фреймворками? Я вот сейчас плчу по тем временам. 😭

SK официально переходит в maintenance mode. Это значит: баг-фиксы и секьюрити патчи будут, но новых фич не будет — всё новое только в Agent Framework. Microsoft рекомендует мигрировать в течение 6–12 месяцев.
Гайд по миграции. 🫠

🅰️ Итого: Agent Framework — это то, чем SK хотел быть, но не мог из-за легаси. Выбрасывайте SK и срочно переходите на Agent Framework! Ладно, это шутка. Если уже используете SK — не паника, он ещё поддерживается, но мигрировать стоит. Если только начинаете — начинайте сразу с Agent Framework.

#csharp #dotnet #ai #agents #microsoft
  • 🔥 4
  • ❤‍🔥 1
  • 😈 1
More from @dimasshortposts
  1. Sep 26, 2026🧵 Тредик для вопросов по докладу про MAF на дотнексте В докладе многие подробности опусти…
  2. Sep 23, 2026Даже самым хардкорным ребятам надо отдыхать, так что отдыхаем, мои чюваки 🕺 🧑‍💻dp🥁 #he…
  3. Sep 16, 2026🎯 Instrumented Tier0: профилирование кода В прошлый раз мы разобрали два уровня компиляци…
  4. Sep 15, 2026🔜 Готовлюсь к DOTNEXT 2026 В прошлом году за две недели до выступления я зачитывал свой д…
  5. Sep 9, 2026C# Short Posts 🔞 pinned «🐸 О чём этот канал? Кажется, я уже достаточно давно веду этот к…
  6. Sep 9, 2026🐸 О чём этот канал? Кажется, я уже достаточно давно веду этот канальчик, и пора бы описат…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →