# Adding a Koog AI assistant (with structured output) to the FantasyPremierLeague CMP sample

DevFeed: [Adding a Koog AI assistant (with structured output) to the FantasyPremierLeague CMP sample](<https://devfeed.tech/articles/adding-a-koog-ai-assistant-with-structured-output-to-the-fantasypremierleague-cmp-sample-25194.md>)

Original publisher: [Read original article](<https://johnoreilly.dev/posts/fpl-koog-structured-output/>)

Published: 2026-07-27T23:00:00Z

Content type: tutorial

Language: en

Sources: [John O'Reilly](<https://devfeed.tech/sources/john-o-reilly.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [jetbrains](<https://devfeed.tech/topics/jetbrains.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [framework](<https://devfeed.tech/tags/framework.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [llm](<https://devfeed.tech/tags/llm.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>)

## AI overview

This tutorial adds a Koog-powered AI assistant to a FantasyPremierLeague Compose Multiplatform sample. It uses structured output to return typed player and fixture IDs, allowing the app to render cards and resolve references against its existing data.

## Source excerpt

Koog is JetBrains' Kotlin framework for building AI agents. In this article we're going to use it to add an in-app "FPL Assistant" to the FantasyPremierLeague Compose Multiplatform sample. This is a chat screen where you can ask about players, fixtures and mini-league standings. The answers render as player and fixture cards rather than just as text.