TGViewer
C# Short Posts 🔞 C# Short Posts 🔞 @dimasshortposts · 306 subscribers
Post #378 608
Хочу показать разницу. Которую я сам не понимал: Function Calling у OpenAI (и других) есть и без SK. Но вот агентный цикл — то есть “вызвал тул, получил результат, спросил LLM снова, повторить“ — ты пишешь руками.

Просто для сравнения:

Без SK:


var messages = new List<ChatMessage> { new("user", prompt) };

while (true)
{
var response = await openAiClient.Chat.CreateAsync(
new() { Model = "gpt-4o", Messages = messages, Tools = tools });

if (response.FinishReason == "stop") break; // задача решена

// достаём все запрошенные тул-вызовы
foreach (var toolCall in response.ToolCalls)
{
var result = toolCall.Name switch
{
"CreatePullRequest" => await github.CreatePR(toolCall.Args),
"ReadFile" => await github.ReadFile(toolCall.Args),
"CreateBranch" => await github.CreateBranch(toolCall.Args),
_ => throw new Exception($"Unknown tool: {toolCall.Name}")
};
messages.Add(new("tool", result, toolCall.Id));
}
// и снова идём в LLM — пока он не скажет stop
}


С SK:


kernel.Plugins.AddFromObject(new GitHubPlugin(token), "GitHub");
var settings = new OpenAIPromptExecutionSettings
{
FunctionChoiceBehavior = FunctionChoiceBehavior.Auto()
};
await chat.GetChatMessageContentAsync(prompt, settings, kernel);


Весь этот while-loop, switch по именам тулов и склейка результатов обратно в messages — это и есть то что SK делает за тебя. И это просто капец как удобно!
  • 👍 3
  • 🔥 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 →