登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

cv usk
@cv_usk
AI / Software Research Notes AI Agent, LLMOps, MLOps, Software Architecture 投稿は個人の意見です。
参加 May 2026
286 フォロー中    469 ファン
# Claude Agent SDKの便利だけど知られていない機能 🌍 エージェントの実行中にメッセージを送りたいと思ったことはありませんか?ストリーミング入力で対話的なセッションが実現します! ストリーミング入力モードを使えば、エージェント実行中にメッセージの追加、中断、画像送信が可能です。 📌 タイトル:ストリーミング入力モード 🔗 URL: 🧩 概要 ストリーミング入力モード(推奨)は、`AsyncGenerator` を使った永続的なインタラクティブセッションを提供します。通常のシングルメッセージ入力(ワンショット)と異なり、セッション中にメッセージのキューイング、画像の添付、実行の中断が可能です。`yield` でメッセージを順次送信し、条件に応じてフォローアップメッセージを動的に生成できるため、チャットインターフェースや複雑なワークフローに最適です。 🛠 使い方 ```python # Python - ストリーミング入力でインタラクティブセッション from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, AssistantMessage, TextBlock import base64 async def message_generator(): # 最初のメッセージ yield { "type": "user", "message": {"role": "user", "content": "セキュリティの問題を分析してください"}, } # フォローアップ(画像付き) with open("diagram.png", "rb") as f: image_data = base64.b64encode( yield { "type": "user", "message": { "role": "user", "content": [ {"type": "text", "text": "このアーキテクチャ図もレビューしてください"}, {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": image_data}}, ], }, } options = ClaudeAgentOptions(max_turns=10, allowed_tools=["Read", "Grep"]) async with ClaudeSDKClient(options) as client: await client.query(message_generator()) async for message in client.receive_response(): if isinstance(message, AssistantMessage): for block in message.content: if isinstance(block, TextBlock): print(block.text) ``` ```typescript // TypeScript - AsyncGenerator でメッセージを逐次送信 import { query, type SDKUserMessage } from "@anthropic-ai/claude-agent-sdk"; async function* generateMessages(): AsyncGenerator { yield { type: "user", message: { role: "user", content: "Analyze this codebase for security issues" }, parent_tool_use_id: null, }; // 条件に応じてフォローアップ await new Promise((resolve) => setTimeout(resolve, 2000)); yield { type: "user", message: { role: "user", content: "Now focus on authentication" }, parent_tool_use_id: null, }; } for await (const message of query({ prompt: generateMessages(), options: { maxTurns: 10, allowedTools: ["Read", "Grep"] } })) { if (message.type === "result" && message.subtype === "success") { console.log(message.result); } } ``` 🏗 本番システムへの組み込み方 ・チャットUIのメッセージ送信をジェネレータの `yield` に接続して、ユーザー入力をリアルタイムでエージェントに渡します ・画像アップロードを `base64` エンコードしてメッセージに含めることで、ビジュアル分析が可能になります ・中断シグナルを送信してエージェントの方向転換を行えるため、長時間実行タスクの制御に活用できます ・セッション中のコンテキストが自然に維持されるため、複数ターンの会話を管理する手間が省けます 💡 ユースケース 💬 カスタムチャットボットでユーザーとエージェントの対話的なセッションを構築する 🖼 コードレビュー中にスクリーンショットや設計図を動的に送信して分析させる 🔄 長時間のコード分析中に追加の指示やフォーカスエリアの変更を送る ⚠️ 注意点 ・シングルメッセージ入力では画像添付、動的メッセージキューイング、リアルタイム中断がサポートされません ・ステートレス環境(Lambda関数など)ではシングルメッセージ入力を使用してください ・Python ではストリーミング入力に `ClaudeSDKClient` のコンテキストマネージャが必要です ✨ ワンショットで終わらない対話こそ、AIエージェントの本領発揮です。ストリーミング入力でリッチな体験を構築しましょう! #ClaudeAgentSDK# #AIAgent#
もっと見る