# Adding embeddings/RAG support to the Koog-based AI agent in Confetti

DevFeed: [Adding embeddings/RAG support to the Koog-based AI agent in Confetti](<https://devfeed.tech/articles/adding-embeddings-rag-support-to-the-koog-based-ai-agent-in-confetti-25191.md>)

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

Published: 2026-05-25T23:00:00Z

Content type: tutorial

Language: en

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

Topics: [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Embeddings](<https://devfeed.tech/topics/embeddings.md>), [Retrieval-Augmented Generation](<https://devfeed.tech/topics/retrieval-augmented-generation.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [embeddings](<https://devfeed.tech/tags/embeddings.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [rag](<https://devfeed.tech/tags/rag.md>)

## AI overview

This tutorial explains how to add semantic search to the Koog-based AI agent in the Confetti Compose Multiplatform sample. It uses embeddings and retrieval-augmented generation to find related conference sessions even when query wording differs from session titles or descriptions.

## Source excerpt

Recently I started looking at reworking the recommendation feature in the Confetti Compose Multiplatform sample (which uses Apollo Kotlin to consume a GraphQL API serving data for various conferences). The new implementation uses a Koog AIAgent with a ToolRegistry that includes session and speaker tools, giving the LLM on-demand access to the conference data it needs.