Blog

Luis Majano

June 19, 2025

Spread the word


Share your thoughts

We’re excited to announce the release of BoxLang AI v1.2, a major update to the BoxLang AI module that powers intelligent applications with a unified AI abstraction layer across even more providers: OpenAI, Claude, Grok, Gemini, and more. This release packs new features for providers, tools, debugging, and customization — making it easier than ever to build multi-runtime, AI-driven BoxLang and CFML applications.

🎉 What’s New in v1.2

✅ Claude Support

We’ve upgraded our Claude support to the claude-sonnet-4-0 model — now used as the default for Anthropic requests.

🛠 New Tooling APIs

We’ve added powerful capabilities to the Tool object:

  • getArgumentsSchema(): Generate and return a tool’s argument schema in real-time — perfect for OpenAI-style function calling and prompt introspection.
  • Fallback message for OpenAI: If no tools are available locally, the system provides a helpful OpenAI fallback tool message.

💬 Smarter Message Handling

  • New method: ChatMessage.getNonSystemMessages() — get all non-system messages in one call.
  • The ChatRequest object now retains a reference to the original ChatMessage object, giving you full context inside your requests.

🐞 Easier Debugging

Quickly debug what’s being sent and received by the AI provider: • logRequestToConsole • logResponseToConsole

⚙️ New Config Options

You now have more control than ever with these new global options in your boxlang.json:

"logRequest": false,
"logResponse": false,
"timeout": 30,
"returnFormat": "single"

🧪 New Gradle Build System

We’ve modernized the BX-AI build system with the latest Gradle wrapper for faster builds and better cross-platform compatibility.

💡 CFML Compatibility

BX-AI 1.2 introduces better backwards compatibility with ColdFusion and Lucee runtimes.

⚡️ New Event: onAIResponse

The new onAIResponse event lets you intercept or modify AI responses — perfect for implementing analytics, filters, or audits.

🧪 Real-World Tool Example

BX-AI’s Tool system lets you expose local functions as callable tools for AI providers like Claude or OpenAI.

Here’s a real-world example of a temperature lookup tool using aiTool():

weatherTool = aiTool(
	"get_weather",
	"Get current temperature for a given location.",
	location => {
		switch( location.toLowerCase() ) {
			case "kansas city": return "85°F";
			case "san salvador": return "90°F";
			default: return "unknown";
		}
	})
	.describeLocation( "City and country, e.g. 'San Salvador, El Salvador'" );

result = aiChat( "Which city is hotter: Kansas City or San Salvador?", {
	tools: [ weatherTool ],
	model: "gpt-4",
	seed: 42
} )

println( result )

You can also inspect your tool’s schema dynamically:

println( weatherTool.getArgumentsSchema() )

This allows the AI provider to understand the tool’s purpose and expected input — enabling OpenAI function calling or Claude tool selection intelligently.

📦 Install / Upgrade

install-bx-module bx-ai

Or update via:

update-bx-module bx-ai

Then configure your provider and logging in boxlang.json.

🔮 Looking Ahead

BX-AI 1.2 lays the foundation for more features coming soon:

  • More tooling support
  • More providers
  • Image ease of use
  • MCP framework
  • Server Side Events
  • Chat Streaming

Stay tuned for more AI innovation in the BoxLang ecosystem!

📚 View full documentation, providers, and examples at: 👉 https://boxlang.ortusbooks.com/boxlang-framework/modularity/ai 🙏 Want to support BoxLang and BX-AI? Become a sponsor: https://www.patreon.com/ortussolutions 🙏 Or purchase a BoxLang +/++ License: https://boxlang.io/plans 📰 Subscribe to our newsletter for exclusive content.

Resources

Looking for more information, support, or community engagement? Check out the following resources:

Professional Open Source

BoxLang is a professional open-source product, with three different licences:

  1. Open-Source Apache2
  2. BoxLang +
  3. BoxLang ++

BoxLang is free, open-source software under the Apache 2.0 license. We encourage and support community contributions. BoxLang+ and BoxLang ++ are commercial versions offering support and enterprise features. Our licensing model is based on fairness and the golden rule: Do to others as you want them to do to you. No hidden pricing or pricing on cores, RAM, SaaS, multi-domain or ridiculous ways to get your money. Transparent and fair.

BoxLang Subscription Plans

BoxLang is more than just a language; it's a movement.

Join us and redefine development on the JVM Ready to learn more? Explore BoxLang's Features, Documentation, and Community.

Add Your Comment

Recent Entries

Introducing BoxLang AI Explorer: A Local Catalog for Every AI Pattern

Introducing BoxLang AI Explorer: A Local Catalog for Every AI Pattern

Learning a new AI API usually means jumping between scattered documentation pages, guessing at imports, and copy-pasting code that may or may not still work. We wanted something better for BoxLang AI, so we built the BoxLang AI Explorer: a local, browser-based catalog of runnable BoxLang AI examples, organized by category and difficulty, each with guidance, source code, and sample output.

Luis Majano
Luis Majano
August 14, 2026
Community Spotlight: BoxLang Express Brings Node-Style HTTP to the JVM

Community Spotlight: BoxLang Express Brings Node-Style HTTP to the JVM

If you've spent years in Spring Boot, Micronaut, or Jakarta EE, "web framework" usually means a servlet container, an embedded Tomcat or Netty, a build step, and a fat jar before anything answers a request. What if you could skip all of that and still be on the JVM?

Luis Majano
Luis Majano
August 12, 2026