Jmix gives its warehouse AI agent write access: security and auditing
The second part of the article on the Jmix warehouse AI agent built on Spring AI gives the agent permission to modify data, not just read it. The developers work through which user a tool actually runs as, how to handle transactions, how to audit actions the model initiates, and how to work with the domain model without manually listing entities in the prompt. These are exactly the issues that separate a demo from production.
AI-processed from Habr AI; edited by Hamidun News
The developers behind the Jmix platform have published the second part of their article on a warehouse AI agent built on Spring AI, Habr reports. This time, the agent can modify data, not just read it, and the authors cover security, auditing, and working with the business model.
What was in the first part
In the first part, the team built a read-only agent inside a Jmix application. A user asks a question in natural language, and Spring AI's ChatClient runs the agent loop, calling @Tool methods until it has gathered enough data to answer.
- The read-only agent from the first part answers user questions in natural language
- Each tool reads data through DataManager with an explicit fetch plan
- This approach stays almost entirely within Jmix's security system and returns only the fields the model needs
- The agent's UI is a regular Jmix view, with no REST layer
- The authors specifically note that a model without reliable native tool calling breaks the entire agent workflow
What questions came up with write access?
Once the agent could change data rather than just read it, questions surfaced that neither the Spring AI documentation nor most agent tutorials usually address. Which user does a model-invoked tool actually run as? How do you handle transactions when the model calls several tools in a row? How do you audit actions initiated by the AI rather than directly by a human? And how do you get the agent to work with the application's domain model without manually listing every entity in the system prompt?
According to the authors, these aren't cosmetic tweaks. They are exactly the decisions that separate a demo prototype from an application you can show a customer — a system ready for real-world use in a warehouse.
What this means
The move from a read-only agent to a write agent shows that the hardest part of building AI agents for business applications isn't getting the model to call tools. It's identity, transactional integrity, and auditing — and without them, letting a model modify data is simply unsafe.
FAQ
What could the AI agent from the first part do?
It was read-only: it answered user questions about the warehouse in natural language, calling @Tool methods through Spring AI's ChatClient while staying within Jmix's security system.
What questions does the second part cover?
Which user a tool runs as, how to handle transactions across a chain of calls, how to audit actions initiated by the model, and how to work with the domain model without manually listing entities in the prompt.
- Nov 2, 2026DeepSeek Open-Sources Super-agent Prototype: p95 Task Time Drops from 29.5 to 15.7 Minutes
- Nov 2, 2026LLM Agent Built a Gearbox in KOMPAS-3D, but Scored Only 50 out of 100 on the Specification
- Nov 2, 2026Agents ignored the prompt to read memory in 7 of 7 sessions: an analysis of 13 thousand logs
- Nov 2, 2026Karpathy Built HackerTube, a Catalog of 6,454 Videos, in Two Hours with Claude Code
Key Questions Answered
What questions came up with write access?
Once the agent could change data rather than just read it, questions surfaced that neither the Spring AI documentation nor most agent tutorials usually address. Which user does a model-invoked tool actually run as? How do you handle transactions when the model calls several tools in a row? How do you audit actions initiated by the AI rather than directly by a human? And how do you get the agent to work with the application's domain model without manually listing every entity in the system prompt?
What could the AI agent from the first part do?
It was read-only: it answered user questions about the warehouse in natural language, calling @Tool methods through Spring AI's ChatClient while staying within Jmix's security system.
What questions does the second part cover?
Which user a tool runs as, how to handle transactions across a chain of calls, how to audit actions initiated by the model, and how to work with the domain model without manually listing entities in the prompt.
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
The AI world, distilled — once a week
Seven stories that actually mattered, hand-picked. No noise, no reposts, no press releases.
Done! Check your inbox for a confirmation.