Learnly

Резюме и где применять Semantic Kernel в работе

План внедрения Semantic Kernel в компании: от POC до production

Финальный урок, практический roadmap. Что делать по неделям, какие референсные архитектуры под типовые сценарии, как считать экономику, какие грабли обходить.

Что мы разобрали в курсе

Глава Главная мысль
1.1 SK среди альтернатив Enterprise-runtime от Microsoft, MIT, C#/Python/Java; стабильность и OTel, главные козыри
1.2 Архитектура Kernel (DI) + KernelFunction (метод/промпт/OpenAPI/MCP) + Plugin + Connector + Filter
2.1 Память Microsoft.Extensions.VectorData, 12+ vector connectors, TextSearch для RAG
2.2 Оркестрация Function Calling, основа; HandlebarsPlanner, Stepwise, Agent Framework, Process Framework, для специальных случаев
3.1 Стек Azure-стек: AOAI, AI Search, Container Apps, Key Vault, App Insights, Content Safety

7 этапов запуска SK-приложения

Этап 1. Выбор сценария (1–2 недели)

Делайте узко. Не «универсальный AI-помощник для всей компании», а конкретный измеримый use-case.

Хорошие первые сценарии для SK:

  • Internal copilot для одного workflow (HR-вопросы, IT helpdesk, финансовый approval).
  • Documentation Q&A для конкретного отдела (юр-департамент, sales enablement).
  • DevOps-помощник (диагностика инцидентов, runbook automation).
  • BI-ассистент поверх корпоративных метрик.
  • Code review companion для команды разработки.

Чек-лист «правильного» первого:

  • ☐ Есть >100 запросов в день (иначе ROI не покроет работу).
  • ☐ Корпус 10K–10M токенов либо API-source с чёткой схемой.
  • ☐ Есть владелец продукта с правом принимать решения.
  • ☐ Цена ошибки средняя (не финансовые транзакции, не медицинские диагнозы).
  • ☐ Команда уже на .NET (или согласна на Python SK).

Этап 2. Spike / Walking Skeleton (1–2 недели)

Цель, за 1–2 недели собрать end-to-end работающий минимум на тестовых данных.

1. KernelBuilder + AOAI gpt-4o
2. Один плагин с 2–3 функциями (mock вызовами к внешним API)
3. Function calling Auto, без памяти
4. CLI / простой web endpoint
5. OpenTelemetry → консоль / Aspire dashboard

Цель, увидеть, что архитектура работает, и набрать первое чувство latency/cost. Не наращивать функционал, не оптимизировать.

Этап 3. Аудит и подготовка данных (3–6 недель)

Если в системе будет RAG, это критический этап. См. курс по RAG, тут, короткая выжимка для SK-контекста:

  1. Inventory всех источников (Confluence, SharePoint, Drive, Notion, БД, тикеты).
  2. Dedup, версионирование, deprecated-маркировка.
  3. Нормализация формата → Markdown / plaintext с metadata.
  4. PII scan (Microsoft Presidio).
  5. Chunking strategy (recursive 512 + overlap 64 как baseline).
  6. Pilot эмбеддинг и индексация в Azure AI Search / Qdrant.
  7. Эталонный датасет, минимум 50 ручных пар (вопрос, эталон, источники) + 200 synthetic.

Этап 4. MVP (3–5 недель)

Минимальный production-shaped стек:

var builder = Kernel.CreateBuilder()
    .AddAzureOpenAIChatCompletion("gpt-4o", endpoint, new DefaultAzureCredential())
    .AddAzureOpenAITextEmbeddingGeneration("text-embedding-3-large", endpoint, new DefaultAzureCredential());

builder.Services.AddSingleton(provider => new AzureAISearchVectorStore(...));
builder.Services.AddSingleton(provider => provider.GetRequiredService<IVectorStore>().GetCollection<Guid, DocumentChunk>("kb"));

builder.Plugins.AddFromType<HrKnowledgePlugin>();
builder.Plugins.AddFromType<CalendarPlugin>();

builder.Services.AddSingleton<IAutoFunctionInvocationFilter, ApprovalFilter>();
builder.Services.AddSingleton<IPromptRenderFilter, PiiMaskingFilter>();

builder.Services.AddOpenTelemetry()
    .WithTracing(t => t.AddSource("Microsoft.SemanticKernel*").AddAzureMonitorTraceExporter())
    .WithMetrics(m => m.AddMeter("Microsoft.SemanticKernel*").AddAzureMonitorMetricExporter());

var kernel = builder.Build();

Проверки готовности к pilot:

  • ☐ Faithfulness > 0.80 на эталонном датасете
  • ☐ Latency p95 < 5 сек
  • ☐ Function calling работает без зацикливаний (set MaximumAutoInvokeAttempts = 10)
  • ☐ Approval-flow для опасных операций
  • ☐ Trace в App Insights видны на каждый запрос
  • ☐ Cost-budget alert настроен в Azure Cost Management

Этап 5. Iterative improvement (1–3 месяца)

Цикл:

  1. Прогнать eval на эталонном датасете → найти слабости.
  2. Категоризация ошибок: retrieval miss, function selection, hallucination, formatting, latency.
  3. Применить одну технику против одной категории:
    • retrieval miss → hybrid search в AI Search или Qdrant
    • неудачный выбор функции → уменьшить набор функций / routing-агент
    • hallucination → строже инструкции + citation validation
    • formatting → structured output (JSON schema mode)
    • latency → routing на gpt-4o-mini для простого, parallel function calling
  4. Замерить → compare → keep or rollback.

Целевые метрики прода SK:

  • Faithfulness > 0.92 (для RAG)
  • Function-calling success rate > 0.95
  • Latency p95 < 3 сек
  • Cost / query < $0.05
  • Error rate < 1%

Этап 6. Контролируемый запуск (1 месяц beta)

  • 5–10% пользователей или одна пилотная команда.
  • Feedback loop: thumbs up/down + free text.
  • Continuous eval (sample 5% трафика → еженедельный отчёт).
  • Human-in-the-loop для критичных операций (Filter IAutoFunctionInvocationFilter + queue).
  • Алерты на drop > 5% в faithfulness/success rate за неделю.

Этап 7. Масштабирование

  • Расширение на всю аудиторию (постепенно по volume).
  • Подключение новых плагинов / источников.
  • Оптимизация: prompt caching (Azure OpenAI поддерживает), Redis для chat history, batching.
  • Operational ownership: кто отвечает за обновление корпуса, мониторинг, обновление зависимостей SK (новые версии каждый месяц).

Референсные архитектуры по сценариям

A. Internal HR/IT Copilot

Профиль: ~50K документов в SharePoint+Confluence, 500 запросов/день, низкая цена ошибки, команда .NET.

Kernel:        SK 1.x C#
Hosting:       Azure Container Apps (1–3 instances)
Identity:      Entra ID, Managed Identity для AOAI
Models:        AOAI gpt-4o-mini (default) + gpt-4o (fallback на сложные)
Embeddings:    AOAI text-embedding-3-large
Vector store:  Azure AI Search (hybrid, semantic ranker)
Plugins:       HrKnowledgePlugin (RAG), JiraPlugin (для тикетов)
Filters:       PiiMaskingFilter, RateLimitFilter
Memory:        Redis для chat history (по userId)
UI:            Teams bot (Bot Framework) + Slack bot
Eval:          xUnit-тесты с LLM-judge на golden set 100 пар
Cost:          ~$500–1500 / mo

B. Customer Support Copilot

Профиль: 500K документов (продукт + история тикетов), 5K запросов/день, средняя цена ошибки.

Kernel:        SK 1.x (C# или Python)
Hosting:       Azure Container Apps + AKS для воркеров
Models:        Claude Sonnet 4.6 (через wrapper) или AOAI gpt-4o
Embeddings:    AOAI text-embedding-3-large
Vector store:  Azure AI Search (hybrid + semantic ranker), отдельный index per продукт
Plugins:       KbSearch (TextSearch), TicketLookup (Zendesk OpenAPI), CustomerInfo (CRM)
Filters:       ApprovalFilter (для refund actions), ContentSafetyFilter
Memory:        Cosmos DB для долгих чат-историй
Eval:          PromptFlow / Azure AI Foundry, A/B testing
Cost:          ~$3K–8K / mo

C. DevOps assistant

Профиль: диагностика инцидентов, runbooks, доступ к мониторингу.

Kernel:        SK 1.x C#
Hosting:       AKS, namespaced на ops-namespace
Models:        AOAI gpt-4o + o1 для сложного reasoning
Plugins:
  - PrometheusPlugin (PromQL-запросы)
  - LokiPlugin (логи)
  - GrafanaPlugin (dashboards)
  - GithubPlugin (для PR-history)
  - SlackPlugin (notify on-call)
  - KubectlPlugin (через MCP filesystem-server)
Orchestrator:  StepwisePlanner или ReAct-агент
Approval:      Filter, все mutating операции (kubectl apply, rollback) требуют human approval
Audit:         App Insights + Splunk (compliance)
Cost:          ~$1K–3K / mo

D. BI-помощник (text-to-SQL + RAG)

Профиль: аналитики задают вопросы по корпоративному DWH (Synapse / Databricks).

Kernel:        SK 1.x Python (богаче ML-экосистема)
Hosting:       AKS
Models:        AOAI gpt-4o + gpt-4o-mini для роутинга
Plugins:
  - DwhSchemaPlugin (RAG по описаниям таблиц)
  - SqlExecutorPlugin (с whitelist read-only queries)
  - ChartGeneratorPlugin (Plotly через code interpreter)
Orchestration: Agent Framework, Planner + SQLWriter + Reviewer + Visualizer
Vector store:  pgvector (рядом с DWH-метаданными)
UI:            Web app, Slack, Teams
Cost:          ~$2K–5K / mo

Cost-калькуляция: типичный пример

Сценарий: Internal copilot, 1000 запросов/день, 5M-токенов knowledge base, 30 дней:

Статья Подсчёт В месяц
Initial indexing (5M tok × $0.13/1M) $0.65 разово
Re-indexing 5% корпуса в день ~$0.10/day $3
Azure AI Search (Standard S1, 25GB) flat ~$250
Per-query: embedding запроса ($0.0001) $0.10/day $3
Per-query: gpt-4o-mini routing (1K in + 100 out) ≈ $0.0002 $0.20/day $6
Per-query: gpt-4o основная (5K in + 500 out) ≈ $0.018 $18/day $540
Container Apps (1 vCPU, 2 instances) flat ~$60
Application Insights (1GB ingestion/day) flat ~$70
Key Vault, Bandwidth, мисc ~$30
Total ~$950 / mo

С routing-стратегией (50% запросов на mini вместо 4o), экономия 30–40%. С prompt caching, ещё 10–20% на пиках.

5 главных ошибок при запуске SK

1. Запуск с длинным prompt'ом без кеширования.
Каждый AI-вызов, это full prompt в model. 4K токенов system × 1000 запросов/день = $$$. Решение: prompt caching (Anthropic, AOAI 2024+), вынести стабильные части в начало.

2. Слишком много функций → деградация function calling.
Эмпирика: > 30–50 функций в одном Kernel, модель путается. Решение: routing-агент (классификатор intent → специализированный агент с маленьким набором).

3. Auto function calling без budget.
По умолчанию MaximumAutoInvokeAttempts = 128. Заклинивший агент сжигает $50 за минуту. Решение: ставить 5–15, мониторить метрику циклов в OTel.

4. Прямой доступ к LLM без filters.
Нет PII-маскирования → утечка персональных данных в логи. Нет approval, агент сам отправляет миллион писем. Решение: с первого дня настроить IPromptRenderFilter (PII) и IAutoFunctionInvocationFilter (approval для opasных).

5. Пропуск аудита данных перед RAG.
«У нас нормальные документы в Confluence». Через месяц, непонятные ответы. Решение: см. курс по RAG, этап 2.

Команда минимального проекта

  • 1 product owner, связь с пользователями, приоритеты.
  • 1 .NET / Python engineer (full-time), основной разработчик SK.
  • 1 ML/AI engineer (part-time), eval, prompt iteration, model selection.
  • 1 platform engineer (part-time), Azure-инфра, security, secrets, scaling.
  • 1 data steward (part-time), поддержание чистоты корпуса для RAG.

Для POC хватит одного full-stack .NET-инжa с AI-опытом. Для прода 5K+ запросов/день, команда из 3–4 человек минимум.

Что почитать дальше

  • Официальная документация: learn.microsoft.com/semantic-kernel
  • GitHub: microsoft/semantic-kernel, sample проекты в /samples
  • Awesome SK: microsoft/awesome-semantic-kernel
  • Microsoft Reactor / DotNetConf, актуальные сессии по SK
  • Azure AI Foundry docs, eval, deployment, content safety
  • Discord и DevBlogs, community и feature announcements

Главное

Semantic Kernel в 2026, самый зрелый AI-runtime для .NET и один из лучших для enterprise-внедрений в любом стеке. Это не самый хайповый, но самый предсказуемый выбор: стабильное API, нормальная documentation, OpenTelemetry из коробки, MIT-лицензия, бекинг Microsoft.

Успех проекта на SK на 70% определяется тем же, что и любой LLM-проект: качеством данных, правильным выбором use-case, дисциплиной измерений. Технология, лишь инструмент. Стек, метрики, паттерны, всё описано. Стартуйте с узкого сценария, чистите данные, измеряйте, итерируйте.

AI-тест
1 / 13

Какое ключевое преимущество Semantic Kernel как технологии Microsoft для создания ИИ-помощника?