Skip to main content
For a detailed list of all changes, see the Changelog. For details about versioning, see our Versioning Policy.

6.1.25

2026-09-29

Summary

New features

Improvements

New features

Turn Visualize This off entirely

Visualize This can now be switched off entirely, with atoti.ai.chat.enabled=false in the Atoti Java SDK or AiConfig.chat_enabled in the Atoti Python SDK. No chat endpoint is registered, so every call answers 404 and Atoti UI reports chat as absent. This differs from leaving the chat assistant on without an LLM configured, which keeps the endpoints registered and refuses each call. Auto-Explain and the MCP Server are not affected. See Configure Visualize This.

Use tools from other MCP Servers

An instance of the Atoti MCP Server can now connect out to other MCP Servers, typically other Atoti Server instances in the same deployment. It then uses their tools as its own, both in chat and on its own MCP endpoint. A connection is declared under spring.ai.mcp.client.streamable-http.connections.<name>, with an authentication key that selects how it authenticates as the calling user. This requires the Atoti Intelligence Extension tier and the Streamable HTTP transport, since the older server-sent events transport is deprecated for this purpose. In the Atoti Python SDK, AiConfig.mcp takes an HttpMcpServerConfig for a remote server over HTTP, or a StdioMcpServerConfig for a local process. See Connect to other MCP Servers in Python.

Auto-Explain results stay available in chat

The chat assistant can now display the interactive Auto-Explain page of an analysis it ran, alongside the summary it already returned. This requires Atoti UI 5.2.28 or higher. An analysis that already ran can be listed, displayed again, or dropped from the conversation, instead of being run a second time. How many analyses stay retrievable, and for how long, are set with atoti.ai.autoexplain.results.maximum-size and atoti.ai.autoexplain.results.time-to-live. The Atoti Python SDK exposes the same settings as AiConfig.auto_explain_retained_run_count and AiConfig.auto_explain_run_lifetime. See Configure Auto-Explain.

Tool capabilities for the assistant

AI server tool calls are now gated by a read or write capability. atoti.ai.tools.default-mode sets the default capability for every tool, and atoti.ai.tools.capabilities overrides it per tool. This lets an administrator keep the assistant read-only, or open specific tools to writes. See Tool capabilities.

New tools to manage calculated members from chat

The assistant can now create, update, or delete a calculated member through three new tools: createCalculatedMember, updateCalculatedMember, and deleteCalculatedMember. Each one requires the write capability described above, the atoti.ai.tools.experimental switch, and its own entry in the atoti.ai.tools.extra-tools list. All three stay off by default. A fourth tool, retrieveOneCalculatedMember, returns the full definition of one calculated member on a cube. See Tool capabilities for how to enable these tools.

Improvements

Guardrails against runaway AI conversations

Five new properties guard a chat prompt against spinning indefinitely:
  • atoti.ai.prompt-timeout bounds the whole prompt, including every tool call and provider retry. It defaults to 5 minutes. Past it, the run is abandoned and reports a timeout.
  • atoti.ai.max-retry-attempts bounds how many times the LLM provider retries one request. It defaults to 1, counting the first attempt.
  • atoti.ai.max-consecutive-identical-tool-calls stops the model after N rounds in a row asking for the same tool with the same arguments. It defaults to 5.
  • atoti.ai.max-tool-errors stops further tool calls after N have failed within one prompt, retries included. It defaults to 5.
  • atoti.ai.max-consecutive-refused-rounds ends the run after N rounds in a row that used no tool at all. It defaults to 3.
Each guard property is validated at startup. A value no prompt could work within stops the application from starting, instead of surfacing on someone’s first question. A client that stops listening now cancels the run behind it, instead of the whole prompt continuing with nobody left to read the answer. The Atoti Python SDK exposes the same guards through AiConfig. See Retries and timeouts.

Visualize This and Auto-Explain now version independently

Visualize This and Auto-Explain each now have their own REST namespace: activeviam/ai/chat for Visualize This, and activeviam/ai/autoexplain for Auto-Explain. Both are advertised on the /versions endpoint, and their payloads are unchanged from the endpoints they replace. The combined activeviam/ai namespace that served both features is deprecated in favor of the two namespaces above, but keeps answering exactly as before. Existing applications and Atoti UI need no change. See the migration notes.

6.1.24

2026-08-13

Summary

Improvements

Fixes

Improvements

Opt out of dynamic tool discovery

Version 6.1.23 made Visualize This discover its tools on demand rather than sending the whole tool set to the model at the start of a conversation. Dynamic tool discovery remains the default, but it can now be turned off when a deployment prefers the previous behaviour, for example to compare answer quality or to work around a model that handles the search tool poorly. Set spring.ai.chat.client.tool-search-advisor.enabled=false in Java, or AiConfig.dynamic_tool_discovery in the Atoti Python SDK. See Configure Visualize This.

Fixes

Clearer reporting when the license does not enable AI

A license that does not enable the AI components is now reported at startup. When an Atoti AI module is on the classpath but the license misses the ai-essentials component, a warning explains that the /activeviam/ai REST service is not registered. This previously surfaced only in Atoti UI, as “Unable to find the AI service on any of the servers”, with nothing in the server logs to explain it. The ai-extension component is reported the same way when the MCP Server starter is present.

MCP Server stays off without the Atoti Intelligence SDK tier

A license without the ai-extension component now keeps the MCP Server off even when the application sets spring.ai.mcp.server.enabled=true. The tier check is applied at the highest property precedence, so it can no longer be overridden from application.yml, an environment variable or a command-line argument. A license enabling ai-extension without ai-essentials no longer starts the MCP Server either, as the Atoti Intelligence SDK offer builds on Atoti Intelligence Essentials.

Reverse proxies no longer buffer the chat event stream

AG-UI streaming responses now carry X-Accel-Buffering: no and Cache-Control: no-cache, no-transform so that reverse proxies do not buffer or compress the event stream. A buffering proxy delivered the tool-call events to the browser only at the end of the run, so client tools always hit the server-side timeout. Client tool timeouts, stale tool results and retried chat prompts are now logged. See Monitoring.

6.1.23

2026-07-09

Summary

Improvements

Fixes

Improvements

Auto-Explain configuration from the Atoti Python SDK

Auto-Explain can now be configured directly from the Atoti Python SDK. Cube.auto_explain exposes the tuning constants: drill-down depth, contribution and variation thresholds, and entropy and member limits. Hierarchies can also be included in or excluded from the analysis, both overall and for individual measures. See Set up Auto-Explain in Python.

Visualize This configuration from the Atoti Python SDK

The chat assistant can now be configured directly from the Atoti Python SDK. Session.chat exposes the chat configuration, including the ability to read and customize the system prompt. See Set up Visualize This in Python.

Root-cause analysis without an LLM

Auto-Explain’s root-cause members, contribution percentages, and contribution tables are now always available without any AI provider configured. An LLM is only needed to generate the optional AI summary. See Set up Auto-Explain in Python.

More efficient tool selection in Visualize This

Visualize This now discovers the tools it needs on demand instead of loading the full tool set at the start of a conversation. This reduces token consumption and improves how the assistant selects the right tool for a request.

Fixes

Chat filters now include their members

Filters added by the assistant during a conversation now reliably resolve their members in the cube. Previously, some filters could be added without members, which prevented them from taking effect.

6.1.22

2026-06-18 No changes were made since the last release.

6.1.21

2026-06-17 No changes were made since the last release.

6.1.20

2026-05-29

Summary

New features

Improvements

New features

Customizable AI disclaimer

LLM-generated content can be inaccurate. To help organizations meet compliance and end-user transparency requirements, Atoti Intelligence now returns a disclaimer with every AI response, displayed in the UI alongside the answer. A default disclaimer is used when none is configured, and the text can be tailored per deployment. See Set up a custom disclaimer in Java or in Python.

MCP credentials page

A new page bundled with starter-ai-mcp-server lets users sign in to Atoti and mint an OAuth token to connect their MCP client (Claude Desktop, Postman, etc.) to the Atoti MCP Server. The page streamlines onboarding by replacing manual token generation steps with a guided flow. See MCP credentials page.

Auto-Explain available from Visualize This

Auto-Explain is now exposed as a Spring AI tool that Visualize This can invoke during a chat conversation. Users can ask the assistant to explain a variation or contribution from within the same chat, without switching to a separate Auto-Explain view. See How to set up Visualize This in Java or in Python.

Improvements

Observability for Auto-Explain and Visualize This

Both Auto-Explain and Visualize This now emit OpenTelemetry spans and metrics covering the full request lifecycle — request handling, recursive analysis, summary generation, conversation lifecycle, prompt execution and tool invocations. This makes it possible to monitor performance, debug failures and understand cost in production. See Monitoring.

Richer AI cube descriptions

Cube descriptions sent to the LLM in Visualize This now include XMLA properties and nest dimension, hierarchy and level descriptions under their parent. The model receives a structured, more accurate picture of the cube, which improves the quality of its responses to discovery and analytical questions. See How to configure Visualize This.

Spring AI upgraded to 1.1.6

Atoti Intelligence now depends on Spring AI 1.1.6 (up from 1.1.2), picking up upstream bug fixes and chat-model improvements. See Compatibility.

Atoti starts without an AI license

When an application is started with a license that does not include the AI feature, Atoti now logs an informational message and continues startup instead of throwing. Non-AI features remain available, making the AI starters safe to include in applications regardless of license content.

AI configuration from the Atoti Python SDK

SessionConfig in the Atoti Python SDK now handles AI properties, so AI connection and chat options can be configured directly from Python alongside the rest of the session configuration.