Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Semantic Kernel の Agent 機能試してみた!

Kazuki
October 05, 2024

Semantic Kernel の Agent 機能試してみた!

Japan Azure User Group 14周年イベント の登壇資料です。
https://jazug.connpass.com/event/327273/

Kazuki

October 05, 2024
Tweet

More Decks by Kazuki

Other Decks in Technology

Transcript

  1. #JAZUG Semantic Kernel の Agent 機能試してみた! Japan Azure User Group

    14周年イベント 日本マイクロソフト 大田 一希
  2. #JAZUG 自己紹介 日本マイクロソフト クラウド ソリューション アーキテクト 大田 一希 (Kazuki Ota)

    好きな技術:C# (20 年以上ほぼ一筋)、Azure PaaS 系サービス 苦手な言語:変数に型のない言語全般 SNS や Blog: X(旧Twitter): @okazuki (https://x.com/okazuki) GitHub: @runceel (https://github.com/runceel) Zenn: https://zenn.dev/okazuki 趣味:プログラミング、ゲーム、お絵描き 好きな食べ物: 出身地:広島 近況:ダイエット中、喘息になってます
  3. #JAZUG Semantic Kernel とは 以下のようなことを実現するためのもの  最新の AI モデルをアプリに統合 

    C#, Python, Java に対応  モジュール式で拡張可能  エンタープライズ アプリケーションに 求められる機能の実装  安定した API (バージョン 1 系)
  4. #JAZUG Semantic Kernel の立ち位置 AI orchestration を作るための機能の詰め合わせ Your App Plugin

    extensibility Copilots AI orchestration Foundation models AI infrastructure APIs and AI Azure + GitHub + Visual Studio この部分を カバー
  5. #JAZUG Semantic Kernel の基本機能  AI 系サービスの呼び出し方法の抽象化  例:Chat Completions

    API 用の抽象化インターフェース IChatCompletionService インターフェース Azure OpenAI Service 用の実装、OpenAI 用の実装、Gemini 用の実装、etc...  プラグイン機能  AI が外部リソースや外部 API にアクセスするために拡張可能  OpenAI の Tools や Function calling 相当にマッピングされる  プランナー (Preview のまま終わる)  AI に目的を達成するためのプラン (プラグインの呼び出しなど)を組み立ててもらって実行 する機能 → Tools や Function calling で代替可能  フィルター・可観測性 (Preview)  関数呼び出し前後に処理の追加可能  ログ・メトリクス対応
  6. #JAZUG ここまでのまとめ  Semantic Kernel は Copilot Stack の AI

    Orchestrator を作るためのラ イブラリ  各種 AI 系サービスとのコネクタ  プラグイン機能  エンタープライズで利用可能  ログ、フィルターなど  安定した API  OSS で開発  C#、Python、Java に対応
  7. #JAZUG Semantic Kernel の Agent 作成用パッケージ Agent を作るためのパッケージがプレビューで存在 OpenAI の

    Assistants API を使ったエージェント 今回説明するエージェントはこちら
  8. #JAZUG Semantic Kernel の Agent 用新機能を使う場合 Agent の InvokeAsync メソッドでチャット履歴をもとに回答を作成

    ChatHistory にはシステムプロンプトは含めない InvokeAsync を呼ぶと IAsyncEnumerable<ChatMessageContent> 形式で 返事が返ってくる
  9. #JAZUG Semantic Kernel の Agent 用新機能を使う場合 Agent の InvokeAsync メソッドでチャット履歴をもとに回答を作成

    ChatHistory にはシステムプロンプトは含めない InvokeAsync を呼ぶと IAsyncEnumerable<ChatMessageContent> 形式で 返事が返ってくる API がエージェントを作るように整理整頓されている (個人の感想)
  10. #JAZUG Microsoft.SemanticKernel.Agents.Core パッケージ マルチ エージェント向けに整理された API のパッケージ  Agent クラス

    1 つの Agent を表すクラス  ChatCompletionAgent: Chat Completions API を使った基本的な Agent  AggregatorAgent: 複数の Agent を 1 つの Agent にまとめる  Agent のチャット履歴が長くなったときに履歴を短くするための機能も提供  AgentGroupChat クラス 複数の Agent が会話をするチャット グループを表すクラス  SelectionStrategy: 次に処理を行う Agent を選択する戦略を設定する  TerminationStrategy: 処理を完了するかどうかの戦略を設定する
  11. #JAZUG まとめ  Semantic Kernel  Copilot Stack の AI

    Orchestrator を実装するためのライブラリ  エンタープライズでの使用を想定  エージェント機能  現時点ではプレビュー!破壊的変更に注意!  エージェントという視点で API が整理されている  マルチ エージェント システムにも対応
  12. #JAZUG まとめ  Semantic Kernel  Copilot Stack の AI

    Orchestrator を実装するためのライブラリ  エンタープライズでの使用を想定  エージェント機能  現時点ではプレビュー!破壊的変更に注意!  エージェントという視点で API が整理されている  マルチ エージェント システムにも対応 マルチ エージェント システムを 簡単に作れるので是非試してみてください!