spring-ai-loom-agent

作者 wb04307201已验证

A Spring Boot auto-configuration library that injects RAG knowledge base, MCP tool calling, and Skill library into Spring AI applications with an out-of-the-box chat UI.

274
Stars
3
Forks
Java
语言
2026/8/23
添加时间

⚠️ 第三方软件声明

本 Skill 为第三方开源软件,独立托管于 GitHub。SkillTip 仅为信息目录,不控制或维护底层仓库。所显示的安全检查为自动化且范围有限,安装前请自行审查源码。

阅读服务条款

安装

添加到你的 Claude Code skills 目录:

# Add to your Claude Code skills
git clone https://github.com/wb04307201/spring-ai-loom-agent

快速入门

使用 spring-ai-loom-agent 等 Skills 的指南。

安全报告

已验证

上次扫描:—

{
  "status": "PASSED",
  "issues": []
}

README.md

Spring AI LoomAgent

中文 | English

Spring Boot AI Agent — an out-of-the-box solution that makes your app converse, remember, think, and act.

Maven Central star fork star fork License JDK SpringBoot SpringAI

Spring AI LoomAgent Overview Spring AI LoomAgent UI


Features

6 Pillars: 💬 Chat · Knowledge · 📁 Files · 🔧 MCP · 🧠 Skill · 🛡 RBAC Platform: 🧠 Skill Market · Knowledge Market · 🎛 Admin Console Advanced: 🧩 Sub-tasks · ⏰ Scheduled tasks · 🖼 Multimodal — one dependency, batteries included.

  • 💬 Streaming Chat — SSE multi-turn, collapsible reasoning, message copy/download; multimodal image + document mixed input
  • 📚 RAG Knowledge Base — Multi-KB management, Tika parsing + vectorization, built-in JVector local store (swap in any Spring AI vector store)
  • 🔧 MCP Tool Integration — Sync/async dual mode; available tools gated by role authorization, enabled per chat
  • 🧠 Skill Market — DB-stored prompt templates, 3 sources (self-built / market-pulled / role-granted); no approval flow (submit goes direct APPROVED); pull rejects overwriting same-name USER_CREATED; remove blocked when market_skill_id is set; admin only edits / pulls (no creation); no version field. Skills call MCP via @tool_name. Frontend chat input supports / picker for precise skill selection.
  • 🧩 Sub-tasks & ⏰ Scheduled Tasks — Delegate a slice of work to a synchronous "sub-model"; LLM-created schedules run as sub-tasks and survive restarts
  • 🛡 RBAC — Two levels: user type (admin / user) + business roles; admin sees all, normal users get the union of their roles' grants
  • 🎛 Admin Console — Sidebar SPA: users / roles / skill market / knowledge market / MCP descriptions / logs (formerly usage stats); admin-gated
  • 📁 File Management — Disk storage + H2 metadata, upload / preview / download, chat-attachment bridging
  • 🧰 Built-in Tools — Time / file / skill / sub-task / schedule / end-to-end deploy (on by default), git / maven (opt-in); see TOOLS.md
  • ⚙️ Batteries-included Engineering — Spring Boot auto-config, every bean replaceable via @ConditionalOnMissingBean, Flyway migrations, broad chat / embedding / vector-store support

Built-in Tools

All tools follow the interface + default implementation pattern. Every component is registered with @ConditionalOnMissingBean, allowing consumers to replace any piece with a custom implementation.

ToolInterfaceMethodsDefaultConfig Property
TimeITimeTool2✅ enabledtime.enabled
FileIFileTool16✅ enabledfile.enabled
SkillISkillTool3✅ enabledskill.enabled
KnowledgeIKnowledgeTool1✅ enabledknowledge.enabled
Sub-taskISubTaskTool4✅ enabledsubtask.enabled
ScheduleIScheduleTool4✅ enabledschedule.enabled
GitIGitTool28❌ disabledgit.enabled
MavenIMavenTool6❌ disabledmaven.enabled
Compile & DeployICompileAndDeployTool1✅ enabledcompile.enabled

For full @Tool method signatures, parameter details, and configuration reference, see TOOLS.md.

Compile & Deploy Tool

img_7.png

Admin Console

Admin console — users / roles / skill-market / knowledge-market / MCP / logs

Standalone MCP Servers

File, Git, Maven, and Compile each have a standalone MCP server module — the core layer has no Spring dependency and can be deployed via jbang to any MCP-compatible agent (Claude Desktop, Cursor, etc.):

MCP ServerDescriptionREADME
loom-file-mcpFile system operations — read, write, edit, search, directory browsing, delete (14 tools)EN · 中文
loom-git-mcpGit operations via JGit — clone, commit, push, merge, rebase, and more (14 tools)EN · 中文
loom-maven-mcpMaven build operations — execute, build, package, test, dependency tree, validate (6 tools)EN · 中文
loom-compile-mcpEnd-to-end deploy pipeline — git clone → build → docker build → docker run → health check (1 tool)EN · 中文

Quick Start: Add a Chat Interface

1. Add LoomAgent Dependency

<dependency>
 <groupId>io.github.wb04307201</groupId>
 <artifactId>spring-ai-loom-agent-spring-boot-starter</artifactId>
 <version>1.1.39</version>
</dependency>

2. Add a Spring AI Model Dependency

The test application uses Alibaba's Qwen (DashScope) via Spring AI Alibaba. Swap the dependency and config for any other provider:

<dependency>
 <groupId>com.alibaba.cloud.ai</groupId>
 <artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
 <version>1.1.2.3</version>
</dependency>
spring:
 ai:
 dashscope:
 api-key: ${DASHSCOPE_API_KEY}
 chat:
 options:
 model: qwen3.7-plus
 multi_model: true
 enable_thinking: true

For other models, see the Spring AI docs.

Note: For document-based Q&A, ensure the model supports multimodal input (e.g., multi_model: true). Document content is injected via System Prompt.

3. Start the Project

Visit http://localhost:8080/spring/ai/loom

img.png img_6.png img_5.png

Knowledge Market — V22 two-stage list → detail panel

Document Upload & Conversation

Click the + button next to the input field to upload images or documents. After uploading, type your question and send it.

Supported Document Formats

PDF, DOCX, XLSX, PPTX, MD, TXT, HTML, CSV, RTF, and more.

How It Works

  1. Images: Passed as Media type directly to the multimodal model (requires model support, e.g., DashScope Qwen series)
  2. Documents: Text content extracted via Apache Tika, injected as System Prompt into the conversation context
  3. Mixed scenarios: Images and documents can be uploaded together; the model synthesizes visual information and document text

File Download, Preview, and Deletion

Uploaded and generated files can get download links via MCP tool downloadFileUrl, or preview links via MCP tool viewFileUrl. Files and directories can be removed via MCP tool deleteFileOrDirectory (requires explicit I_CONFIRM_DELETE confirmation — token configurable via spring.ai.loom.agent.file.deleteConfirmToken, supports recursive directory removal, and cleans up temporary file_info records).

The "File" entry provides unified browsing, previewing, downloading, and deleting for all non-knowledge-base files (including tool uploads and git repositories).

Replace the Default RAG Implementation

The following example uses Qdrant as the vector store. Add the dependency:

<dependency>
 <groupId>org.springframework.ai</groupId>
 <artifactId>spring-ai-starter-vector-store-qdrant</artifactId>
</dependency>

Add configuration:

spring:
 ai:
 vectorstore:
 qdrant:
 host: localhost
 port: 6334
 collection-name: qwen-collection-name

Optional RAG configuration:

spring:
 ai:
 loom:
 agent:
 rag:
 similarityThreshold: 0.50 # Similarity threshold, default 0.0
 top-k: 4 # Top-k results, default 4

MCP Services

Taking the time MCP service as an example, add the dependency:

<dependency>
 <groupId>org.springframework.ai</groupId>
 <artifactId>spring-ai-starter-mcp-client</artifactId>
</dependency>

Add configuration:

spring:
 ai:
 mcp:
 client:
 stdio:
 servers-configuration: classpath:mcp-servers.json

mcp-servers.json:

{
 "mcpServers": {
 "time": {
 "command": "uvx",
 "args": [
 "mcp-server-time",
 "--local-timezone=Asia/Shanghai"
 ]
 }
 }
}

The MCP button opens a panel showing available services:

img_3.png

Skill Market — V20 two-stage list → detail panel

Add Chinese labels and descriptions for tools via configuration:

spring:
 ai:
 loom:
 agent:
 mcps:
 - name: spring-ai-mcp-client - time
 title: Time
 description:
 A Model Context Protocol service that provides time and timezone conversion functionality. This service enables
 large language models to obtain current time information and perform timezone conversions using IANA timezone names,
 with automatic system timezone detection.
 tools:
 - name: get_current_time
 description: Get the current time in a specified timezone
 - name: convert_time
 description: Convert time between different time zones

Skill Market

Skills are prompt templates that the LLM uses for recurring workflows. The data is fully managed in the database (no more yml skills[] block) and lives in three tables:

TablePurpose
market_skillPublic Skill Market — every entry has only (author, name) unique constraint ( removed version); admin edits / pulls (cannot create) —
user_skillA user's local copy of a skill (source = USER_CREATED / MARKET_PULLED / ROLE_GRANTED); remove blocked when market_skill_id is set; pull rejects overwriting same-name USER_CREATED
role_skillRole → market_skill authorization (which skills a role unlocks for its users); setRoleKnowledges auto-syncs user_knowledge for all assigned users

6 seeded system skills

On first launch, the init migration seeds 6 system skills (stored directly in each user's user_skill with source=USER_CREATED, default_loaded=true) so every fresh install already has useful ones — including Monthly Event Report, HTTP Test, Deploy Project, Auto E2E, etc. Admins can edit / delete any of them at any time from the Skill Market admin page (no creation from admin).

Skill lifecycle for a normal user

  1. Create — In the chat UI's Skill Library → 我的 tab → + 新增, or PUT /spring/ai/loom/skill. The skill is stored in user_skill with source=USER_CREATED. Fully editable (name / desc / content / default-loaded).
  2. Submit to market — Library → 共享 tab. Click your skill, the form shows market metadata (无版本号)。 Submitted with status=APPROVED directly (no approval flow). Same (author, name) re-submits UPSERT (overwrites content + status).
  3. Pull from market — Library → 市场 tab. Click item → right panel shows full details + 「添加到我的知识库」 button. Creates / refreshes a user_skill row with source=MARKET_PULLED. Re-pull of same name UPSERTs (no error).
  • ****: If you already have a same-name USER_CREATED skill, pull is rejected (403) — use 「复制为我的技能」 first to copy as a new USER_CREATED.
  1. Receive via role authorization — If admin granted a role → market_skill, the skill is auto-injected into your user_skill on every login with source=ROLE_GRANTED, locked=true. setRoleKnowledges auto-syncs new role grants. You cannot edit or delete it (it's pinned by the role).

What admins can do that normal users cannot

  • Edit / 下架 (delete) any market_skill (admin no longer creates new skills — author is the one who publishes from chat UI)
  • Authorize any APPROVED market skill to any role via role_skill (auto-syncs to all assigned users)
  • 下架 cascades to all user_skill (pullers) and role_skill (role grants) — no orphans

Permission matrix

OperationUSER_CREATEDMARKET_PULLEDROLE_GRANTED
Edit name✗ (PK)
Edit description
Edit content✗ (re-pull)
Edit default_loaded
Delete
Submit to market✅ (new ver.)

Using skills in the chat UI

Open the Skill Library button (🧠) — four tabs:

  • 我的 — your local user_skill (plus admin's union view). Click a skill to see details, then 应用 (overwrite the textarea and auto-send to the model) or 复制 (overwrite the textarea, no send).
  • 市场 — browse all APPROVED market skills and 拉取 them into your user_skill (rejects if you already have a same-name USER_CREATED).
  • 共享 — submit a USER_CREATED skill to the market. status is direct APPROVED, no approval. no version number. two-stage click list item → right panel form.
  • 我的发布 — track your market submissions (all APPROVED after de-approval). Click list item → right panel with 「撤回共享(下架)」 button. Withdraw cascades to all user_skill and role_skill.

Inside content you can reference MCP tools by @tool_name — the available tools come from the role-based mcps authorization, not from yml.

For the full REST API, see docs/API.md → §6 Skill Management.

Knowledge Base & Knowledge Market

Knowledge bases store documents for RAG retrieval. The knowledge space modal has four tabs:

  • 我的 — your own knowledge bases. Create, upload documents, delete.
  • 市场 — browse approved market knowledge bases and 添加到我的知识库 (subscribe).
  • 共享 — your own knowledge bases not yet shared. Click 共享到市场 to submit for admin approval.
  • 我的发布 — track your market submissions (PENDING / APPROVED / REJECTED). Withdraw PENDING items.

Market workflow: submit → PENDING → admin approve → APPROVED → other users can subscribe. Role-based authorization can also auto-grant knowledge bases to users (similar to skills).

For the knowledge market REST API, see docs/API.md → §5.8 Knowledge Market.


Admin Console

The admin console is a sidebar-navigated single-page-app shell. After admin login, all admin pages share a fixed left sidebar:

SectionPathPurpose
用户管理admin/console.htmlUser list + role assignment + batch content cleanup
角色管理admin/roles.htmlRBAC roles + grant MCP / Skill
Skill 市场admin/skills-market.htmlApprove / reject / directly CRUD Skill
MCP 描述维护admin/mcps.htmlMaintain Chinese descriptions for SDK MCP tools
用量统计admin/stats.htmlMonthly Token usage (year + month filter)
返回主页/Back to chat home page
  • 未登录跳 login: All admin HTML paths are auth-protected. Unauthenticated access 302-redirects to /spring/ai/loom/login.html; API calls 401.
  • "清理聊天内容" 唯一入口: Only 控制台 → 批量清理 button. The duplicate "清理内容" / "一键清理" buttons in user row / conversation row were consolidated.
  • Role gating: All admin paths require user_info.type = 'ADMIN'. Non-admin attempting admin URL is redirected back to chat home.


常见问题

What is spring-ai-loom-agent?

spring-ai-loom-agent is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by wb04307201. A Spring Boot auto-configuration library that injects RAG knowledge base, MCP tool calling, and Skill library into Spring AI applications with an out-of-the-box chat UI. It has 274 GitHub stars.

Is spring-ai-loom-agent safe to use?

Yes. spring-ai-loom-agent passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.

How do I install spring-ai-loom-agent?

Clone the repository with "git clone https://github.com/wb04307201/spring-ai-loom-agent" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is spring-ai-loom-agent written in?

spring-ai-loom-agent is primarily written in Java. It is open-source under wb04307201 on GitHub, so you can review or fork the full source.

Are there alternatives to spring-ai-loom-agent?

Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh spring-ai-loom-agent against similar tools.

评论 (0)

暂无评论,成为第一个分享想法的人!

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情

claude-code

by anthropics

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.

120,03119,897Shell
AI 智能体
查看详情

开发者还喜欢

基于喜欢此 Skill 的开发者投票和收藏

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情