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

検索結果 Submarine
Submarine コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
Submarine を含む検索結果
Fire Bomber - Submarine Street [English Subs] @YouTubeさんから
本日11/6(水)26:00〜27:00 「Music Submarine」にコメント出演させて頂いております! 是非聴いてください⭐️ #TOKAIRADIO#
# ADK 2.0の便利だけど知られていない機能 🌍 エージェントの会話中に「前に聞いた情報を覚えておいてほしい」と思ったことはありませんか?状態管理の仕組みを理解すれば、それが簡単に実現できます。 ADK 2.0のState機能は、セッション内外でデータを保持・共有するためのキーバリュー型のスクラッチパッドです。プレフィックスによってスコープを使い分けることで、柔軟な状態管理が可能になります。 📌 タイトル:状態 (State) の管理 🔗 URL: 🧩 概要 Stateはキーバリュー形式のデータストアで、4つのプレフィックスによってスコープが決まります。プレフィックスなしはセッションスコープ(そのセッション内でのみ有効)、user:はユーザースコープ(同一ユーザーの複数セッションで共有)、app:はアプリケーションスコープ(全ユーザー・全セッションで共有)、temp:は一時スコープ(インボケーション終了時に破棄)です。エージェントの指示文中では{key}の形式で状態値を参照でき、動的なプロンプト構築が可能です。 🛠 使い方 状態の書き込みにはいくつかの方法があります。 ```python # 1. output_keyでエージェントの出力を自動保存 agent = Agent( name="summarizer", output_key="last_summary", ... ) # 2. EventActions.state_deltaで明示的に設定 from import EventActions actions = EventActions(state_delta={"user:preference": "dark_mode"}) # 3. ToolContext経由でツール内から設定 def my_tool(query: str, tool_context: ToolContext) -> str: tool_context.state["app:global_counter"] = 42 tool_context.state["temp:intermediate"] = "temporary_value" return "done" ``` 指示文での参照は以下のように行います。 ```python agent = Agent( instruction="ユーザーの好みは{user:preference}です。前回の要約:{last_summary}", ... ) ``` 🏗 本番システムへの組み込み方 ・スコープを適切に選択し、不要なデータの永続化を避ける(一時データにはtemp:を活用) ・user:やapp:スコープの状態は複数セッションに影響するため、慎重に設計する ・状態の読み書きは必ずCallbackContextやToolContext経由で行い、イベント追跡を確保する ・状態キーの命名規則を統一し、チーム全体での保守性を向上させる 💡 ユースケース 👤 user:プレフィックスでユーザーの好みや設定を複数セッションにわたって保持 📊 app:プレフィックスでアプリケーション全体の統計情報やカウンターを管理 🔄 output_keyで直前のエージェント出力を次のステップで自動参照 🧹 temp:プレフィックスで中間計算結果を一時保存し、メモリ効率を向上 ⚠️ 注意点 session.stateをコンテキスト外から直接変更しないでください。CallbackContextやToolContextを経由せずに変更すると、イベントトラッキングがバイパスされ、状態の変更履歴が記録されません。これにより、巻き戻し機能やデバッグに支障をきたす可能性があります。 ✨ Stateの4つのスコープを使い分けることで、エージェントの記憶と文脈を柔軟に管理できます。適切な状態管理は、質の高いエージェント体験の基盤です。 #ADK# #AIAgent#
もっと見る
# ADKの便利で実践的な使い方 ⚡ Python関数をそのままツールに、エージェントもツールに、そして長時間タスクもノンブロッキングで実行 — ADKのFunction Toolsは、ツール定義の柔軟性を極限まで高めます。 📌 タイトル:Function Tools — 関数・エージェント・非同期タスクをツール化 🔗 URL: 🧩 概要 ADKのFunction Toolsでは、Python/TypeScriptの関数をそのままエージェントのツールとして利用できます。さらに、AgentToolを使えばエージェント自体をツールとして別のエージェントに提供できます。Long Running Function Toolsは、動画エンコードやバッチ処理のような長時間タスクをブロッキングせずに実行するための仕組みです。 🛠 使い方 基本的な関数ツールの定義とAgentToolの活用例です。 `google.adk`から`Agent`と`AgentTool`をインポートします。シンプルな関数ツールとして`calculate_price`を定義し、`base_price`(float)、`quantity`(int)、`discount_percent`(float、デフォルト0)を受け取り、合計金額を計算してdictで返します。 エージェントのツール化には`AgentTool`を使います。まず`analysis_agent`を`name="data_analyst"`、`tools=[query_database]`で定義し、次に`main_agent`の`tools`リストに`calculate_price`関数と`AgentTool(agent=analysis_agent)`を含めます。これにより、メインエージェントは価格計算関数とデータ分析エージェントの両方をツールとして呼び出せます。 Long Running Function Toolsの使い方です。 `google.adk`から`LongRunningFunctionTool`をインポートします。非同期関数`encode_video`は`video_url`(str)と`format`(str、デフォルト"mp4")を受け取り、`start_encoding_job`でエンコードジョブを開始してジョブIDを返します。この関数を`LongRunningFunctionTool(func=encode_video)`でラップして`video_tool`を作成し、`Agent`の`tools=[video_tool]`に渡すことで、エージェントがブロッキングなしで長時間処理を実行できます。 🏗 実践的な使い方 **AgentToolによるモジュール化**: 複雑な処理を専門エージェントとしてカプセル化し、AgentToolで公開することで、メインエージェントのinstructionをシンプルに保てます。専門エージェントは独自のツールやプロンプトを持てるため、関心の分離が実現します。 `summarizer`(3行要約)と`translator`(英語翻訳)をそれぞれ`Agent`で定義し、メインの`content_manager`エージェントの`tools`リストに`AgentTool(agent=summarizer)`と`AgentTool(agent=translator)`として登録します。これにより、メインエージェントは要約と翻訳の専門エージェントをツールとして呼び出し、コンテンツ管理の依頼を処理できます。 **Long Running Toolsの活用場面**: バッチ処理、外部APIのポーリング待ち、ファイル変換など、完了まで数秒〜数分かかる処理に最適です。エージェントはジョブIDを受け取り、他のタスクを並行して進められます。 **型アノテーションの重要性**: 関数のパラメータ型と戻り値型を明確に定義することで、LLMが正確にツールを呼び出せます。docstringもツールの説明として使われるため、簡潔で明確に書きましょう。 💡 ユースケース 🧮 計算・変換関数のツール化(価格計算、単位変換) 🤖 専門エージェントのAgentTool化による再利用 🎬 動画エンコード・画像処理の非同期実行 📊 バッチデータ処理のノンブロッキング実行 ⚠️ 注意点 - 関数のdocstringがツールの説明になるため、LLMが理解しやすい説明を書いてください。docstringがないとツールの用途が不明確になります。 - AgentToolで呼び出されたエージェントは、親エージェントのコンテキストとは別のセッションで動作します。状態の共有には注意が必要です。 - Long Running Function Toolsは完了通知の仕組みを別途実装する必要があります。ポーリングや Webhook での通知を検討してください。 ✨ Function Toolsを使えば、既存のコード資産をそのままエージェントに統合でき、AgentToolでエージェントの再利用も自在。開発効率を大幅に向上させましょう! #ADK# #AIAgent#
もっと見る
# Codexの機能と実践的な使い方 📝 毎回プロンプトに同じ前提を書くのは卒業しましょう。AGENTS.mdは、ビルド手順やコード規約をCodexに恒久的に覚えさせる「階層的な指示書」です。 🏷️ タイトル: 階層的プロジェクト指示(AGENTS.md) 🔗 URL: 📘 概要 AGENTS.mdは、Codexが作業を始める前に読み込む永続的な指示ファイルです。プロジェクトの規約・ビルドコマンド・コードスタンダードをMarkdownに書いておくと、Codexが自動的に発見して適用します。現在地に近いファイルほど優先される「層」の仕組みが特徴です。 ⚙️ 機能の説明 Codexは厳密な優先順位で指示チェーンを組み立てます。 ・グローバル(`~/.codex/`): まず `AGENTS.override.md`、次に `AGENTS.md` を確認 ・プロジェクト(Gitルートから現在地まで): 各階層で `AGENTS.override.md` → `AGENTS.md` → カスタムのフォールバック名の順に確認 ・マージ: ルート側から順に空行をはさんで連結し、後(=現在地に近い側)のファイルが先のものを上書き 合計サイズが `project_doc_max_bytes`(既定32KiB)に達した時点で追加を停止します。命名は次の通りです。 ・`AGENTS.md`: 標準の指示ファイル ・`AGENTS.override.md`: 一時的な上書き用(同じ階層で優先される) ・フォールバック名: `project_doc_fallback_filenames` で `TEAM_GUIDE.md` などを指定可能 🛠️ 実践的な使い方 役割ごとに置き分けると効きます。 ・`~/.codex/AGENTS.md`(全体共通): 「JS変更後は必ず `npm test`」「`pnpm` を優先」など個人の普遍的な好み ・リポジトリ直下の `AGENTS.md`: lint基準・ドキュメント方針・レビュー基準などチームの規約 ・サブディレクトリの `AGENTS.override.md`(例: `services/payments/`): 親の規約を消さずに、特定領域だけ上書き 設定が反映されているかは `codex --ask-for-approval never "Summarize the current instructions."` で確認できます。 💡 ユースケース モノレポで、決済サービスだけ別のテストコマンドやレビュー基準を強制したい、といったときに `services/payments/AGENTS.override.md` を置くだけで、その配下に入ったときだけルールが切り替わります。GitHubの `@/codex review` でも、ここに書いた「Review guidelines」が適用されます。 ⚠️ 注意点 Codexは実行のたびに指示チェーンを組み直すため、キャッシュのクリアは不要です。内容が古く見えるなら対象ディレクトリで起動し直してください。空ファイルはスキップされ、存在しないフォールバック名は無視されます。`CODEX_HOME` 環境変数は既定のプロファイル位置を上書きします。 #OpenAICodex# #AGENTSmd#
もっと見る