サンプル
Koogフレームワークは、さまざまなユースケースにおけるAIエージェントの実装方法を理解するのに役立つサンプルを提供しています。 サンプルはKotlinとJavaの両方で利用可能です。 これらは、独自のアプリケーションに適応できる主要な機能やパターンを示しています。
以下のサンプルを参照し、リンクをクリックしてGitHub上のソースコードを確認してください。
=== "Kotlin"
| サンプル | 説明 |
|-------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Attachments](examples/Attachments.md) | プロンプトで構造化されたMarkdownと添付ファイルを使用する方法を学びます。画像を含むプロンプトを作成し、OpenAIモデルを使用してInstagram投稿用のクリエイティブなコンテンツを生成します。 |
| [Banking](examples/Banking.md) | 洗練されたグラフベースの戦略を通じて、送金や取引分析を処理できるルーティング機能を備えた、包括的なAIバンキングアシスタントを構築します。ドメインモデリング、ツールの作成、エージェント構成パターンが含まれます。 |
| [BedrockAgent](examples/BedrockAgent.md) | AWS Bedrockとの統合により、Koogフレームワークを使用してインテリジェントなAIエージェントを作成します。カスタムツールの定義、AWS Bedrockのセットアップ、デバイス制御のための自然言語コマンドを理解する対話型エージェントの構築方法を学びます。 |
| [Calculator](examples/Calculator.md) | 加算、減算、乗算、除算のためのツールを使用して算術演算を実行する、電卓エージェントを構築します。並列ツール呼び出し、イベントログ、複数のエグゼキュータのサポート(OpenAIおよびOllama)を実演します。 |
| [Chess](examples/Chess.md) | 複雑なドメインモデリング、カスタムツール、メモリ最適化手法、および対話型の選択肢の選択を特徴とする、インテリジェントなチェス対局エージェントを構築します。高度なエージェント戦略、ゲーム状態管理、人間とAIのコラボレーションパターンを実演します。 |
| [GoogleMapsMcp](examples/GoogleMapsMcp.md) | Docker経由でKoogをGoogle Maps MCPサーバーに接続します。Kotlin Notebook環境で、現実世界の地理APIを使用する AI エージェントを用いて、ツールの探索、住所のジオコーディング、標高データの取得を行います。 |
| [Guesser](examples/Guesser.md) | 的を絞った質問を行うツールを使用して、二分探索戦略を実装する数字当てエージェントを構築します。エージェントは戦略的な質問を通じてユーザーの数字を効率的に絞り込み、ツールベースのインタラクションパターンを実演します。 |
| [Langfuse](examples/Langfuse.md) | OpenTelemetryを使用してKoogエージェントのトレースをLangfuseにエクスポートする方法を学びます。環境変数を設定し、エージェントを実行して、包括的なオブザーバビリティ(可観測性)のためにLangfuseインスタンス内のスパンとトレースを検査します。 |
| [MCP](https://github.com/JetBrains/koog/tree/develop/examples/src/main/kotlin/ai/koog/agents/example/mcp) | Model Context Protocol(MCP)の統合例。地理データ用のGoogleMapsMcpClientと、ブラウザ自動化用のPlaywrightMcpClientを特徴としています。 |
| [Memory](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples/src/main/kotlin/ai/koog/agents/example/memory) | メモリシステムの使用方法を実演するカスタマーサポートエージェント。エージェントは、暗号化されたローカルストレージと、サブジェクトおよびスコープを使用した適切なメモリ構成を使用して、ユーザーの会話の好み、デバイスの診断、組織固有の情報などを追跡します。 |
| [OpenTelemetry](examples/OpenTelemetry.md) | Koog AIエージェントにOpenTelemetryベースのトレースを追加します。デバッグのためにコンソールにスパンを出力する方法や、Jaegerで表示するためにトレースをOpenTelemetry Collectorにエクスポートする方法を学びます。Dockerのセットアップとトラブルシューティングガイドが含まれています。 |
| [Planner](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples/src/main/kotlin/ai/koog/agents/example/planner) | 並列および逐次実行ノードを持つ実行ツリーを構築し、複雑なワークフローのための実行プランを動的に作成するタスクプランニングシステム。 |
| [PlaywrightMcp](examples/PlaywrightMcp.md) | Playwright MCPとKoogを使用してブラウザを操作します。Playwright MCPサーバーを起動し、SSE経由で接続し、AIエージェントにナビゲーション、Cookieの同意、UI操作などのウェブタスクを自然言語コマンドを通じて自動化させます。 |
| [SimpleAPI](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples/src/main/kotlin/ai/koog/agents/example/simpleapi) | Koogを使い始めるための、チャットエージェントとシンプルなAPIパターンを持つ基本エージェントの実演例。 |
| [StructuredData](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples/src/main/kotlin/ai/koog/agents/example/structuredoutput) | 複雑なネストされたクラス、ポリモーフィズム、およびエージェントのレスポンスで型定義されたデータを処理する方法を示す天気予報の例を使用して、JSONベースの構造化データ出力を実演します。 |
| [SubgraphWithTask](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples/src/main/kotlin/ai/koog/agents/example/subgraphwithtask) | サブグラフ戦略を使用した作成、削除、コマンド実行を含む、ファイルおよびディレクトリ操作を示すプロジェクト生成ツール。 |
| [Tone](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples/src/main/kotlin/ai/koog/agents/example/tone) | 入力テキスト内のポジティブ、ネガティブ、またはニュートラルなトーンを識別するための専用ツールを使用するテキストトーン分析エージェント。センチメント分析(感情分析)機能を実演します。 |
| [UnityMcp](examples/UnityMcp.md) | Unity MCPサーバー統合を使用して、AIエージェントでUnityゲーム開発を推進します。stdio経由でUnityに接続し、利用可能なツールを探索し、エージェントに自然言語コマンドを通じてシーンの変更、オブジェクトの配置、ゲーム開発タスクの実行を行わせます。 |
| [VaccumAgent](examples/VaccumAgent.md) | Koogフレームワークを使用した基本的な反射エージェント(reflex agent)の実装。シンプルな2セルの世界における自動清掃タスクのための、環境モデリング、ツールの作成、エージェントの動作をカバーしています。 |
| [Weave](examples/Weave.md) | OpenTelemetry (OTLP) を使用して Koog エージェントを W&B Weave にトレースする方法を学びます。環境変数を設定し、エージェントを実行し、包括的なモニタリングとデバッグのために Weave UI で詳細なトレースを確認します。 |
| [A2A](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples/src/main/kotlin/ai/koog/agents/example/a2a) | Koogフレームワークを使用したエージェント間(A2A)通信を実演します。AIエージェント間の双方向通信の設定方法、共同問題解決の有効化、および適切なメッセージルーティングと調整によるマルチエージェントワークフローの管理方法を示します。 |
=== "Java"
| サンプル | 説明 |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Calculator](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples-java/src/main/java/ai/koog/agents/example/calculator/Calculator.java) | グラフベースの電卓エージェントを構築します。`ToolSet`を使用して定義されたツール、型指定されたエッジを持つマルチノードグラフ戦略、条件付きルーティング、履歴の自動圧縮、イベントハンドリング、および複数のエグゼキュータのサポート(OpenAIおよびOllama)を実演します。 |
| [FunctionalAgentChat](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples-java/src/main/java/ai/koog/agents/example/chat/FunctionalAgentChat.java) | [機能的戦略(functional strategy)](agents/functional-agents.md)を使用して、対話型チャットエージェントを構築します。Llama 3.2モデルを活用し、`/bye`が入力されるまでユーザーの入力を受け付ける継続的な会話ループを実行します。 |
| [ChatMemoryJdbc](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples-java/src/main/java/ai/koog/agents/example/chatmemory/ChatMemoryJdbcExample.java) | JDBC PostgreSQLプロバイダーを背後に持つ[`ChatMemory`](features/chat-memory/index.md)機能を使用して、セッション間で会話履歴を永続化します。24時間のTTL(生存時間)を持つJDBCベースのチャット履歴プロバイダーの作成、スキーママイグレーション、およびチャットメモリを使用したエージェントの構築を実演します。ローカルまたはDocker経由で実行されているPostgreSQLが必要です。 |
| [FunctionalStrategy](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples-java/src/main/java/ai/koog/agents/example/strategies/functional/FunctionalStrategyExample.java) | 型指定されたサブタスク、ステップごとのツールのスコープ設定、および検証済みの解決策を生成するための反復的な検証と修正ループを備えた、マルチステップの機能的戦略を実装します。 |
| [GoapStrategy](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples-java/src/main/java/ai/koog/agents/example/strategies/GoapStrategyExample.java) | GOAP(Goal-Oriented Action Planning:ゴール指向型アクションプランニング)を使用して、プランナーベースのエージェントを構築します。型指定された信念状態(belief states)、アクションの前提条件、およびゴール条件を定義して、反復的な問題解決と自己修正をガイドします。 |
| [GraphStrategy](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples-java/src/main/java/ai/koog/agents/example/strategies/GraphStrategyExample.java) | 条件付きエッジで接続された型指定されたサブグラフを使用して、グラフベースの問題解決エージェントを構築します。解決策を検証するためにLLM-as-a-judge(判定役としてのLLM)を使用した問題解決パイプラインを実装します。 |
| [CustomSubgraph](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples-java/src/main/java/ai/koog/agents/example/subgraphs/CustomSubgraphExample.java) | マルチサブグラフ・エージェント戦略を構築します。ウェブ検索ツールによる調査、アウトラインの計画、および最終的な記事要約の作成を処理する、連続して接続された3つのサブグラフを実装します。 |
| [OpenTelemetry](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples-java/src/main/java/ai/koog/agents/example/features/opentelemetry/OpenTelemetryExample.java) | Koog AIエージェントにOpenTelemetryベースのトレースを追加します。ローカルデバッグ用のコンソールログエクスポーターと、Jaegerでスパンを表示するためのOTLP/gRPCエクスポーターを構成します。Dockerのセットアップが含まれています。 |
| [Langfuse](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples-java/src/main/java/ai/koog/agents/example/features/opentelemetry/langfuse/LangfuseExample.java) | OpenTelemetry経由でKoogエージェントのトレースをLangfuseにエクスポートします。観測可能性(オブザーバビリティ)を強化するための、セッションIDやトレースタグなどのカスタム属性の構成を実演します。 |
| [Weave](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples-java/src/main/java/ai/koog/agents/example/features/opentelemetry/weave/WeaveExample.java) | OpenTelemetry (OTLP) を使用して Koog エージェントを W&B Weave にトレースします。環境変数を設定し、エージェントを実行して、Weave UI で詳細なトレースを確認します。 |
| [PersistenceJdbc](https://github.com/JetBrains/koog/tree/develop/examples/simple-examples-java/src/main/java/ai/koog/agents/example/snapshot/PersistenceJdbcExample.java) | JDBC PostgreSQLプロバイダーを背後に持つ`Persistence`機能を使用してエージェントを構築します。Persistence機能は、各ノードの実行後に自動的にチェックポイントを作成し、再起動を挟んでもエージェントが中断した場所から再開できるようにします。ローカルまたはDocker経由で実行されているPostgreSQLが必要です。 |
