⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 http://www.iocoder.cn/Fight/springboot-agent-skills/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

用 Claude Code 或 Codex 写 Java 后端的人,大概率撞上过同一个尴尬。同一个问题,上周刚把规范讲清楚,这周开个新会话又得从头再讲。讲多了嫌烦,讲少了它就开始自由发挥,RestTemplate 这种该淘汰的写法照样往外冒。

Agent Skills 就是冲这件事来的。它把项目规范从聊天记录里搬出来,变成一份放在约定目录里的文件。Agent 每次开工先读一遍,读完再动手,规范写一次后面所有会话都自带。

下面这 6 个仓库都是 Spring 生态里做这件事的。我按各自负责的环节排了一下,每个都写了装法,也标了当前的真实热度。

这 6 个仓库,解决的是同一件事

先给个全景,不然六个名字摆在一起很容易看成一堆平行选项。

它们其实是四种不同性质的东西。dr-jskill 管起点,决定新项目长什么样。agent-skill-java-spring-framework 管写法,规定代码里不许出现什么。sivalabs-agent-skills 管工程组织,把架构、测试、本地开发各拆一份文档。auth0/agent-skills 和 spring-testing-skills 属于领域补位,一个补安全,一个补测试。

剩下 spring-ai-agent-utils 是个异类,它不在这条线上,后面单独说。

这个分层有用,你不必六个全装。

一个 SKILL.md,凭什么管得住 AI 写代码

Agent Skills 的核心只有一个文件,叫 SKILL.md。把它放进约定目录,Agent 启动时会自动读进去,之后生成代码就按里面的规范来。

关键在于「约定目录」这一步,位置由宿主规定。Claude Code 读 project/.claude/skills/ 或者 ~/.claude/skills/,Codex 读 project/.codex/skills/ 或 ~/.codex/skills/,Gemini CLI 是 .gemini/skills/,Cursor 是 .cursor/skills/。

带 project/ 前缀的是项目级,只对当前项目生效。带 ~ 的是用户级,对本机所有项目生效。项目级规范会跟着代码进 Git,同事拉下来就有。

你可以把它当成一份项目级的行为约束,比 .cursorrules 更结构化,也更容易复用,一个写好的 Skill 能被多个项目共享。装也不复杂,通用入口是 Skills CLI 的 npx skills add,Claude Code 另有 claude skills install 这条官方命令。

约束力不来自你反复交代,来自它每次开工都会重新读一遍。谁把规范写得更具体,谁的约束就更硬。

JHipster 作者亲自下场,先把技术栈替你定了

作者是 Julien Dubois,JHipster 的创始人,也是 Microsoft 的 Java Champion。这套脚手架在 Java 圈用了很多年,他对新项目该长什么样有很成型的看法。

dr-jskill 的定位很直接。它是一套高度 opinionated 的 Skill,让 Claude Code 或 GitHub Copilot 按作者自己的品味生成 Spring Boot 应用,注意是他自己的品味。

目前它对标 Java 25 加 Spring Boot 4.x,数据库默认给 PostgreSQL,前端可以选 Vue.js、React、Angular 或 Vanilla JS,Vue.js 是默认项。

Dr JSkill 官方项目封面

仓库结构里有两样东西值得提。SKILL.md 是主指令文件,AI 读的就是它。versions.json 是库版本清单,Agent 靠它保证依赖最新。references/ 下面放的是数据库实践、Docker 部署、测试规范这些文档。

它省事的地方在选型。你不用再解释「我要 PostgreSQL 不要 MySQL」,规范里写死了。

这个仓库目前有三百多 Star,Apache-2.0 协议。

jdubois/dr-jskill 仓库首页,Star 337

安装按宿主分两条路径。

mkdir -p ~/.github-copilot/skills
git clone https://github.com/jdubois/dr-jskill ~/.github-copilot/skills/dr-jskill
claude skills install github:jdubois/dr-jskill

再补一句它和宿主的配合。GitHub Copilot CLI 有 /fleet 命令,能把大任务拆开派给多个子代理并行跑,前后端分头做再合并是它擅长的场景。dr-jskill 负责定骨架,两个凑一起用比单跑顺手。

最严的一套,你写 RestTemplate 它会直接不干

第二个仓库走相反的路线,它管生成时不许干什么。

它专门针对 Spring Framework 7.x 和 Spring Boot 4.x 的现代写法,给 AI 设一套很严的代码规范。技能目录是 skills/java-spring-framework/,npm 包名叫 spring-boot4-skill。

约束一共五条,每条都是硬的。API 客户端只许用 RestClient、JdbcClient、HttpServiceProxyFactory,RestTemplate 被彻底封杀。并发模型要求用 Java 25 的 StructuredTaskScope 加 Scoped Values。

架构上推行 Spring Modulith 的 domain-driven 包结构。Null 安全强制用 JSpecify 的 @NonNull 和 @Nullable,不用老的 JSR-305。命名空间只允许 jakarta.*,javax.* 完全禁止。

你还在用 RestTemplate 写新代码,它不会委婉提醒,直接拒绝生成,然后换成 RestClient。态度确实强硬,但老 API 的坑没必要再踩一遍。

这个仓库体量比另外几个小得多,目前十来个 Star。它的价值不在热度,在于把新版本该写成什么样这件事写死了。

AyrtonAldayr/agent-skill-java-spring-framework 仓库首页,Star 11

安装就一行,换别的宿主就把仓库名换成 npx skills add 的参数,它同时支持 Claude Code、Cursor 和 Codex。

claude skills install github:AyrtonAldayr/agent-skill-java-spring-framework

把规矩拆成十几份文档,还让 ArchUnit 自己查

第三个仓库是这几个里口碑最稳的。

作者 Siva Prasad Reddy 写过好几本 Spring Boot 书,也是 Java Champion。仓库是 MIT 协议,目前一百多 Star、四十多个 Fork,最近一次更新就在这个月,属于持续维护的那一类。

它的思路和前两个不同。它把 Spring Boot 的最佳实践拆成多个维度,架构、测试、本地开发、代码质量各有独立文档。核心的 spring-boot 技能下面挂着十几份参考,从 ArchUnit 到 Taskfile 都覆盖到了。

它推行 Spring Modulith 的模块化单体架构,不认「按 controller / service / repository 分层分包」那套老写法。它还集成了 ArchUnit 测试,让 AI 写出来的代码自带架构规则校验,跑一遍就知道有没有越界。

另外它配了 Spotless 加 Checkstyle 的格式化规范,生成的代码不会五花八门。Docker Compose 支持和 Taskfile 自动化任务配置也都内置了。

仓库里还有个 agents/ 目录,放预定义的 Agent 任务模板,目前能看到一个 code-reviewer,配合 Claude Code 的子代理功能用。

sivaprasadreddy/sivalabs-agent-skills 仓库首页,Star 183

装法有两条,区别在范围。第一条装全部技能,第二条只装 spring-boot,第三条走脚本,好处是能一次适配多个宿主。

npx skills add https://github.com/sivaprasadreddy/sivalabs-agent-skills
npx skills add https://github.com/sivaprasadreddy/sivalabs-agent-skills --skill spring-boot
curl -fsSL https://raw.githubusercontent.com/sivaprasadreddy/sivalabs-agent-skills/refs/heads/main/install.sh | bash

脚本还支持 --agent 指定目标宿主、--user 指定装到用户级,多人协作时挺有用。

安全交给官方,一个 skill 认框架不用你挑

这套技能由 Auth0 官方维护,专门管 Spring Boot API 的安全集成。Agent 会正确地给 REST API 接上 JWT 校验与 Scope 授权,不用你翻着文档一步步指挥。

auth0/agent-skills 官方仓库横幅

它现在的形态值得说一句。仓库里没有一堆按框架拆开的小技能,只剩一个 auth0 技能加一层路由。装这一个就够,技能自己读工程文件判断框架,再加载对应参考文档。Spring Boot API 对应的底层 SDK 是 com.auth0:auth0-springboot-api。

前置条件不高,Java 17 以上、Spring Boot 3.2 以上,再有一个 Auth0 账号。这里要提醒一句,需要的是 Auth0 里的 API 而不是 Application,这两个在 Dashboard 里是两个东西,配错了会一直 401。

装完它能接管三类活。配置 SecurityFilterChain 把 JWT 校验串进去,把 JWT 里的 scope 映射成 Spring Security 的 authority,以及配置 DPoP 给高安全性 API 用,这个协议对应 RFC 9449。

DPoP 那项有个开关要留意。dpop-mode 有三档,ALLOWED 同时接受 Bearer 和 DPoP,REQUIRED 只认 DPoP、普通 Bearer 直接返 401,DISABLED 则只收 Bearer。

两个最容易写错的配置细节它也写进去了。auth0.domain 不能带 https:// 前缀,auth0.audience 必须和 Dashboard 里的 Identifier 完全一致。

这个仓库目前五十来个 Star、二十多个 Fork,Apache-2.0 协议。

auth0/agent-skills 仓库首页,Star 52

装法两种。第一条是通用的 Skills CLI 入口,第二条走 Claude Code 的官方插件市场。装完如果自动触发没生效,敲一个 /auth0 就能叫起来。

npx skills add auth0/agent-skills
claude plugin install auth0@claude-plugins-official

AI 写的测试曾经是灾难,这套专门治它

第五个仓库治的是真实翻过车的地方。

AI 写业务代码还凑合,让它写测试就容易出事。要么用了一堆过时的 API,要么把整个 Spring 上下文都启动起来,跑一个根本不需要那么重的集成测试。

这个仓库把测试场景拆成了六个专项技能。spring-jpa-testing 管数据层,用 @DataJpaTest 配 Testcontainers。spring-mvc-testing 管 Web 层,用 @WebMvcTest 加 MockMvc。spring-security-testing 管认证授权,用 @WithMockUser 加 JWT 和 OAuth2。

响应式归 spring-webflux-testing,用 WebTestClient 和 StepVerifier。spring-websocket-testing 管 STOMP 长连接。剩下 spring-testing-fundamentals 是通用原则,AssertJ、BDDMockito、@MockitoBean、上下文缓存都在里面。

有几条约束特别有价值。它强制用 MockMvcTester 的新 fluent API 而不是老 MockMvc,推 Testcontainers 加 @ServiceConnection 而不是手写 @DynamicPropertySource。

还有一条是明确告诉 AI 避免用 @DirtiesContext。这个注解会让 Spring 上下文在测试之间反复重建,CI 上跑起来慢得离谱。

这个仓库目前五十来个 Star,Apache-2.0 协议,通过 org.springaicommunity:spring-testing-skills 分发,走的是 SkillsJars 打包格式。

spring-ai-community/spring-testing-skills 仓库首页,Star 52

装法要靠构建工具把它解出来。第一条对应 Claude Code 的全局目录,第二条对应 Kiro 的项目内目录,解出来之后下次会话启动就能用上。

./mvnw skillsjars:extract -Ddir=~/.claude/skills
./mvnw skillsjars:extract -Ddir=.kiro/skills

最后一个不一样,它是个给你自己应用装的库

前面五个都在改 Agent 怎么写代码,这第六个改的是另一件事。

spring-ai-agent-utils 不是给 Claude Code 用的外部 Skill,它是一个 Java 库。你把它加进自己的 Spring Boot 应用,应用本身就有了这套 Agent 能力。

spring-ai-agent-utils 官方项目 logo

它把 Claude Code 的核心工具用 Java 重新实现了一遍。FileSystemTools 负责文件读写编辑,ShellTools 执行 Shell 命令并支持超时控制和后台进程管理,搜索这块有一对 GrepTool 和 GlobTool。

网络那块有两个。SmartWebFetchTool 抓网页并带缓存摘要,BraveWebSearchTool 负责联网搜索。还有三个要单独点出来。SkillsTool 让你的 Agent 也能加载 SKILL.md 格式的技能,等于把这套机制搬进自己的应用。AutoMemoryTools 提供跨对话的持久化记忆,TaskTools 是子代理任务分发系统。

当前版本 0.12.0,要求 Java 17 以上、Spring Boot 3.x 或 4.x、Spring AI 2.0.0 以上、Maven 3.6 以上。工程本身拆成 common、core、a2a、bom 四个模块。

这个仓库是六个里热度最高的,六百多 Star、一百三十多个 Fork,Apache-2.0 协议。

spring-ai-community/spring-ai-agent-utils 仓库首页,Star 638

加依赖用 BOM 管版本,先声明再引入。

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springaicommunity</groupId>
<artifactId>spring-ai-agent-utils-bom</artifactId>
<version>0.12.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springaicommunity</groupId>
<artifactId>spring-ai-agent-utils</artifactId>
</dependency>
</dependencies>

配好之后,构建 ChatClient 时把这些工具挂上去就行。仓库里带了能直接跑的 examples,code-agent-demo 最完整,另有本地子代理、远程子代理和长期记忆三组演示。

怎么组合,以及哪些地方现在别指望它

说完六个,回到实际问题。

好消息是这些技能不冲突,可以叠加。一个比较稳的组合是这样分工。dr-jskill 管技术栈选择和项目脚手架,sivalabs-agent-skills 管模块化架构和测试规范,spring-testing-skills 专门应对测试场景。三个一起挂上,各自管各自的环节。

安全那块按需挂,用 Auth0 就加 auth0/agent-skills,不用就跳过。要在自己的应用里做 Agent 开发,spring-ai-agent-utils 目前最成熟。但记清楚它的位置,它是给应用用的库,不服务 Agent 本身。

顺序上有个建议。先装管起点的那个,dr-jskill 和 spring-boot4-skill 二选一就好,一起装容易互相打架。等骨架稳定了再补测试和安全这两个下游环节,比一上来全装更好。

也需要说清楚什么时候别指望它。这几个仓库体量差得很远,六百多 Star 的库和十来个 Star 的规范仓库不在一个量级。小仓库能不能跟上 Spring 版本迭代,需要你自己盯一眼最近提交。

技能只把规范写清楚、照着执行,技术决策还得你自己做。项目该不该上 Spring Modulith、值不值得为 DPoP 多付接入成本,没人能替你判断。

最后一句也是我的看法。给 AI coding agent 配好 Skills,比反复在 prompt 里解释「我要按照 XX 规范」靠谱得多,规范写一次后续所有任务都生效,团队里其他人还能直接复用。

这个生态还在快速生长,上面几个仓库都在持续迭代,过一阵子再翻一翻会有新东西。

文章目录
  1. 1. 这 6 个仓库,解决的是同一件事
  2. 2. 一个 SKILL.md,凭什么管得住 AI 写代码
  3. 3. JHipster 作者亲自下场,先把技术栈替你定了
  4. 4. 最严的一套,你写 RestTemplate 它会直接不干
  5. 5. 把规矩拆成十几份文档,还让 ArchUnit 自己查
  6. 6. 安全交给官方,一个 skill 认框架不用你挑
  7. 7. AI 写的测试曾经是灾难,这套专门治它
  8. 8. 最后一个不一样,它是个给你自己应用装的库
  9. 9. 怎么组合,以及哪些地方现在别指望它