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

検索結果 Encoder
Encoder コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
Encoder を含む検索結果
AIエージェントをエンタープライズシステムに組み込むプラクティス 【階層化メモリ -- 4層メモリとコンテキスト・ブローカー】 💡 毎回ゼロから始まるAIエージェントは、何度も同じ質問をする新入社員と同じです。記憶を4層に分離し、「いま本当に必要な情報だけ」を動的に組み立てる仕組みが、実用レベルのエージェントを作ります。 🔥 解決する課題 - セッション跨ぎの文脈喪失:セッション間・エージェント間で文脈が失われ毎回やり直しになる - 文脈窓の有限性:全履歴を詰め込むとコスト・精度が劣化する - 記憶肥大:無制限な蓄積でコスト・プライバシーリスク・文脈汚染が増大する - Lost in the middle:大量コンテキスト投入でかえって回答精度が下がる 🏗️ 提案パターン メモリを4層に分離します。ワーキング(現セッション・揮発)、エピソード(過去要約・ユーザー単位)、セマンティック(RAG対象の知識)、組織知識(人・部署・関係の知識グラフ)。各層に適切な保存先・TTL・ACLを設定します。コンテキスト・ブローカーがユーザーの意図に応じて各層から情報を取得し、トークン予算内で優先度付け・要約・圧縮を行い、最も関連の高い情報だけでコンテキストを組み立てます。 ✅ 選定条件 - 採用する場合:セッション跨ぎ・エージェント跨ぎで文脈を引き継ぐ継続支援型エージェント - 採用しない場合:一発完結のステートレスタスク、固定の少量コンテキストで足りる用途 ⚠️ 落とし穴 - エピソードメモリの肥大化:生ログではなく要約を残し、重要度スコア + TTL + 時間減衰で制御します - コンテキストブローカーの品質:リランキングの精度が低いと不要情報が混入し、精度が劣化します - ACLの層間整合:メモリ層ごとにACLが異なる場合、集約時に最も厳しい権限に縮退させる設計が必要です 🛠️ 実装方針 1. ベクタDB(Pinecone / Weaviate / pgvector)をセマンティックメモリ層に、Neo4jを組織知識グラフ層に配置し、各層に保存先・TTL・ACLを設定します 2. エピソードメモリは生ログではなく要約パイプラインを通し、重要度スコア+時間減衰で自動的に忘却・圧縮する仕組みを実装します 3. コンテキスト・ブローカーをリランキング(Cohere Rerank / cross-encoder)で構築し、ユーザーの意図に応じてトークン予算(目安8,000トークン)内で最も関連の高い情報を動的に組み立てます 4. Mem0 / Zepなどのメモリ管理フレームワークを活用し、セッション跨ぎ・エージェント跨ぎのデータ引き継ぎを実装します 5. 各メモリ層にACLタグを付与し、集約時にコンテキスト・ファイアウォール(P10)と連携して最も厳しい権限に縮退させます #AIエージェント# #エンタープライズアーキテクチャ#
もっと見る
# 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#
もっと見る