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

検索結果 AiAgent
AiAgent コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
AiAgent を含む検索結果
【本日19時】 AIAgentプロダクト開発入門講座、本日(22日)19時スタートです。 申込155名となりました。 本分野に関するみなさまの関心の高さがうかがえます。 2時間という短い講座ですが、本講座でAIエージェントの技術的な全体像が理解し、実装可能かどうかを自分で判断するための一助になれたら嬉しいです。 申込は18時まで受け付けております。 またいつものように本講座の模様は録画⇒アーカイブ配信予定でおります。 📅 6/22(月)19:00〜 オンライン 💰 5,800円(先着50名) ▶ #AIエージェント# #起業# #副業# #新規事業#
もっと見る
【当日講義資料】 AIAgent-プロダクト開発入門講座、講師から当日の講義資料が届きました。 申込90名突破しました。 📅 6/22(月)19:00〜 オンライン 💰 5,800円 #AIエージェント# #起業# #副業# #新規事業#
もっと見る
# OpenAI Agent SDKの便利だけど知られていない機能 🌍 複数の LLM プロバイダを 1 つのエージェントシステムで混在させたいと思ったことはありませんか? `MultiProvider` を使えば、モデル名のプレフィックスで自動的にプロバイダをルーティングできます。 📌 タイトル:MultiProvider による接頭辞ルーティング 🔗 URL: 🧩 概要 `MultiProvider` は、モデル名のプレフィックス(例:`openai/gpt-4.1`)に基づいてリクエストを適切なプロバイダに自動ルーティングします。`openai_prefix_mode="model_id"` を設定すると `openai/...` をそのままモデル ID として扱い、`unknown_prefix_mode="model_id"` で未知のプレフィックスもモデル ID としてルーティングします。`openai_use_responses_websocket=True` で WebSocket トランスポートも有効化可能です。 🛠 使い方 ```python from agents import Agent, MultiProvider, RunConfig, Runner provider = MultiProvider( openai_base_url="", openai_api_key="...", openai_use_responses_websocket=True, openai_prefix_mode="model_id", unknown_prefix_mode="model_id", ) agent = Agent( name="Assistant", instructions="Be concise.", model="openai/gpt-4.1", ) result = await agent, "Hello", run_config=RunConfig(model_provider=provider), ) ``` 🏗 本番システムへの組み込み方 ・コストやレイテンシに応じて、エージェントごとに異なるプロバイダのモデルを割り当てる ・OpenRouter などの統合ゲートウェイと組み合わせ、`openai_prefix_mode="model_id"` でプレフィックス付きモデル名をそのまま渡す ・`RunConfig(model_provider=provider)` で実行時にプロバイダを切り替え、A/B テストを実施する ・WebSocket を有効にして、対応プロバイダでのストリーミング性能を向上させる 💡 ユースケース 🔀 タスクの難易度に応じた GPT-4.1 / GPT-5.5 の使い分け 🌐 OpenRouter 経由での複数プロバイダへのアクセス統合 💰 高コストモデルと低コストモデルのハイブリッド運用 🧪 異なるモデル間での品質比較テスト ⚠️ 注意点 デフォルトでは `openai/...` は OpenAI プロバイダのエイリアスとして扱われ、未知のプレフィックスは `UserError` を発生させます。OpenRouter など外部ゲートウェイを使う場合は、必ず `openai_prefix_mode` と `unknown_prefix_mode` を `"model_id"` に設定してください。プロバイダごとに対応する機能(ツール呼び出し、構造化出力など)が異なる点にも注意が必要です。 ✨ MultiProvider で、複数のモデルを自在に組み合わせたエージェントシステムを構築しましょう。 #OpenAIAgentSDK# #AIAgent#
もっと見る
# ADK 2.0の便利だけど知られていない機能 🌍 AIエージェントが外部APIの一時的な障害で止まってしまい、手動で再実行した経験はありませんか? ADK 2.0のRetryConfigは、エージェントの失敗時に自動リトライを行うフレームワークレベルの機能です。手動のtry-catchを書かずに、宣言的にリトライ戦略を定義できます。 📌 タイトル:自動リトライ (RetryConfig) 🔗 URL: 🧩 概要 RetryConfigは、エージェントやツールの実行中に発生した一時的なエラーに対して、フレームワークが自動的にリトライを管理する仕組みです。max_attemptsでリトライ回数を指定するだけで、ネットワークタイムアウトやAPIのレート制限など、一過性の障害からの復旧を自動化できます。開発者がリトライロジックを個別に実装する必要がなくなり、エージェントの堅牢性が大幅に向上します。 🛠 使い方 RetryConfigをエージェントに設定するだけで、自動リトライが有効になります。 ```python from adk import Agent, RetryConfig agent = Agent( name="api_caller", model="gemini-2.0-flash", instruction="外部APIからデータを取得してください", retry_config=RetryConfig(max_attempts=3), ) ``` フレームワークがエラーを検知すると、指定回数まで自動的にリトライを実行します。手動でのtry-exceptブロックは不要です。 🏗 本番システムへの組み込み方 ・外部API呼び出しを含むエージェントには必ずRetryConfigを設定する ・max_attemptsは対象APIのレート制限やSLAに合わせて適切に設定する ・リトライでは回復できない永続的なエラーと一時的なエラーを区別して設計する ・リトライ回数やエラー内容のログを監視し、根本原因の特定に活用する 💡 ユースケース 🌐 外部APIのレート制限やタイムアウトからの自動回復 🗄️ データベース接続の一時的な切断への対応 ☁️ クラウドサービスの瞬断に対する耐障害性の確保 🔄 マルチステップワークフローの中間ステップでの安定性向上 ⚠️ 注意点 広範な`except Exception:`ブロックでエラーを捕捉すると、フレームワークのリトライ機構が正しく動作しなくなります。また、`BaseException`を捕捉すると、HITL(Human-in-the-Loop)で使用されるNodeInterruptedErrorまでトラップしてしまい、人間の介入フローが壊れます。リトライで回復が見込めないエラー(認証エラーなど)に対しては、リトライを無駄に繰り返さないよう注意が必要です。 ✨ RetryConfigを活用することで、手動のエラーハンドリングから解放され、本番環境でも安定して動作する堅牢なエージェントを構築できます。 #ADK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利だけど知られていない機能 🌍 SDK が直接サポートしていないプロバイダ固有のパラメータを、エージェントに渡したいと思ったことはありませんか? `extra_args` を使えば、`ModelSettings` に任意のプロバイダ固有フィールドを追加できます。 📌 タイトル:extra_args の受け渡し 🔗 URL: 🧩 概要 `ModelSettings` の `extra_args` パラメータに辞書を渡すことで、SDK のトップレベルプロパティとして公開されていないプロバイダ固有のリクエストフィールドをモデルに送信できます。例えば OpenAI Responses API の `service_tier` や `user` などを指定可能です。これにより、SDK のアップデートを待たずに新しい API パラメータを利用できます。 🛠 使い方 ```python from agents import Agent, ModelSettings agent = Agent( name="English agent", instructions="You only speak English", model="gpt-4.1", model_settings=ModelSettings( temperature=0.1, extra_args={ "service_tier": "flex", "user": "user_12345", }, ), ) ``` 🏗 本番システムへの組み込み方 ・`service_tier` でコスト最適化(例:`"flex"` で低優先度バッチ処理を安価に実行) ・`user` フィールドでユーザー単位のトラッキングと不正利用検知を有効化する ・新しい API パラメータが追加された際、SDK の更新を待たずに即座に利用可能 ・環境変数や設定ファイルから `extra_args` を動的に構築し、デプロイ環境ごとに調整する 💡 ユースケース 💰 `service_tier: "flex"` でバッチ処理のコスト削減 👤 `user` フィールドによるユーザー単位の利用量追跡 🔧 プロバイダの新機能をリリース直後から活用 🏢 マルチテナント環境でのテナント別パラメータ注入 ⚠️ 注意点 同じリクエストフィールドを `ModelSettings` の直接プロパティと `extra_args` の両方で設定しないでください。重複設定は予期しない動作を引き起こす可能性があります。また、`extra_args` に渡す値はプロバイダの API 仕様に準拠している必要があり、SDK 側でのバリデーションは行われません。 ✨ extra_args で、SDK の枠を超えたプロバイダ固有の最適化を手軽に適用しましょう。 #OpenAIAgentSDK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利で実践的な使い方 🌍 エージェントの応答をリアルタイムに届けましょう! Streamingイベントを使い分けることで、タイプライターUIからツール実行通知まで、ユーザー体験を劇的に向上させることができます。 📌 タイトル:Streaming 🔗 URL: 🧩 概要 OpenAI Agent SDKのStreamingは3種類のイベントを提供します。RawResponsesStreamEventはLLMの生トークンをリアルタイムに流し、RunItemStreamEventはメッセージ作成やツール呼び出しなどの粗い粒度のイベントを通知し、AgentUpdatedStreamEventはエージェント切り替えを検知します。cancel()による即時中断やターン単位のキャンセルも可能です。 🛠 使い方 `Agent(name="assistant", instructions="丁寧に回答してください")` を定義し、` "AIの最新動向を教えて")` でストリーミング実行します。`async for event in でイベントをイテレートし、`isinstance(event, RawResponsesStreamEvent)` の場合は ` でトークンをリアルタイム表示します。`isinstance(event, RunItemStreamEvent)` の場合は `event.item.type` が `"tool_called"` でツール呼び出し通知、`"tool_output"` で完了通知、`"message_output_created"` でメッセージ生成開始を表示します。`isinstance(event, AgentUpdatedStreamEvent)` では ` でエージェント切り替えを通知します。最後に `await で最終結果を取得します。 キャンセルは ` "長い分析をして")` で開始した後、ストリームイベントのループ内で `result.cancel()` を呼ぶと即座に中断、`result.cancel(mode="after_turn")` を呼ぶと現在のターン完了後に停止します。キャンセル後は `async for _ in pass` でイテレータを消費してリソースをクリーンアップします。 🏗 実践的な使い方 チャットUIでは、`RawResponsesStreamEvent`の`output_text.delta`を使ったタイプライター表示が基本です。しかし、ツール呼び出し中はトークンが流れないため、`RunItemStreamEvent`の`tool_called`イベントで「検索中...」のようなプログレス表示を挟むのがベストプラクティスです。 マルチエージェント構成では、`AgentUpdatedStreamEvent`で「リサーチャーからライターに切り替わりました」のような表示ができます。これにより、ユーザーは処理の流れを理解しやすくなります。 キャンセルは2モードあります。`cancel()`は即座に中断しますが、`cancel(mode="after_turn")`は現在のLLMターンが完了してからクリーンに停止します。どちらの場合も、キャンセル後にストリームイテレータを最後まで消費してリソースをクリーンアップすることが重要です。 💡 ユースケース ⌨️ チャットアプリでのタイプライター風リアルタイム表示 🔧 ツール実行中の「検索中...」「計算中...」プログレス表示 🔄 マルチエージェント切り替えのリアルタイム通知UI 🛑 ユーザーの「停止」ボタンによる安全なキャンセル処理 ⚠️ 注意点 - `cancel()`後もイテレータを消費しないとリソースリークが発生する可能性があります - `RawResponsesStreamEvent`はトークン単位のため高頻度です。UIの再描画頻度に注意してください - Streaming中のエラーはイベントとして流れてくるため、適切にハンドリングしてください ✨ Streamingイベントを適切に使い分けることで、エージェントが「考えている」「調べている」「書いている」をユーザーに伝える、応答性の高いUIが実現できます! #OpenAIAgentSDK# #AIAgent#
もっと見る
# ADK 2.0の便利だけど知られていない機能 🌍 エージェントの動作をピンポイントで制御したい場合、コールバックの種類と使い分けを理解していますか? ADK 2.0は、エージェントのライフサイクル、LLM呼び出し、ツール実行の3層にわたるコールバックを提供しています。各コールバックのBefore/Afterパターンを活用することで、バリデーション、ガードレール、ログ記録などを柔軟に組み込めます。 📌 タイトル:コールバックの種類とパターン 🔗 URL: 🧩 概要 ADK 2.0のコールバックは3つのカテゴリに分かれています。エージェントライフサイクルコールバック(`BeforeAgentCallback` / `AfterAgentCallback`)は、エージェントの実行前後に処理を挿入します。LLMコールバック(`BeforeModelCallback` / `AfterModelCallback`)は、モデル呼び出しの前後で入力の修正やガードレールの適用を行います。ツールコールバック(`BeforeToolCallback` / `AfterToolCallback`)は、ツール実行の前後でバリデーションや結果の加工を行います。 🛠 使い方 各コールバックはエージェントの定義時に指定します。Pythonでは正確なパラメータ名(`callback_context`、`llm_request`、`tool_context`)を使用する必要があります。 ```python from adk import Agent async def before_agent(callback_context) -> None: """エージェント実行前のバリデーション""" print(f"Agent starting: {callback_context.agent_name}") # Noneを返すと通常実行、値を返すとスキップ async def before_model(callback_context, llm_request): """モデル呼び出し前のガードレール""" # リクエストの検証や修正が可能 if contains_sensitive_info(llm_request): return block_response() # 値を返すとモデル呼び出しをスキップ return None # 通常のモデル呼び出しを続行 async def after_tool(callback_context, tool_context, tool_response): """ツール実行後のログ記録""" log_tool_usage(tool_context.tool_name, tool_response) return None agent = Agent( name="my_agent", model="gemini-3.5-flash", before_agent_callback=before_agent, before_model_callback=before_model, after_tool_callback=after_tool, ) ``` Beforeコールバックで値を返すとその後の処理がスキップされ、Noneを返すと通常の処理が続行されます。 🏗 本番システムへの組み込み方 ・`BeforeAgentCallback` で入力のバリデーションや認証チェックを実装し、不正なリクエストを早期に拒否する ・`BeforeModelCallback` でガードレール(PII検出、有害コンテンツフィルタ等)を適用する ・`AfterModelCallback` でモデルの出力を検証し、フォーマットやポリシーへの準拠を確認する ・`AfterToolCallback` でツールの実行結果をログに記録し、監査証跡を残す 💡 ユースケース 🛡 `BeforeModelCallback` で個人情報を含むプロンプトをブロックする 📝 `AfterAgentCallback` でエージェントの実行結果をデータベースに記録する ✅ `BeforeToolCallback` でツール呼び出しパラメータのバリデーションを行う 🔍 `AfterModelCallback` でモデル出力のJSON形式を検証して再試行を促す ⚠️ 注意点 Pythonではコールバック関数のパラメータ名が正確である必要があります。`callback_context`、`llm_request`、`tool_context` などの名前が一致しないと正しく動作しません。また、Beforeコールバックで意図せず値を返してしまうと、モデル呼び出しやツール実行がスキップされてしまうため注意してください。コールバックはプラグインの後に実行される点も考慮が必要です。 ✨ コールバックを適切に使い分けることで、エージェントの振る舞いをきめ細かく制御できます。セキュリティ、品質保証、監査の要件に応じて、各レイヤーのコールバックを組み合わせてください。 #ADK# #AIAgent#
もっと見る
# ADKの便利で実践的な使い方 ## 🧠 長いセッションでもコストを抑える!ADKのContext Compaction機能 エージェントとの長い対話、コンテキストが膨らんでコストもレイテンシも増加していませんか?ADKの **Context Compaction** を使えば、古いイベントを自動要約して常にスリムなコンテキストを維持できます!🎯 ## 📌 タイトル Context Compaction(コンテキスト圧縮) ## 🔗 URL ## 🧩 概要 Context Compactionは、セッション中に蓄積されるワークフローイベントデータを自動的に要約し、処理オーバーヘッドを削減する機能です。スライディングウィンドウ方式で、最新のイベントはそのまま保持しつつ、古いイベントを圧縮することで、コストとレイテンシを最適化します。 `EventsCompactionConfig` を使って、圧縮間隔(`compaction_interval`)とオーバーラップサイズ(`overlap_size`)を設定するだけで有効になります。 ## 🛠 使い方 Appレベルで `EventsCompactionConfig` を設定します。 ` から `App` と `EventsCompactionConfig` をインポートします。`App` の `events_compaction_config` パラメータに `EventsCompactionConfig(compaction_interval=3, overlap_size=1)` を渡すことで、3イベントごとに圧縮が実行され、前回の圧縮から1イベント分を重複保持する設定になります。 TypeScriptでは `TokenBasedContextCompactor` でトークン閾値ベースの圧縮も可能です。 ```typescript const agent = new LlmAgent({ name: 'my-agent', model: 'gemini-flash-latest', contextCompactors: [ new TokenBasedContextCompactor({ tokenThreshold: 1000, eventRetentionSize: 1, summarizer: new LlmSummarizer({ llm: new Gemini({model: 'gemini-flash-latest'}) }) }) ] }); ``` ## 🏗 実践的な使い方 **カスタマーサポートボットでの活用例:** 長時間の問い合わせ対応では、対話履歴が数十ターンに達することがあります。Context Compactionを導入することで: 1. **コスト削減**:古い対話内容を自動要約し、毎回のLLM呼び出しで送信するトークン数を大幅に削減 2. **レスポンス改善**:コンテキストが小さくなることで、LLMの応答速度が向上 3. **精度維持**:直近のやり取りはそのまま保持するため、文脈を失わずに対話を継続 `compaction_interval=5, overlap_size=2` のような設定で、5ターンごとに圧縮しつつ、直前2ターン分の文脈を次の圧縮に引き継げます。 **カスタムサマライザーの活用:** デフォルトの要約モデルではなく、ドメイン特化の要約プロンプトを使うことで、業務固有の重要情報(注文番号、顧客IDなど)を確実に保持できます。 ## 💡 ユースケース - 📞 **カスタマーサポート**:長時間の問い合わせ対話でコンテキスト爆発を防止 - 📝 **ドキュメント作成支援**:長い執筆セッションで過去の議論を要約しつつ最新の方針を保持 - 🔍 **データ分析エージェント**:多段階の分析プロセスで中間結果を圧縮 - 🎮 **ゲームNPC**:長時間のプレイセッションで過去のイベントを要約して記憶 ## ⚠️ 注意点 - 圧縮は不可逆です。要約された情報の細部は失われる可能性があります - `overlap_size` が小さすぎると文脈の断絶が起きやすくなります - カスタムサマライザーを使う場合、要約モデル自体のコストも考慮が必要です - 圧縮間隔が短すぎると、頻繁な要約処理でオーバーヘッドが増加します ## ✨ まとめ Context Compactionは「長いセッション=高コスト」という常識を覆す機能です。設定一つで古いイベントを自動要約し、最新の文脈を保ちながらコストとレイテンシを最適化できます。長時間対話が発生するエージェントには、ぜひ導入を検討してみてください! #ADK# #AIAgent#
もっと見る
# OpenAI Agent SDKの便利だけど知られていない機能 🌍 LLM API の一時的なエラーで、エージェント全体が落ちてしまった経験はありませんか? `ModelRetrySettings` を使えば、Runner がリトライ戦略を自動管理し、一時的な障害に耐性のあるエージェントを構築できます。 📌 タイトル:Runner 管理のリトライ 🔗 URL: 🧩 概要 `ModelSettings` の `retry` パラメータに `ModelRetrySettings` を指定することで、リトライ回数・バックオフ戦略・リトライポリシーを細かく制御できます。`max_retries` で最大試行回数、`backoff` で遅延戦略(`initial_delay`、`max_delay`、`multiplier`、`jitter`)、`policy` でリトライ対象のエラー種別を定義します。ただし、abort エラー・安全でないリプレイ・出力開始後のストリーム・ステートフルリクエストは絶対にリトライされません。 🛠 使い方 ```python from agents import Agent, ModelRetrySettings, ModelSettings, retry_policies agent = Agent( name="Assistant", model="gpt-5.5", model_settings=ModelSettings( retry=ModelRetrySettings( max_retries=4, backoff={ "initial_delay": 0.5, "max_delay": 5.0, "multiplier": 2.0, "jitter": True, }, policy=retry_policies.any( retry_policies.provider_suggested(), retry_policies.retry_after(), retry_policies.network_error(), retry_policies.http_status([408, 429, 500, 502, 503, 504]), ), ) ), ) ``` 利用可能なポリシーヘルパー: - `retry_policies.never()` - 常にリトライしない - `retry_policies.provider_suggested()` - プロバイダの指示に従う - `retry_policies.network_error()` - 一時的なネットワーク障害 - `retry_policies.http_status([...])` - 特定の HTTP ステータスコード - `retry_policies.retry_after()` - Retry-After ヘッダに従う - `retry_policies.any(...)` / `retry_policies.all(...)` - 組み合わせ 🏗 本番システムへの組み込み方 ・Runner レベルでデフォルトのリトライ設定を定義し、Agent レベルで `max_retries` のみオーバーライドする ・`jitter: True` で複数エージェントの同時リトライによるサンダリングハード問題を回避する ・429(レート制限)と 5xx(サーバーエラー)を必ずリトライ対象に含める ・Agent レベルの設定は Runner レベルの設定とディープマージされる 💡 ユースケース 🔄 レート制限(429)への自動バックオフ 🌐 ネットワーク瞬断時の自動回復 🏢 マルチテナント環境でのエージェント安定性確保 📊 バッチ処理での一時的エラーの吸収 ⚠️ 注意点 abort エラー、プロバイダがリプレイ不安全と判定したリクエスト、出力が開始されたストリーム、`previous_response_id` や `conversation_id` を使うステートフルリクエストは、安全性の観点からリトライされません。リトライポリシーの `policy` フィールドはシリアライズされないため、実行時にのみ有効です。 ✨ ModelRetrySettings で、一時的な障害に動じない堅牢なエージェントを構築しましょう。 #OpenAIAgentSDK# #AIAgent#
もっと見る
ハーネスエンジニアリングのプラクティス P10. 二相設計 —— 読み取り専用の探索 → 実装 🎯 ポイント 「まず理解してから書く」は人間の美徳です。エージェントにも同じ規律を、願望ではなく権限で強制しましょう。 📝 概要 まず書き込み禁止の探索フェーズを強制し、計画を出させてから実装フェーズに入ります。早すぎる編集を構造的に防ぐことで、計画の質が上がります。フェーズ境界は願望ではなくハーネスが権限で強制します。 🔍 解説 エージェントは「とりあえず書いてみる」傾向があります。コードの全体像を把握する前にファイルを編集し始め、後から「そもそもアプローチが間違っていた」と気づいて大幅な手戻りが発生する、というパターンは非常に多いです。二相設計では、最初のフェーズでファイル読み・検索・シンボル解決のみを許可し、編集ツールを無効化します。エージェントはコードベースを探索し、理解し、計画を立てることだけに集中します。計画が承認されて初めて編集権限が解放されます。これにより「思いつきで書いて壊す」リスクを構造的に排除できます。 🛠 実践方法 ・フェーズ1では編集ツールを無効化し、ファイル読み・検索・シンボル解決のみを許可するツールセットを設定します ・フェーズ1の出力として計画ファイル(plan.md)を要求し、計画の承認をフェーズ2への移行条件にします ・フェーズ境界はプロンプトのお願いではなく、ツールの権限レベルで強制します ・探索フェーズの時間・ステップ数に上限を設け、コンテキスト枯渇を防ぎます 💼 ユースケース ・issue-to-PRエージェントで、issueの分析と計画策定を読み取り専用で行い、計画承認後に実装に入る場面 ・レガシーコード改修で、まずモジュール地図化と理解を行い、その後に変更を加える場面 ・インシデント対応で、診断(読み取り・安全・自律)と是正(書き込み・ゲート付き)を分離する場面 ⚠ 落とし穴 探索フェーズが長すぎると、エージェントがコンテキストウィンドウを使い切ってしまいます。また、探索フェーズで得た知識が実装フェーズまでに陳腐化するリスクもあります(P3のTTLと組み合わせる)。フェーズ境界を「プロンプトでお願いする」だけでは不十分で、ツールの権限レベルで強制することが重要です。 #HarnessEngineering# #AIAgent#
もっと見る