Sign in

CrAIg Walls

@habuma.com
1.6K followers 169 following 331 posts

Java Champion / Alexa Champion / Author of “Spring AI in Action”, “Spring in Action” & “Build Talking Apps for Alexa”/ Disney Parks Fanatic/ tabletop games player. www.habuma.com

PostsRepliesMedia
CrAIg Walls @habuma.com · 28/09/2026
Why should a Java-based STDIO MCP server need a build step before a client can run it? With JBang, it doesn’t. You can build Spring AI MCP servers and clients that run straight from Java source. medium.com/@thetalkinga... #SpringAI #MCP #JBang #Java #SpringBoot
020
Reposted by CrAIg Walls
Spring AI @spring-ai.bsky.social · 25/09/2026
Spring AI 2.1.0-M1 is out 🍃 🧩 Message parts: ordered text, reasoning, tool calls & media 🤖 OpenAI Responses API: reasoning + tool calling on GPT-5.4+ 📥 VectorStore.upsert() for pre-computed embeddings Feedback welcome 👇 spring.io/blog/2026/09... #SpringAI #Java
122
CrAIg Walls @habuma.com · 24/09/2026
What if you could run a Spring AI application without a Maven or Gradle project? In this Spring AI Recipe, see how JBang turns a few Java files into a runnable Spring AI chat loop. medium.com/@thetalkinga... #SpringAI #Java #JBang #SpringBoot
001
CrAIg Walls @habuma.com · 21/09/2026
Fact-checking an entire AI response can hide unsupported claims. What if you decompose the response and fact-check each claim individually? medium.com/@thetalkinga... #SpringAI #Java #AIEvaluation #FactChecking
000
Reposted by CrAIg Walls
Christian Tzolov @tzolov.bsky.social · 21/09/2026
Java SDK + Spring AI integrations for #TypeSafe AI's #Jev. Not a chat model! Send it a state and typed questions, get numbers back with a confidence, in ~300 ms. Judge, self-refine + guardrail advisors, RAG triage, tool selection. Blog: spring.io/blog/2026/09... @spring-ai.bsky.social
254
CrAIg Walls @habuma.com · 17/09/2026
Even when an LLM has all the facts it needs, it can still get them wrong. Let's explore FactCheckingEvaluator and discover why fact-checking AI responses isn't always as straightforward as it seems. medium.com/@thetalkinga... #SpringAI #Java #AIEvaluation #FactChecking
000
CrAIg Walls @habuma.com · 14/09/2026
Securing an MCP server with an API key is easy, but sometimes you need something more robust. In this recipe, we’ll put OAuth 2.0 to work with Spring AI to secure an MCP server. medium.com/@thetalkinga... #SpringAI #MCP #OAuth2 #SpringSecurity #Java #AgenticAI
020
CrAIg Walls @habuma.com · 10/09/2026
Chat memory helps an AI remember what you've talked about. But the longer the conversation, the more context it has to carry around. What if it could remember the important stuff without remembering every word? medium.com/@thetalkinga... #SpringAI #Java #GenerativeAI #ChatMemory
000
CrAIg Walls @habuma.com · 07/09/2026
How local can a local LLM get? With ModelJars and Models, you can skip the model server entirely and run inference inside the same JVM as your Spring AI application. See how in this Spring AI Recipe! medium.com/@thetalkinga... #SpringAI #Java #LocalLLM #GenerativeAI #ModelJars
110
CrAIg Walls @habuma.com · 03/09/2026
Want to run Spring AI against a local LLM? This recipe shows how to use open-weight models with LM Studio, Docker Model Runner, and Ollama, with surprisingly few changes to your app. 🔗 medium.com/@thetalkinga... #SpringAI #Java #LocalLLM #GenAI
021
CrAIg Walls @habuma.com · 31/08/2026
As your AI application gains more tools, do you really need to send all of them to the LLM on every request? In this Spring AI Recipe, I show how ToolSearchTool discovers the right tools on demand, keeping prompts lean as your toolbox grows. medium.com/@thetalkinga... #SpringAI #Java #AgenticAI
100
CrAIg Walls @habuma.com · 27/08/2026
Retrieval found the documents. But are they really the best documents to put in your prompt? In this Spring AI Recipe, we apply reranking to ensure the most relevant context. medium.com/@thetalkinga... #SpringAI #Java #RAG #Reranking #GenerativeAI
020
CrAIg Walls @habuma.com · 27/08/2026
This is incredibly cool!
000
CrAIg Walls @habuma.com · 24/08/2026
Vector search understands what you mean. BM25 finds the exact terms you use. Why choose? In this Spring AI Recipe, we combine them with hybrid search and Reciprocal Rank Fusion to get the best of both worlds. medium.com/@thetalkinga... #SpringAI #RAG #HybridSearch #BM25 #Java
000
CrAIg Walls @habuma.com · 20/08/2026
In today's Spring AI Recipe, we see how playing "HyDE and seek" gives better results from RAG queries. medium.com/@thetalkinga... #SpringAI #Java #RAG #HyDE #GenAI
020
CrAIg Walls @habuma.com · 17/08/2026
You don't need a full-blown agent framework to build an agent. If you've used Spring AI's ChatClient with tools, you may already be using one of the most fundamental agentic patterns: ReAct. See how in today's Spring AI Recipe. medium.com/@thetalkinga... #SpringAI #Java #AgenticAI #ReAct #AIAgents
010
CrAIg Walls @habuma.com · 16/08/2026
Finally cracked open this game last night with 7 friends. Accusations and deception were the mood for an hour or so. In the end, after 4 nights (in game nights), the witches were victorious.
000
CrAIg Walls @habuma.com · 14/08/2026
I've upgraded the code for my Spring AI recipes that cover Embabel to build against Embabel 1.5.0 (and therefore, Spring Boot 4.1.0). Enjoy! - Embabel recipes: www.habuma.com/springaireci... - Recipes code: github.com/habuma/sprin... #SpringAI #Embabel #SpringBoot #AgenticAI
020
CrAIg Walls @habuma.com · 13/08/2026
Graph-based workflows give you explicit control over how an agent moves from one task to the next. In this recipe, see how to build graph-based workflows with LangGraph4j and Spring AI. medium.com/@thetalkinga... #SpringAI #LangGraph4j #AgenticAI #Java
020
CrAIg Walls @habuma.com · 11/08/2026
Vector similarity finds what’s relevant. Metadata filtering makes sure your RAG pipeline finds what’s relevant and applicable. This Spring AI Recipe shows how to filter vector searches using document metadata. medium.com/@thetalkinga... #SpringAI #Java #RAG #VectorSearch #GenAI
000
CrAIg Walls @habuma.com · 10/08/2026
Today's Spring AI recipe is giving me some technical challenges. As such, I find myself delaying publication of the recipe until I sort out the issues. I hope that you'll accept my apologies for the delay. I hope to get it working and publish the recipe tomorrow.
110
CrAIg Walls @habuma.com · 06/08/2026
Claude Code isn't the only place you can use Markdown-defined subagents. In this week's Spring AI Recipe, learn how to create Claude-style subagents and wire them into Spring AI with TaskTool. thetalkingapp.medium.com/spring-ai-re... #SpringAI #Java #AgenticAI #AIAgents #LLM
010
CrAIg Walls @habuma.com · 03/08/2026
When mixing chat memory with RAG, follow-up questions make perfect sense to people, but not to your vector store. This recipe shows how to make RAG conversation-aware by folding chat history into retrieval queries. medium.com/@thetalkinga... #SpringAI #RAG #Java #LLM #VectorSearch #GenAI
020
CrAIg Walls @habuma.com · 30/07/2026
RAG doesn't have to mean deploying another database. Learn how to build a Spring AI RAG application using an in-JVM vector store. No separate vector database required. medium.com/@thetalkinga... #SpringAI #SpringBoot #Java #RAG #VectorSearch
021
CrAIg Walls @habuma.com · 27/07/2026
Whiteboard sketches are great, but do they match the graph your code actually builds? This recipe shows how to generate diagrams directly from a Spring AI Alibaba CompiledGraph. medium.com/@thetalkinga... #SpringAI #SpringBoot #Java #AgenticAI #GraphEngineering
000
CrAIg Walls @habuma.com · 25/07/2026
I did something new today. Can you picture that?
020
CrAIg Walls @habuma.com · 25/07/2026
The 2nd day of my brief 2 day WDW trip finds me hanging out with these gents…
000
CrAIg Walls @habuma.com · 24/07/2026
My “workplace” for today…
230
CrAIg Walls @habuma.com · 23/07/2026
It seems that “graph engineering” is the new hot term lately. To see how it can be done with Spring AI, may I refer you to some articles I wrote in May: - thetalkingapp.medium.com/spring-ai-re... - thetalkingapp.medium.com/spring-ai-re... - thetalkingapp.medium.com/spring-ai-re...
000
CrAIg Walls @habuma.com · 23/07/2026
Your chat memory isn't limited to JDBC. This Spring AI Recipe shows how to persist conversations with Redis, Cassandra, and MongoDB using Spring Boot auto-configuration. medium.com/@thetalkinga... #SpringAI #SpringBoot #Java #Redis #MongoDB #Cassandra
011
CrAIg Walls @habuma.com · 20/07/2026
Keep your AI's memory alive across restarts. Learn how to persist Spring AI chat memory with JDBC and PostgreSQL so conversations survive and can be shared across application instances. medium.com/@thetalkinga... #SpringAI #SpringBoot #Java #PostgreSQL #JDBC #LLM #GenAI
022
CrAIg Walls @habuma.com · 17/07/2026
Last night, @dhinojosa.bsky.social , @dashaun.com , @mgrygles.bsky.social , and I played Fantastic Factories. It was the first time playing it for all of us, so there was some learning along the way. But I think we all agreed that it lived up to the word “Fantastic” in its name. #NerdsPlayingGames
0100
CrAIg Walls @habuma.com · 16/07/2026
In this recipe, you’ll learn how to invoke an Embabel agent directly from Java code, making it easy to integrate intelligent, goal-oriented behavior into any Spring application. medium.com/@thetalkinga... #SpringAI #Embabel #Java #SpringBoot #AgenticAI #AI
012
CrAIg Walls @habuma.com · 13/07/2026
Keyword filtering is fast, but it’s also easy to fool. In this recipe, you’ll build a semantic guardrail for Spring AI that uses an LLM to recognize forbidden topics. medium.com/@thetalkinga... #SpringAI #SpringBoot #Java #LLM #Guardrails
011
Reposted by CrAIg Walls
dev2next.bsky.social @dev2next.bsky.social · 06/07/2026
Python popularized GenAI, but enterprise Java doesn’t need to switch stacks 🤖 @habuma.com introduces Spring AI for Spring Boot—making LLM integration simple with familiar patterns and real data-driven use cases 🔗https://www.dev2next.com/speaker/4b0fe5fcc3d74f829dfbc6c5a915c2e2 🎟️ www.dev2next.com
022
CrAIg Walls @habuma.com · 09/07/2026
SafeGuardAdvisor blocks risky prompts. Now block risky responses. Build a custom Spring AI advisor that filters LLM output before it reaches your application. medium.com/@thetalkinga... #SpringAI #SpringBoot #Java #SpringAIRecipes #LLM #Guardrails
021
CrAIg Walls @habuma.com · 06/07/2026
A system prompt can ask an AI to stay within certain boundaries, but it can't enforce them. In this recipe, you'll learn how Spring AI's SafeGuardAdvisor stops forbidden prompts before they ever reach the LLM. medium.com/@thetalkinga... #SpringAI #Java #LLM #Guardrails
021
CrAIg Walls @habuma.com · 04/07/2026
Happy 4th day of the 7th month of the year… youtu.be/eXeIxtI--uc
youtu.be
Stars & Stripes FOREVER! | Muppet Music Video | The Muppets
YouTube video by The Muppets
000
CrAIg Walls @habuma.com · 02/07/2026
Structured output is great...until your LLM decides to return Markdown instead of JSON. In this Spring AI recipe, learn how to validate and retry structured responses for more reliable results. medium.com/@thetalkinga... #SpringAI #Java #LLM #GenAI #OpenAI
021
CrAIg Walls @habuma.com · 29/06/2026
Three months ago I started the Spring AI Recipes series. Since then I've published 35+ hands-on recipes covering Spring AI, MCP, agents, Embabel, graph workflows, and more. Starting this week, the series moves to a Monday/Thursday schedule. Thanks for following along! 🌱
010
CrAIg Walls @habuma.com · 29/06/2026
Why limit your application to a single LLM? In this recipe, we'll configure Spring AI to talk to multiple AI providers and choose the right one at runtime. medium.com/@thetalkinga... #SpringAI #SpringBoot #Java #LLM #OpenAI #Anthropic
011
CrAIg Walls @habuma.com · 26/06/2026
As Embabel agents grow, a single class full of action methods can become hard to navigate. This recipe shows how to model an agent's workflow, making each phase easier to understand and extend. medium.com/@thetalkinga... #SpringAI #Java #Embabel #AIAgents #AgenticAI
021
CrAIg Walls @habuma.com · 24/06/2026
Sometimes the smartest thing an AI agent can do is admit it doesn’t know. In this recipe, you’ll learn how to pause an Embabel agent, ask a human for clarification, and then continue toward its goal with the new information. medium.com/@thetalkinga... #SpringAI #Embabel #AIAgents #HumanInTheLoop
010
CrAIg Walls @habuma.com · 22/06/2026
What if your agent could figure out its own plan instead of following a predefined workflow? That’s the idea behind Embabel. In this recipe, you’ll create a simple goal-driven agent using Embabel. medium.com/@thetalkinga... #SpringAI #Embabel #AIAgents #MCP #Java
021
CrAIg Walls @habuma.com · 19/06/2026
Learn how to use ElevenLabs with Spring AI, unlocking a vast library of high-quality voices that can give your application its own unique personality. medium.com/@thetalkinga... #SpringAI #Java #ElevenLabs #VoiceAI #GenAI
021
CrAIg Walls @habuma.com · 17/06/2026
Talking to an AI application feels surprisingly natural, until it answers with a wall of text. In this recipe, you’ll enable your Spring AI application to speak its responses aloud. medium.com/@thetalkinga... #SpringAI #Java #SpringBoot #OpenAI #VoiceAI #TextToSpeech
031
CrAIg Walls @habuma.com · 15/06/2026
Why type your prompts when you can just say them out loud? In this recipe, we'll add voice input to our chat loop by recording audio from the microphone and transcribing it into text with Spring AI. medium.com/@thetalkinga... #SpringAI #Java #SpeechToText #VoiceAI #GenAI
020
CrAIg Walls @habuma.com · 15/06/2026
Heads up: Big changes to tool use in Spring AI 2.0.0.
011
CrAIg Walls @habuma.com · 12/06/2026
From my Spring AI "Test Kitchen": Traditional RAG retrieves context for every question, whether it’s needed or not. In this recipe, we'll let the LLM decide whether or not to query the vector store. #SpringAI #RAG medium.com/@thetalkinga...
011
Reposted by CrAIg Walls
Spring AI @spring-ai.bsky.social · 12/06/2026
🚀 Spring AI 2.0.0 GA is now available! 🏗️ Improved foundations: Spring Boot 4 baseline, null-safety, Jackson 3, re-designed options 🤖 Agentic improvements: unified tool calling, tool search, self-correcting output 🔌 MCP 2025-11-25 spec integration spring.io/blog/2026/06...
spring.io
Spring AI 2.0.0 GA Available Now
Level up your Java code and explore what Spring can do for you.
086