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

どうしてStrands Harnessはトークンコストを抑えられるのさ?

Tatsuya
October 19, 2026

どうしてStrands Harnessはトークンコストを抑えられるのさ?

Tatsuya

October 19, 2026

Transcript

12 slides
  1. 自己紹介 鈴木 辰弥(す ずたつ) (X:@tatsupoyo37685) • • • • •

    所属:SIer(社会人2年目エンジニア) 業務:電力系グローバルPJの開発支援 趣味:ライブ/フェス参戦 好きなAWSサービス:AWS CloudFormation 入門中の技術スタック:Strands Agents
  2. 話すこと/話さないこと • 話すこと ◦ Strands Harnessの概要 ◦ Strands Harnessのトークンコストを削減する3つのメカニズム •

    話さないこと ◦ Strands Harnessが提供する組み込み機能の詳細 ◦ トークンコスト削減のベストプラクティス
  3. メカニズム①:コンテキストの自動要約 • コンテキスト使用率が 85%に達すると、古いターンを要約 ⇒直近3件と一番古い1件を残し、それ以外の会話履歴全体を要約 コンテキスト変換前(コンテキスト使用率 85%超) コンテキスト変換後(要約済) [ [

    { "role": "user", "content": [{ "text": "フレームワークベスト3を調査して"}]}, { "role": "assistant", "content": [{ "text":"エージェント構築で代表的な…"}]}, { "role": "user", "content": [{ "text":"特徴と違いを詳しく教えて"}]}, { "role": "assistant", "content": [{ "text":"詳細解説… \n| 焦点 | 設計... | ... (長文Markdown比較表)"}] }, { "role": "user", "content": [{ "text":"メリットとデメリットは?"}]}, { "role": "assistant", "content": ["text": "メリット・デメリットの解説…"]}, { "role": "user", "content": ["text":"どのようなユースケース…"]} ] { "role": "user", "content": [ { "text": "フレームワークベスト3を調査して" }, { "text": "[Summarized: 3 messages, ~203 tokens]\n\nThe assistant explained... 1. Architecture-Based... 2. Event-Driven... 3. Agent-Oriented Simulation..." }, { "text": "メリットとデメリットは?" } ] }, { "role": "assistant", "content": ["text": "メリット・デメリットの解説…"]}, { "role": "user", "content": ["text":"どのようなユースケース…"]} ]
  4. メカニズム②: Tool実行結果の最適化 • 1,500トークン超のTool実行結果は真ん中の文章を切り詰め、前後の文章と 参照キー(toolUseId)のみをコンテキストに保持 ログ取得Tool実行結果(1,500トークン超) Agentが保持するコンテキスト(最適化後) [2026-10-12 22:00:01] INFO

    [MainThread] [Truncated: 1 block, ~1,806 tokens] [2026-10-12 22:00:01] INFO [MainThread] Starting application server on port 8080... Starting application server on port 8080... [2026-10-12 22:00:02] DEBUG [InitWorker] Loading configurations from /etc/app/config.yaml ... (中略:ログ出力が続く ) … [2026-10-12 22:30:15] ERROR [PaymentWorker] Transaction timeout occurred for tx_id=987654321. Rolling back… [2026-10-12 22:30:16] ERROR [PaymentWorker] Database deadlock detected on table 'orders'. Aborting transaction. ... [... 5,410 chars elided ...] … [2026-10-12 22:30:16] ERROR [PaymentWorker] Database deadlock detected on table 'orders'. Aborting transaction. [Stashed] [ref:{toolUseId}] 必要時に参照 (retrieve_context) ストレージに退避 toolUseId
  5. メカニズム③:プロンプトキャッシング • Cache Pointを追加することで、指定位置までのプロンプトがキャッシュ対象となる。 Cache Point 追加前のリクエスト { Cache Point

    追加後 (Bedrock上のClaudeモデル) { "toolConfig": { "tools": [ {"toolSpec": "search_aws"}, {"toolSpec": "get_cost"} ] }, "system": [ {"text": "あなたはAWSの専門家です"} ], "messages": [ {"role": "user", "content": [ {"text": "Prompt Cacheについて教えて"} ]} ] "toolConfig": { "tools": [ {"toolSpec": "search_aws"}, {"toolSpec": "get_cost"}, {"cachePoint": {"type":"default"}} ] }, "system": [ {"text": "あなたはAWSの専門家です"}, {"cachePoint": {"type":"default"}} ], "messages": [ {"role": "user", "content": [ {"text": "Prompt Cacheについて教えて"}, {"cachePoint": {"type":"default"}} ]} ] } } tools Tool definitions ↓ Cache Point ① ↓ system System Prompt ↓ Cache Point ② ↓ messages 固定された過去の会話 ↓ Cache Point ③
  6. メカニズム③:プロンプトキャッシング ① 初回リクエスト: Cache PointまでをCache Write { { "toolConfig": {

    "tools": [ {"toolSpec": "search_aws"}, {"toolSpec": "get_cost"}, {"cachePoint": {"type":"default"}} ] }, "system": [ {"text": "あなたはAWSの専門家です"}, {"cachePoint": {"type":"default"}} ], "messages": [ {"role": "user", "content": [ {"text": "Prompt Cacheについて教えて"}, {"cachePoint": {"type":"default"}} ]} ] } ② 2回目以降のリクエスト: キャッシュに共通部分があれば Cache Read 順番に確認 tools Tool definitions ↓ Cache Point ① ↓ system System Prompt ↓ Cache Point ② ↓ messages 固定された過去の会話 ↓ Cache Point ③ "toolConfig": { "tools": [ {"toolSpec": "search_aws"}, {"toolSpec": "get_cost"}, ] }, "system": [ {"text": "あなたはAWSの専門家です"}, ], "messages": [ {"role": "user", "content": [ {"text": "Prompt Cacheについて教えて"}, ]}, ・・・ {"role": "user", "content": [ {"text": "新規ユーザープロンプト"}, ]} ] } 共通する部分は Cache Read(安い) 新規入力は 通常のInput処理
  7. まとめ • Strands Harnessは「コンテキストを効率的に扱う」ことで トークンコストを削減 1. コンテキストの自動要約 ⇒ 圧迫した過去の会話を要約 2.

    Tool実行結果の最適化 ⇒ 不要なTool実行結果を退避 3. プロンプトキャッシング ⇒ 繰り返し使う部分をCache Readで再利用 • トークンコストを抑えたエージェント開発の第一歩にStrands Harness

More Decks by Tatsuya

Other Decks in Technology