Model or dataset
spring-ai-community/spring-ai-agent-utils avatar
spring-ai-community/spring-ai-agent-utils

spring-ai-agent-utils: Claude Code style tools for Spring AI agents

A Spring AI library that brings Claude Code-inspired tools and agent skills to your AI applications.

647 stars134 forksJavaApache-2.0

At a glance

What is it?
A Spring AI library that reimplements Claude Code capabilities as Java tools: file access, shell execution, grep, web fetch, skills and sub-agents. Here is what the repository documents, what it leaves open, and who should pull it in.
Who is it for?
Adopt spring-ai-agent-utils if you are already building on Spring AI and want file, shell, grep and sub-agent tools without writing them yourself; the BOM and the examples directory make a first run cheap. Skip it if you are not on Spring AI, or if you need a sandboxed execution model by default, since the Docker ExecBackend is a separate module you have to choose.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 32 days ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What spring-ai-agent-utils solves for Java agent builders

Building an agent on Spring AI means writing the same plumbing every time. Something has to read and edit files, run a shell command, search a codebase, fetch a URL, keep a task list, and hand work to a sub-agent. None of that is specific to your product, and all of it is fiddly to get right. spring-ai-agent-utils packages those capabilities as Spring AI tools so you register them rather than write them.

The target reader is a Java developer who already has a Spring AI application and wants agentic behaviour in it. The README frames the project as a reimplementation of Claude Code capabilities inside the Spring AI ecosystem, which is a useful way to read the tool list: FileSystemTools, ShellTools, GrepTool, GlobTool, SmartWebFetchTool, BraveWebSearchTool, AskUserQuestionTool, SkillsTool, TodoWriteTool, TaskTools and the memory tools. Each has its own document under spring-ai-agent-utils/docs/. If you have used Claude Code, the surface will look familiar; if you have not, the docs are the place to start, not the README.

How the tools, skills and sub-agents fit together

The repository splits into modules rather than one jar. spring-ai-agent-utils-common holds the subagent SPI: SubagentDefinition, SubagentResolver, SubagentExecutor and SubagentType. The core module carries the tools, advisors, skills and Claude subagents. spring-ai-agent-utils-a2a implements the A2A protocol for remote sub-agents, and spring-ai-agent-utils-bom manages versions across the set. The Docker ExecBackend lives outside the core modules, under exec-backends/.

Two design choices stand out. First, SkillsTool defines capabilities as Markdown files with YAML front-matter, so a skill is data rather than compiled code. Second, AutoMemoryTools is deliberately split from its prompt: the README states that the tools require the companion classpath:/prompt/AUTO_MEMORY_TOOLS_SYSTEM_PROMPT.md system prompt, which ships inside the jar, to tell the agent when and how to use them. AutoMemoryToolsAdvisor exists to remove that manual step by wiring both the tools and the prompt into the ChatClient request pipeline, and it accepts an optional memoryConsolidationTrigger to prompt the model to summarise and clean up memories on a schedule.

The README is explicit that the tools work standalone but that the interesting behaviour comes from combining them: SkillsTool with FileSystemTools and ShellTools for domain workflows, the web tools for outside information, and TaskTools to delegate to specialised sub-agents that each get a tailored subset of tools.

Installing spring-ai-agent-utils from Maven Central

The README's quick start begins with the BOM, which is the recommended way to keep versions consistent across the modules. The artifact is published to Maven Central under the org.springaicommunity group, and the README states Java 17 or later is required.

xml
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springaicommunity</groupId>

That block is where the README's snippet stops, so the artifactId, version and scope are not shown there. Read spring-ai-agent-utils/README.md and spring-ai-agent-utils-bom/pom.xml for the complete coordinates before you paste anything into a build file. The examples directory is the fastest way to see a working setup: examples/code-agent-demo/ is described as a full-featured AI coding assistant, and the memory, skills, subagent and todo demos each isolate one feature.

If you want the memory tools, remember that the tools and the system prompt are a pair. Either register the bundled prompt yourself or use AutoMemoryToolsAdvisor, which the README describes as deduplicating callbacks and handling the prompt wiring automatically.

Where spring-ai-agent-utils is the wrong choice

The clearest limitation is the documentation target. The README links to the Spring AI 2.0-SNAPSHOT reference, not a released version. If your project pins a stable Spring AI release, expect to check API compatibility yourself before adopting this library; the repository does not promise a stable-version mapping in what it publishes.

Execution isolation is the second gap. ShellTools executes shell commands with timeout control, background process management and regex output filtering, which is exactly what you want for an agent working in a repository and exactly what you do not want if the agent runs untrusted instructions. The Docker ExecBackend that runs agent shell commands inside a sandbox container is a separate module under exec-backends/, so sandboxing is a choice you opt into, not the default path the README walks you through.

The third case is simpler: if you are not building on Spring AI, none of this applies. The tools are Spring AI tool implementations, and the value is in the integration, not in the individual algorithms. GrepTool is described as a pure Java grep implementation, which is convenient but not a reason to adopt a framework you are not already using. A Python or TypeScript agent stack gains nothing here.

How spring-ai-agent-utils compares with wiring tools by hand

The realistic alternative is not another library. It is writing your own Spring AI tools, or using Spring AI's built-in tool support plus a handful of utility classes. That approach gives you full control over the tool descriptions, the sandboxing model and the output formats, and it avoids a dependency that tracks a snapshot documentation branch.

The difference in approach is where the effort sits. Hand-rolled tools mean you design the file-editing semantics, the grep output modes, the glob matching and the sub-agent delegation contract yourself, and you own every edge case. spring-ai-agent-utils ships those decisions already made, with per-tool documentation under spring-ai-agent-utils/docs/ so you can read the contract before adopting it. TaskTools adds multi-model routing and pluggable backends, which is a meaningful amount of design you would otherwise repeat.

A second alternative, for teams already using Claude Code as a development tool, is to treat that as the agent and keep your Java application out of the loop. That works until the agent needs to run inside your application at runtime, at which point the tool implementations are the thing you need, and this project is one of the few places they exist in Java.

Maintenance, licence and upgrade cost

The repository is not archived, and the last push was on 2026-08-30. The release history shows v0.12.0 on 2026-08-30, v0.11.0 on 2026-08-26 and v0.10.0 on 2026-06-12, so the cadence is uneven: two releases four days apart, then a gap of roughly two and a half months. All three are 0.x versions, which tells you the API is not yet declared stable.

That combination has a practical cost. Importing the BOM means one version number to change, but a 0.x library that moves in bursts can change tool signatures or prompt contracts between releases. The bundled AUTO_MEMORY_TOOLS_SYSTEM_PROMPT.md is a good example: it is a resource inside the jar, so a prompt change ships with the dependency and can alter agent behaviour without any code change on your side. Pin the version and read the release notes before bumping.

The licence is Apache-2.0, which is permissive and generally compatible with commercial use. This is a description of the licence identifier in the repository, not legal advice; check the LICENSE.txt file and your own obligations.

Editorial conclusion

Adopt spring-ai-agent-utils if you are already building on Spring AI and want file, shell, grep and sub-agent tools without writing them yourself; the BOM and the examples directory make a first run cheap. Skip it if you are not on Spring AI, or if you need a sandboxed execution model by default, since the Docker ExecBackend is a separate module you have to choose. Before committing, verify three things: that the Spring AI version you run matches the 2.0-SNAPSHOT documentation this project links to, that your chosen ExecBackend matches your isolation requirements, and that the AutoMemoryTools system prompt is wired in, because the README states the tools require the bundled prompt to work.

Frequently asked questions

What Java version does spring-ai-agent-utils require?

The README states Java 17 or later, and the repository badges list Java 17+. The build uses the Maven wrapper (mvnw) included at the repository root.

How do I add spring-ai-agent-utils to a Maven project?

The README's quick start imports the spring-ai-agent-utils-bom artifact from the org.springaicommunity group in dependencyManagement, then adds the individual modules without repeating a version. The dependency snippet in the README is truncated, so check spring-ai-agent-utils/README.md for the full artifact list.

Do the AutoMemoryTools work on their own in spring-ai-agent-utils?

The README states that AutoMemoryTools requires the companion classpath:/prompt/AUTO_MEMORY_TOOLS_SYSTEM_PROMPT.md system prompt, which is bundled in the jar, to instruct the agent on when and how to use the tools. AutoMemoryToolsAdvisor wires both the tools and that prompt into the ChatClient pipeline automatically.

Official sources

  1. License: Apache-2.0
  2. Project website
  3. README
  4. Releases
  5. spring-ai-community/spring-ai-agent-utils on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/spring-ai-community-spring-ai-agent-utils.svg)](https://hysenlabs.com/projects/spring-ai-community-spring-ai-agent-utils)