Slide 1

Slide 1 text

1 AIエージェントとは UB Tech vol.21 AIエージェントって何から始める?ソフト ウェアエンジニアによる挑戦

Slide 2

Slide 2 text

● 「AIエージェントってそもそも何?」 ● 「AI開発は機械学習に強くないと難しいのでは?」 今回のconnpassページより 以下に答える10分間です (続く取り組みの話に向けた準備) 2

Slide 3

Slide 3 text

● で き る!! だいぶアプリケーション開発です ● 機械学習の知識が増えていくと、よりうまくAI開発できます(低いレイ ヤーを知るということ) ● 「今できないことがあっても大丈夫。これからできるようになればい いって思います」(ミリアニ 9話) 機械学習が分からなくても、AI開発できますか? 3

Slide 4

Slide 4 text

● 2019年〜 ユーザベース Speeda事業・機械学習エンジニア(7年目) ● 好き・得意な言語はPython ● エンジニアコミュニティではnikkie(にっきー)として知られる ● ブログ https://nikkie-ftnext.hatenablog.com/ 自己紹介(ふたつぎ at ユーザベース) 4 最近読んでます

Slide 5

Slide 5 text

● 💡身近なAIエージェントを観察してみよう ● ふだんお世話になっているコーディングエージェント ● Cursor / Claude Code / Codex CLI / Gemini CLI etc.etc. AIエージェントってなんだろう 5

Slide 6

Slide 6 text

ファイルを読んだり、ファイルに書いたり、シェルでコマンドを実行したり 例:GitHub Copilot 6 ファイル awesome.pyを 要約して

Slide 7

Slide 7 text

AIエージェントの正体は、 LLM(大規模言語モデル) 7

Slide 8

Slide 8 text

● テキストでおしゃべりできる=自然言語で扱える ● 例:「翻訳して」「要約して」「分類して」(UB Tech Vol.8「ChatGPT / OpenAI API / LLM活用事例 ~ NewsPicksと朝日新聞の合同勉強会を公 開」) ● 前提知識がなくてもプロンプトを送るだけで結果を得られる!試行錯誤 できる!(機械学習の流れを変えた) LLM(例:ChatGPT)はすごい 8

Slide 9

Slide 9 text

● プログラムを書いたり、コードベースを検索したり ● おしゃべりにとどまらない(「ファイルを読み書きしてるじゃん!」) ● 👉拡張されたLLM コーディングエージェントは、 本当にChatGPTと同じもの? 9

Slide 10

Slide 10 text

● ChatGPTっておしゃべりだけで、道具は使えなくない? ● 💡道具の使い方をテキストで出力させる(天才!!) ● Tool call(Function call)と呼ばれる技術 主な拡張:道具を使う 10

Slide 11

Slide 11 text

https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/function-calling?hl=ja より Tool call(ツールの使用) 11

Slide 12

Slide 12 text

1. プロンプト + 「あなたはこんなツールが使えま すよ(ツール説明・引数)」 12 ファイル awesome.pyを 要約して 「ファイルawesome.pyを要約して」 ReadFileツール、WriteFileツール、etc ReadFileツール WriteFileツール Bashツール etc.

Slide 13

Slide 13 text

2. LLM🤖「プロンプトに応じるためにこのツール を使ったほうがよさそうだな」=JSON形式で返す 13 ファイル awesome.pyを 要約して {“function_call”: {“name”: “ReadFile”, “args”: {“file”: “awesome.py”}} ReadFileツール WriteFileツール Bashツール etc.

Slide 14

Slide 14 text

14 3. JSONを元にツールを実行 ファイル awesome.pyを 要約して readFile(“awes ome.py”)実行 ReadFileツール WriteFileツール Bashツール etc.

Slide 15

Slide 15 text

4. ツールの結果をLLMに送る(プロンプト + ツール 定義 + 🤖このツール呼びます + ツール実行結果) 15 ファイル awesome.pyを 要約して 「ファイルawesome.pyを要約して」 ReadFileツール、WriteFileツール、etc {“function_call”: {“name”: “ReadFile”, “args”: {“file”: “awesome.py”}} ReadFileツール WriteFileツール Bashツール etc.

Slide 16

Slide 16 text

16 5. 🤖「最終回答はこれこれ」 ファイル awesome.pyを 要約して awesome.pyに はAIエージェン トの実装があ り... ReadFileツール WriteFileツール Bashツール etc.

Slide 17

Slide 17 text

● 🤖「指定されたファイルを見たほうがよさそうだな」-> Read ● 🤖「実装分かったのでファイルに書くか」-> Write GitHub Copilotの例(イメージ) 17

Slide 18

Slide 18 text

● AIエージェントの1側面:道具を持ったLLMを伝えました ● おしゃべりするだけですが、「道具をこう使いたい」とおしゃべりさせ るアイデア ● 結果、おしゃべりにとどまらず、現実世界に作用できる(例:コーディ ングエージェント) ● Anthropicの定義:LLMs autonomously using tools in a loop (ref) まとめ🌯 AIエージェントとは 18

Slide 19

Slide 19 text

● Model Context Protocol:道具の定義や呼び出しの共通規格として加熱 ● コンテキストエンジニアリング:道具が100個ある時、全部伝える? ● 道具とは別に、思考(プロンプトの応答を計画したり) ● AIエージェントの性能(ユーザ価値)をどう評価するか(定量?定 性?) ● AIエージェント使わずに価値提供できるならそれがよい 10分で語りきれなかった話題🙏 19

Slide 20

Slide 20 text

このあとの話をお楽しみください! Happy Halloween 👻 🎃 ご清聴ありがとうございました 20