Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AI Agent、思ってたのと違った
Search
hasuto sasaki
February 23, 2026
Technology
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AI Agent、思ってたのと違った
hasuto sasaki
February 23, 2026
More Decks by hasuto sasaki
See All by hasuto sasaki
筋トレ哲学_押し付け_トレーナーを作ってみた
hasutosasaki
0
500
DynamoDB_Scan_vs_Query__検証で見えた境界線__-_Slidev.pdf
hasutosasaki
0
58
Other Decks in Technology
See All in Technology
[Kiro Meetup #7] Kiro Crew Dive Deep
konippi
0
260
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
5
25k
データ_AIの事業の勝敗をわけるもの
nek0128
1
480
手を動かして実感する、Kiro が変える開発体験
inariku
0
200
ADKで始める業務改善 - AIエージェント開発時の考えと設計
harappa80
2
270
2026_devsumi_ozono.pdf
o3
3
580
顧客に向き合う開発組織へ。リアーキテクチャとフィーチャーチーム化で挑む組織改革
safie
0
2.4k
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
4
3.7k
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
890
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
11
6.4k
Issue 駆動でスペシャリストの意図を届ける、AI 実装のアクセシビリティ向上
thkt
0
140
SREは、MCPとAutopilotをこう使え!
kazumax55
3
950
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Designing for Timeless Needs
cassininazir
1
490
How to Talk to Developers About Accessibility
jct
2
550
Crafting Experiences
bethany
1
350
We Are The Robots
honzajavorek
0
380
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
310
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
550
Abbi's Birthday
coloredviolet
4
10k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
How STYLIGHT went responsive
nonsquared
100
6.3k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
550
Transcript
AI Agent 、思ってたのと違った ※ 半分以上LLM の話です @HasutoSasaki
Hasuto (Sasaki Hasuto ) Server-side Engineer 筋トレ アニメ 低レイヤー Golang
Neovim GitHub @vt23358 2023.04 - SES 企業 Web サイト・Web アプリ開発 Vue.js / Nuxt.js + Lambda / DynamoDB 2026.01 - classmethod Web アプリ開発 TypeScript / React + Lambda / DynamoDB
AI Agent に対する勘違い 自分が思っていたこと 「Agent って何かすごい仕組みやフレームワークがあるんだろうな」 「特別なアルゴリズムとかアーキテクチャがあるに違いない」 調べてわかったこと Agent は特定の実装ではなく「LLM
に制御権を渡す」という設計思想 典型的な実装はびっくりするほどシンプルだった
今日話すこと 1 LLM の限界 テキストイン・テキスト アウト 記憶も計算もない 2 ツールで補う LLM
が書いたテキストを 外側のプログラムが実行 3 Agent の中身 典型的な実装は 驚くほどシンプル 4 使いこなす 仕組みから導く Do / Don't
LLM は魔法ではない
LLM の本質: ステートレスな予測マシン できること テキストを入力として受け取る テキストを出力する パターンに基づく推論 文脈から次の単語を予測する できないこと 状態や記憶を保持する(ステートレス)
API を叩く 計算を正確に実行する リアルタイム情報を取得する 「234 × 567 は?」→ 計算ではなく、訓練データのパターンから予測しているだけ
プロンプトは「確率を高める」行為 LLM は確率的にテキストを予測する → 指示の明確さが応答の品質に直結する GOOD 「敬語を使い、専門用語には説明を添えて」 指示は具体的に、1 つの方向性に絞る 不要な説明・補足は削る
BAD 「丁寧に回答して」だけ(曖昧) 「簡潔に」と「詳細に」を同時に指示(矛 盾) 念のための補足を大量に追加する
会話の裏側: LLM に記憶はない チャットUI では対話に見えるが、LLM が受け取るのは特殊トークンで区切られた1 本のテキスト <|im_start|> system あなたは天気予報アシスタントです。
<|im_end|> <|im_start|> user 東京の天気は? <|im_end|> <|im_start|> assistant 晴れです。 <|im_end|> <|im_start|> user 大阪は? <|im_end|> <|im_start|> assistant ↑ LLM はこの続きを予測するだけ 毎回ここまで全部渡す — 「覚えている」のではなく「毎回全部読み直している」
これを踏まえて…
長い会話はコストと品質の両方を悪化させる 毎回全文が渡される → 会話が長いほどコスト増 + 中間の情報が見落とされやすい GOOD テーマが変わったら新しい会話を始める 重要な前提条件は途中で再度伝え直す 「最初に伝えた通り〇〇を前提に」と添える
BAD 1 つの会話で何十往復もし続ける 「さっき言ったよね?」と期待する 初期に伝えた情報が埋もれるのを放置 Lost in the Middle: テキストの先頭と末尾に注意が集中し、中間部分が見落とされやすい
LLM の限界を どう補うか
ツール LLM に手足を生やすイメージ 「パリの天気を教えて」 LLM call weather('Paris') Agent テキストをパース →
ツール名 weather と引数 'Paris' を抽出 Tool weather('Paris') → { temp: 18, weather: "cloudy" } LLM 結果を読んで回答を生成 → 「パリは現在18℃ 、曇りです」 User ← テキストを出力するだけ ← 実際のAPI 実行 LLM は「このツールを使って」とテキストで書いているだけ — 実行するのは Agent
これをループさせると Agent になる
Agent の内部構造 while True: # 1. 会話全体をLLM に渡す response =
llm.generate(messages) # 2. 出力にツール呼び出しがあるか? if has_tool_call(response): tool_name, args = parse_tool_call(response) result = tools[tool_name](**args) messages.append({"role": "tool", "content": result}) else: # ツール呼び出しがなければ最終回答 return response 賢い判断はすべてLLM 側 — Agent の本質は「LLM にフローの制御権を渡す」こと
エージェントは銀の弾丸ではない while ループの中でLLM が複数回呼ばれる → コスト・時間が掛け算で増える AGENT なしでいい 「日本の首都は?」 LLM
1 回 → 「東京です」 速い・安い AGENT が必要 「東京と大阪の天気を比べて」 LLM 1 回目 → 東京の天気を検索 LLM 2 回目 → 大阪の天気を検索 LLM 3 回目 → 比較して回答 3 回呼び出し + 会話が膨らむコスト LLM の知識だけで答えられるならAgent は不要 — 外部データや複数ステップが必要なときだけ使う
応用例: RAG → Agentic RAG LLM はステートレス → 「必要な情報を毎回外から渡す」アプローチが生まれた RAG
(検索拡張生成) ユーザーの質問で事前に検索 検索結果をコンテキストに追加してLLM に渡 す 検索 → 生成の1 回きりのパイプライン Agentic RAG Agent が必要に応じて検索ツールを呼ぶ 結果を見て「追加検索が必要か」を自分で判 断 検索 → 評価 → 再検索のループが可能 Agentic RAG = RAG を Agent のループに組み込んだもの
ここまでを整理する
全体像 1 ユーザーの質問が届く ↓ 2 過去の会話すべてを特殊トークンで区切り、1 本のテキストに連結 ↓ 3 LLM
が全体を読んで 思考 → アクションをテキスト出力 → 停止 ↓ 4 Agent が出力を 解析 → ツール呼び出しの有無を判定 ↓ ツール呼び出しあり アクション → 観察 結果を会話に追加 → 3 に戻る ツール呼び出しなし 最終回答を返す ループ終了
仕組みがわかれば 使い方が変わる
仕組みから導く4 つの洞察 → 確率的予測 — 曖昧さは出力を不安定にする → 毎回全文再送 — コスト増
+ 中間の情報は見落とされる → 毎回全文含まれる — 増やすほどコスト増 + 判断精度が下がる → while ループ — LLM 複数回呼出しのコスト プロンプトは具体的に書こう 長い会話は新しく始めよう ルールやツールは多いほどいい? エージェントを使えば賢くなる 「こう使うべき」ではなく「なぜそうなのか」を知っていれば、新しい状況にも応用できる
ありがとうございました 参考: Hugging Face Agents Course