❯ Guillaume Laforge

Java

A Javelit Frontend for the Deep Research Agent

A month ago, I wrote about building a research assistant in Java, using the Gemini Interactions API, and the Deep Research agent. Today I wanted to revisit this project, but with the goal to make it more user-friendly, with a Javelit based frontend.

The Research Pipeline: From Query to Infographic

  • First, the user enters the subject of the research.
  • A button action triggers the research of possible topics about that subject (ie. the different possible facets or angles of the subject), using Gemini 3 Flash with Google Search activated.
  • The user selects the facets they’re interested in, to restrict the research to only those aspects.
  • Then the Deep Research agent kicks in, via the Gemini Interactions API, and spends a few minutes researching the topic.
  • Once the final report is ready, Gemini 3 Pro creates a solid summary.
  • The summary is used to generate a sketchnote with Nano Banana Pro.

A Look at the User Interface

Let’s say, as a user, I want to research information about the OpenClaw / MoltBot / ClawdBot personal AI assistant (unless it has again changed its name? 😃)

Read more...

Implementing an arXiv MCP Server with Quarkus in Java

For my recent presentation at SnowCamp on AI Standards & Protocols for AI Agents, I decided to build an MCP server to access the arXiv research paper website where pre-print versions are published and shared with the community.

My goal was to shed light on some lesser-known aspects of the Model Context Protocol:

  • 🛠️ While the majority of MCP servers use the tools feature to expose actions that LLMs can request to call,
  • 📄 An MCP server can also share resources (and resource templates), exposing various static assets the AI app might be interested in,
  • ✏️ And prompts (and prompt templates) that users can access and reuse to utilize the MCP server effectively.
Info

For the impatient, feel free to go straight to the GitHub repository for the full source code. The README.md file gives instructions on how to build, run, configure, and use the server.

Read more...

On AI Standards and Protocols: Focus on MCP and A2A

At SnowCamp 2026, with my Cast Codeurs buddy Emmanuel Bernard of Hexactgon, I had the chance to deliver a talk on AI standards and protocols, with a big focus on MCP (Model Context Protocol), and A2A (Agent 2 Agent Protocol).

Without further ado, here’s the slide deck we presented:

This talk is based on the Devoxx 2025 deep dive session that I delivered with Emmanuel and my colleague Mete Atamel. As the talk wasn’t recorded during SnowCamp, I’ll share with you the 3h-long video from Devoxx below:

Read more...

Building a Research Assistant with the Interactions API in Java

First of all, dear readers, let me wish you a happy new year! This is my first post on this blog for 2026. I’m looking forward to continuing sharing interesting content with you.

During my holiday break, I wanted to put my recent Java implementation of the Gemini Interactions API to the test. I implemented and released it with the help of Antigravity. My colleague Shubham Saboo and Gargi Gupta wrote a tutorial on how to build an AI research agent with Google Interactions API & Gemini 3. I thought this was a great opportunity to replicate this example in Java using my Interactions API Java SDK.

Read more...

Implementing the Interactions API with Antigravity

Google and DeepMind have announced the Interactions API, a new way to interact with Gemini models and agents.

Here are some useful links to learn more about this new API:

About the Interactions API

The Rationale and Motivation

The Interactions API was introduced to address a shift in AI development, moving from simple, stateless text generation to more complex, multi-turn agentic workflows. It serves as a dedicated interface for systems that require memory, reasoning, and tool use. It provides a unified interface for both simple LLM calls and more complex agent calls.

Read more...

Driving a web browser with Gemini's Computer Use model in Java

In this article, I’ll guide you through the process of programmatically interacting with a web browser using the new Computer Use model in Gemini 2.5 Pro. We’ll accomplish this in Java ☕ leveraging Microsoft’s powerful Playwright Java SDK to handle the browser automation.

The New Computer Use Model

Unveiled in this announcement article and made available in public preview last month, via the Gemini API on Google AI Studio and Vertex AI, Gemini 2.5 Pro introduces a pretty powerful “Computer Use” feature.

Read more...

A Javelit frontend for an ADK agent

Continuing my journey with Javelit, after creating a frontend for “Nano Banana” to generate images and a chat interface for a LangChain4j-based Gemini chat model, I decided to see how I could integrate an ADK agent with a Javelit frontend.

The Javelit interface for an ADK search agent

A Javelit interface for an ADK search agent
A Javelit interface for an ADK search agent

Read more...

Creating a Javelit chat interface for LangChain4j

Yesterday, I uncovered the Javelit project in this article where I built a small frontend to create and edit images with Google’s Nano Banana image model.

Javelit

Javelit is an open source project inspired by Streamlit from the Python ecosystem to enable rapid prototyping and deployment of applications in Java.

Read more...

Javelit to create quick interactive app frontends in Java

Have you ever heard of Javelit? It’s like Streamlit in the Python ecosystem, but for the Java developer! I was lucky that the project creator reached out and introduced me to this cool little tool!

Javelit is a tool to quickly build interactive app frontends in Java, particularly for data apps, but it’s not limited to them. It helps you quickly develop rapid prototypes, with a live-reload loop, so that you can quickly experiment and update the app instantly.

Read more...

Building AI Agents with ADK for Java

At Devoxx Belgium, I recently had the chance to present this new talk dedicated to ADK for Java, the open source Agent Development Kit framework developed by Google.

The presentation covered:

  • an introduction to the notion of AI agents
  • how to get started in a Java and Maven project
  • how to create your first agent
  • how to debug an agent via the Dev UI
  • the coverage of the various tools (custom function tools, built-in tools like Google Search or code execution, an agent as tool, MCP tools)
  • an overview of the different ways to combine agents into a multi-agent system: sub-agents, sequential agents, parallel agents, loop agents
  • some details on the event loop and services (session and state management, artifacts, runner…)
  • structured input / output schemas
  • the various callbacks in the agent lifecycle
  • the integration with LangChain4j (to give access to the plethora of LLMs supported by LangChain4j)
  • the definition of agents via configuration in YAML
  • the new long-term memory support
  • the plugin system
  • the new external code executors (via Docker containers or backed by Google Cloud Vertex AI)
  • how to launch an agent with the Dev UI from JBang

Slides of the presentation

The slide deck of this session is embedded below:

Read more...