Skip to content

AI 駆動アプリ開発のための Kotlin

Kotlin は、AI 駆動のアプリケーションを構築するためのモダンで実践的な基盤を提供します。 プラットフォームを問わず使用でき、確立された AI フレームワークと適切に統合され、一般的な AI 開発パターンをサポートします。

Koog

Koog は、シンプルから複雑なものまで、AI エージェントを構築するための JetBrains によるオープンソースフレームワークです。 マルチプラットフォームのサポート、Spring Boot および Ktor との統合、慣用的な DSL、そしてすぐに使用できるプロダクション対応の機能を提供します。

数行でシンプルなエージェントを作成する

kotlin
fun main() {
    runBlocking {
        val agent = AIAgent(
            // Anthropic、Google、OpenRouter、またはその他のプロバイダーを使用
            executor = simpleOpenAIExecutor(System.getenv("OPENAI_API_KEY")),
            systemPrompt = "You are a helpful assistant. Answer user questions concisely.",
            llmModel = OpenAIModels.Chat.GPT4o
        )

        val result = agent.run("Hello! How can you help me?")
        println(result)
    }
}

Get started with Koog

主な機能

  • マルチプラットフォーム開発のサポート。マルチプラットフォームのサポートにより、JVM、JavaScript、WebAssembly、Android、および iOS 向けのエイジェンティック(agentic)なアプリケーション開発が可能になります。
  • 信頼性とフォールトトレランス。組み込みのリトライ機能により、タイムアウトやツールエラーなどの失敗を開発者が処理できるようになります。エージェントの永続化により、チャットメッセージだけでなく、エージェントの完全な状態マシンを復元することが可能です。
  • 長いコンテキストのための組み込み履歴圧縮技術。Koog には、追加の設定なしで、長期にわたる会話を圧縮および管理するための高度な戦略が備わっています。
  • エンタープライズ対応の統合。Koog は、Spring BootKtor などの人気のある JVM フレームワークと統合します。
  • OpenTelemetry エクスポーターによるオブザーバビリティ。Koog は、AI アプリケーションの監視とデバッグのために、W&B Weave や Langfuse などの主要なオブザーバビリティプロバイダーとのすぐに使える統合機能を提供します。
  • LLM の切り替えとシームレスな履歴適応。Koog では、既存の会話履歴を失うことなく、任意の時点で新しいツールセットを持つ別の LLM に切り替えることができます。また、OpenAI、Anthropic、Google など、複数の LLM プロバイダー間の再ルーティングも可能です。Koog と Ollama の統合により、ローカルモデルを使用してローカルでエージェントを実行することもできます。
  • JVM および Kotlin アプリケーションとの統合。Koog は、JVM および Kotlin 開発者向けに特別に設計された、慣用的で型安全な DSL を提供します。
  • Model Context Protocol (MCP) との統合。Koog では、エージェントで MCP ツールを使用できます。
  • 知識の検索とメモリ。エンベディング、ランク付けされたドキュメントストレージ、共有エージェントメモリにより、Koog 自体が会話を通じて能動的に知識を保持します。
  • ストリーミング機能。Koog は、ストリーミングサポートとツールの並列呼び出しにより、開発者がレスポンスをリアルタイムで処理できるようにします。

どこから始めるか

Model Context Protocol (MCP) Kotlin SDK

MCP Kotlin SDK は、Model Context Protocol の Kotlin マルチプラットフォーム実装です。 この SDK を使用すると、開発者は Kotlin で AI 駆動のアプリケーションを構築し、JVM、WebAssembly、iOS にわたる LLM サーフェスと統合できます。

MCP Kotlin SDK を使用すると、以下のことが可能になります。

  • コンテキストの処理を LLM の対話から分離することで、構造化および標準化された方法で LLM にコンテキストを提供できます。
  • 既存のサーバーのリソースを消費する MCP クライアントを構築できます。
  • プロンプト、ツール、リソースを LLM に公開する MCP サーバーを作成できます。
  • stdio、SSE、WebSocket などの標準的な通信トランスポートを使用できます。
  • すべての MCP プロトコルメッセージとライフサイクルイベントを処理できます。

その他の AI 駆動アプリケーションシナリオを探索する

シームレスな Java 相互運用性と Kotlin マルチプラットフォームにより、Kotlin を確立された AI SDK やフレームワークと組み合わせ、バックエンドやデスクトップ/モバイル UI を構築し、RAG やエージェントベースのワークフローなどのパターンを採用できます。

Kotlin-AI-Examples リポジトリのサンプルを探索して実行できます。各プロジェクトは自己完結しています。各プロジェクトを、Kotlin ベースの AI アプリケーションを構築するためのリファレンスやテンプレートとして使用できます。

主要なモデルプロバイダーに接続する

Kotlin を使用して、OpenAI、Anthropic、Google などの主要なモデルプロバイダーに接続します。

  • OpenAI — OpenAI API 用の公式 Java SDK。レスポンス、チャット、画像、オーディオをカバーしています。
  • Anthropic (Claude) — Claude Messages API 用の公式 Java SDK。Vertex AI および Bedrock 統合用のモジュールが含まれています。
  • Google AI (Gemini / Vertex AI) — Gemini API と Vertex AI を切り替える単一のクライアントを備えた公式 Java SDK。
  • Azure OpenAI — Azure OpenAI Service 用の公式 Java クライアント。チャットの補完とエンベディングをサポートしています。
  • AWS Bedrock — 基盤モデルを呼び出すための公式 SDK。Bedrock および Bedrock Runtime 用の Kotlin SDK と Java SDK が含まれています。

RAG パイプラインとエージェントベースのアプリを作成する

  • Spring AI — プロンプト、チャット、エンベディング、ツールと関数の呼び出し、およびベクトルストアのためのマルチプロバイダー抽象化。
  • LangChain4j — プロンプト、ツール、検索拡張生成(RAG)パイプライン、およびエージェントのための Kotlin 拡張機能を備えた JVM ツールキット。

次のステップ