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

小さなエージェントから始めてみよう!実践コンテキストエンジニアリング

Avatar for iwamot iwamot PRO
November 10, 2026

 小さなエージェントから始めてみよう!実践コンテキストエンジニアリング

2026-11-10
AI Agentを使いこなすための設計・実装ノウハウ
https://rosca.connpass.com/event/410646/

Avatar for iwamot

iwamot PRO

November 10, 2026

More Decks by iwamot

Other Decks in Technology

Transcript

  1. 初期実装:ロジックをプロンプトに記述 PROMPT = """ 技術ブログの筆者を励ますレビューを書いてください。 1. 新着記事の全文を取得する 2. 記事をほめるレビューを生成する 3.

    レビューをSlackに投稿する 4. レビュー済みの記事URLを保存する """ agent = Agent(model=BedrockModel(), tools=[http_request, rss, slack, use_aws]) agent(PROMPT) ※ 説明用に簡略化(以降同じ) 5
  2. あとはStrandsがよしなに処理 Strandsがループを制御 ② 選んだツールを実⾏ 呼び出し元 ① プロンプトを⼊⼒ ④ 完了したら回答 LLM

    次の処理を判断 ツール 記事取得‧Slack投稿など ③ 実⾏結果を返却 ※ Strands:AWSが公開しているエージェント開発SDK 6
  3. 数か月後、なんとなくトレースを実施 → 違和感 LLM呼び出し 入力トークン 1回目 791 2回目 1,332 3回目

    2,602 4回目 15,968 5回目 16,595 6回目 17,038 計54,326トークン ※ StrandsのOpenTelemetry連携とJaegerで確認。手順は https://tech.enechange.co.jp/entry/2025/12/01/000000 を参照 8
  4. トークン削減の候補が2つ! LLM呼び出し 入力トークン 処理 必要な情報 不要な情報 4回目 15,968 レビュー生成 記事本文

    HTMLタグ 5回目 16,595 Slack投稿 レビュー結果 記事本文 + HTMLタグ 6回目 17,038 URL保存 記事URL 記事本文 + HTMLタグ + レビュー結果 記事のHTMLタグがトークンを消費 不要になった情報が会話履歴に残留(影響大) 9
  5. 案1:「レビュー生成」以外はコード化 コード LLM コード 記事本文取得 → レビュー生成 → Slack投稿 コード

    → 記事URL保存 当時は面倒だったが、今なら短時間でコーディング可能 決定論的に書くことで挙動が安定 トークン消費も最小限 15