一、Agent Skills 体系架构
1.1 分层架构设计
┌─────────────────────────────────────────────────────────────┐
│ User Interface │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Claude │ │ Codex │ │ Gemini │ │ Cursor │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
└───────┼──────────────┼──────────────┼──────────────┼───────┘
│ │ │ │
└──────────────┴──────────────┴──────────────┘
│
┌──────────────▼──────────────┐
│ Skills Manager │
├─────────────────────────────┤
│ 加载、验证、约束执行 │
└──────────────┬──────────────┘
│
┌──────────────▼──────────────┐
│ Skill Repository │
├─────────────────────────────┤
│ ┌───────────────────────┐ │
│ │ 项目级 Skills │ │
│ │ (project/.claude/) │ │
│ └───────────┬───────────┘ │
│ │ │
│ ┌───────────▼───────────┐ │
│ │ 用户级 Skills │ │
│ │ (~/.claude/skills/) │ │
│ └───────────────────────┘ │
└──────────────┬──────────────┘
│
┌──────────────▼──────────────┐
│ Skill Processing │
├─────────────────────────────┤
│ ┌───────────────────────┐ │
│ │ SKILL.md 解析 │ │
│ │ 约束条件处理 │ │
│ │ 版本管理 │ │
│ └───────────────────────┘ │
└─────────────────────────────┘
1.2 核心组件设计
java
// Skill 核心实体
public class Skill {
private String name;
private String version;
private String description;
private List<Constraint> constraints;
private Map<String, Resource> references;
private Versions versions;
}
// 约束条件
public class Constraint {
private String id;
private String description;
private ConstraintType type;
private ConstraintSeverity severity;
private String pattern;
private String suggestion;
}
// 版本管理
public class Versions {
private Map<String, String> libraries;
private String javaVersion;
private String springBootVersion;
}
1.3 约束执行引擎
java
// 约束执行引擎架构
public class ConstraintEngine {
private List<ConstraintValidator> validators;
private List<CodeTransformer> transformers;
public ConstraintEngine() {
validators = List.of(
new ApiConstraintValidator(),
new ArchitectureConstraintValidator(),
new SecurityConstraintValidator()
);
transformers = List.of(
new RestTemplateTransformer(),
new JavaxToJakartaTransformer(),
new TestAnnotationTransformer()
);
}
public ValidationResult validate(Code code) {
var results = new ValidationResult();
for (var validator : validators) {
results.add(validator.validate(code));
}
return results;
}
public Code transform(Code code) {
var transformed = code;
for (var transformer : transformers) {
transformed = transformer.transform(transformed);
}
return transformed;
}
}
二、dr-jskill 架构设计
2.1 Opinionated 架构理念
dr-jskill 采用高度 opinionated 的设计理念,提供完整的技术栈解决方案:
python
class DrJSkillArchitecture:
def __init__(self):
self.opinionated_stack = {
"java": "25",
"spring_boot": "4.x",
"database": "PostgreSQL",
"frontend_options": ["Vue.js", "React", "Angular", "Vanilla JS"]
}
self.architecture_pattern = "monolithic"
self.modularization = "package_by_feature"
def generate_project_structure(self):
"""生成项目结构"""
return ProjectStructureBuilder() \
.with_java_25() \
.with_spring_boot_4x() \
.with_postgresql() \
.with_modulith() \
.build()
2.2 Fleet Mode 分布式架构
java
// Fleet Mode 架构
public class FleetModeManager {
private BackendAgent backendAgent;
private FrontendAgent frontendAgent;
private MergeService mergeService;
public FleetModeResult executeParallelWorkflow(Requirements requirements) {
// 任务分解
var backendTask = backendAgent.createTask(requirements);
var frontendTask = frontendAgent.createTask(requirements);
// 并行执行
var backendFuture = backendTask.executeAsync();
var frontendFuture = frontendTask.executeAsync();
// 结果聚合
var backendResult = backendFuture.get();
var frontendResult = frontendFuture.get();
return mergeService.merge(backendResult, frontendResult);
}
}
2.3 版本管理架构
json
{
"java": {
"version": "25",
"features": ["structured_concurrency", "scoped_values", "virtual_threads"]
},
"spring_boot": {
"version": "4.x",
"modules": ["web", "data_jpa", "validation", "actuator"]
},
"database": {
"type": "postgresql",
"driver": "org.postgresql:postgresql",
"migration": "flyway"
},
"libraries": {
"junit": "5.10.0",
"assertj": "3.24.2",
"testcontainers": "1.19.0"
}
}
三、agent-skill-java-spring-framework 架构设计
3.1 技术约束矩阵
| 约束类型 | 禁止使用 | 强制使用 |
|---|---|---|
| API客户端 | RestTemplate | RestClient、JdbcClient、HttpServiceProxyFactory |
| 并发模型 | ExecutorService、Thread | StructuredTaskScope、Scoped Values |
| 模块化 | layer-based | domain-driven (Spring Modulith) |
| Null安全 | JSR-305 | JSpecify @NonNull/@Nullable |
| 命名空间 | javax.* | jakarta.* |
3.2 约束验证架构
java
// 约束验证器设计
public interface ConstraintValidator {
ValidationResult validate(Code code);
}
// API约束验证
public class ApiConstraintValidator implements ConstraintValidator {
@Override
public ValidationResult validate(Code code) {
var result = new ValidationResult();
if (code.contains("RestTemplate")) {
result.addViolation(
"使用RestTemplate被禁止,应使用RestClient",
Severity.ERROR,
"将RestTemplate替换为RestClient"
);
}
return result;
}
}
// 架构约束验证
public class ArchitectureConstraintValidator implements ConstraintValidator {
@Override
public ValidationResult validate(Code code) {
var result = new ValidationResult();
if (!code.usesSpringModulith()) {
result.addViolation(
"应使用Spring Modulith的模块化架构",
Severity.WARNING,
"重构为domain-driven包结构"
);
}
return result;
}
}
3.3 包结构设计
com.example.project/
├── user/ # 用户模块
│ ├── domain/
│ │ ├── User.java
│ │ ├── UserRepository.java
│ │ └── UserService.java
│ ├── application/
│ │ └── UserApplicationService.java
│ ├── infrastructure/
│ │ └── JpaUserRepository.java
│ └── presentation/
│ └── UserController.java
├── order/ # 订单模块
│ └── ...
└── shared/ # 共享模块
└── ...
四、sivalabs-agent-skills 架构设计
4.1 多维度技能架构
sivalabs-agent-skills/
├── architecture/
│ ├── modular-monolith/
│ │ └── skill.md
│ ├── hexagonal/
│ │ └── skill.md
│ └── clean-architecture/
│ └── skill.md
├── testing/
│ ├── unit-testing/
│ │ └── skill.md
│ ├── integration-testing/
│ │ └── skill.md
│ └── e2e-testing/
│ └── skill.md
├── development/
│ ├── docker-compose/
│ │ └── skill.md
│ ├── taskfile/
│ │ └── skill.md
│ └── spotless/
│ └── skill.md
└── quality/
├── archunit/
│ └── skill.md
├── checkstyle/
│ └── skill.md
└── sonarqube/
└── skill.md
4.2 模块化架构设计
java
// 模块化架构设计
@Configuration
@EnableModulith
public class ModularArchitectureConfig {
@Bean
public ApplicationModuleInitializer moduleInitializer() {
return new ApplicationModuleInitializer() {
@Override
public void initialize(ApplicationModules modules) {
// 验证模块依赖关系
modules.verifyDependencies();
// 验证模块内部访问规则
modules.verifyInternalAccessRules();
}
};
}
}
// 架构测试
@ArchTest
static ArchRule no_cross_layer_dependencies = layeredArchitecture()
.consideringAllDependencies()
.layer("Domain").definedBy("..domain..")
.layer("Application").definedBy("..application..")
.layer("Infrastructure").definedBy("..infrastructure..")
.layer("Presentation").definedBy("..presentation..")
.whereLayer("Presentation").mayNotBeAccessedByAnyLayer()
.whereLayer("Infrastructure").mayOnlyBeAccessedByLayers("Application")
.whereLayer("Application").mayOnlyBeAccessedByLayers("Presentation");
五、auth0/agent-skills 安全架构
5.1 安全架构层次
┌─────────────────────────────────────────────────────────────┐
│ API Layer │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ SecurityFilterChain │ │
│ └───────────────────────┬───────────────────────────────┘ │
└───────────────────────────┼───────────────────────────────────┘
│
┌───────────────────────────▼───────────────────────────────────┐
│ Authentication Layer │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ JwtDecoder + JwtAuthenticationConverter │ │
│ └───────────────────────┬───────────────────────────────┘ │
└───────────────────────────┼───────────────────────────────────┘
│
┌───────────────────────────▼───────────────────────────────────┐
│ Authorization Layer │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ Scope-based Authorization + DPoP │ │
│ └───────────────────────┬───────────────────────────────┘ │
└───────────────────────────┼───────────────────────────────────┘
│
┌───────────────────────────▼───────────────────────────────────┐
│ Identity Provider │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ Auth0 (JWT + OAuth2) │ │
│ └───────────────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────────────────┘
5.2 安全配置架构
java
// 安全配置架构
@Configuration
@EnableWebSecurity
public class SecurityArchitectureConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return http
.authorizeHttpRequests(this::configureAuthorization)
.oauth2ResourceServer(this::configureOauth2ResourceServer)
.build();
}
private void configureAuthorization(AuthorizeHttpRequestsConfigurer<HttpSecurity>.AuthorizationManagerRequestMatcherRegistry authz) {
authz
.requestMatchers("/api/public/**").permitAll()
.requestMatchers("/api/admin/**").hasAuthority("SCOPE_admin")
.anyRequest().authenticated();
}
private void configureOauth2ResourceServer(OAuth2ResourceServerConfigurer<HttpSecurity> oauth2) {
oauth2.jwt(jwt -> jwt
.decoder(jwtDecoder())
.jwtAuthenticationConverter(jwtAuthenticationConverter())
);
}
}
六、spring-testing-skills 测试架构
6.1 分层测试架构
┌─────────────────────────────────────────────────────────────┐
│ E2E Tests │
│ spring-webflux-testing + Testcontainers │
└───────────────────────────┬───────────────────────────────────┘
│
┌───────────────────────────▼───────────────────────────────────┐
│ Integration Tests │
│ spring-jpa-testing + spring-mvc-testing + Testcontainers │
└───────────────────────────┬───────────────────────────────────┘
│
┌───────────────────────────▼───────────────────────────────────┐
│ Unit Tests │
│ spring-testing-fundamentals + AssertJ + BDDMockito │
└───────────────────────────────────────────────────────────────┘
6.2 测试金字塔架构
java
// 测试金字塔实现
public class TestingPyramid {
public TestingLayer unitTests() {
return TestingLayer.builder()
.name("Unit Tests")
.ratio(70)
.tools(List.of("JUnit 5", "AssertJ", "BDDMockito"))
.annotations(List.of("UnitTest"))
.build();
}
public TestingLayer integrationTests() {
return TestingLayer.builder()
.name("Integration Tests")
.ratio(20)
.tools(List.of("Testcontainers", "@DataJpaTest", "@WebMvcTest"))
.annotations(List.of("IntegrationTest"))
.build();
}
public TestingLayer e2eTests() {
return TestingLayer.builder()
.name("E2E Tests")
.ratio(10)
.tools(List.of("WebTestClient", "StepVerifier"))
.annotations(List.of("E2ETest"))
.build();
}
}
七、spring-ai-agent-utils 框架架构
7.1 工具框架架构
spring-ai-agent-utils/
├── core/
│ ├── tools/
│ │ ├── FileSystemTools.java
│ │ ├── ShellTools.java
│ │ ├── GrepTool.java
│ │ ├── GlobTool.java
│ │ ├── SmartWebFetchTool.java
│ │ ├── BraveWebSearchTool.java
│ │ ├── SkillsTool.java
│ │ ├── AutoMemoryTools.java
│ │ └── TaskTools.java
│ └── memory/
│ ├── ConversationMemory.java
│ └── PersistentMemoryStore.java
├── integration/
│ ├── spring-ai/
│ └── chat-client/
└── examples/
└── code-agent-demo/
7.2 核心工具设计
java
// 核心工具设计
@Tool
public class FileSystemTools {
@ToolCall(name = "read_file", description = "读取文件内容")
public String readFile(@ToolParam(name = "path") String path) {
return Files.readString(Path.of(path));
}
@ToolCall(name = "write_file", description = "写入文件内容")
public void writeFile(
@ToolParam(name = "path") String path,
@ToolParam(name = "content") String content) {
Files.writeString(Path.of(path), content);
}
@ToolCall(name = "edit_file", description = "编辑文件内容")
public void editFile(
@ToolParam(name = "path") String path,
@ToolParam(name = "old_content") String oldContent,
@ToolParam(name = "new_content") String newContent) {
var content = Files.readString(Path.of(path));
content = content.replace(oldContent, newContent);
Files.writeString(Path.of(path), content);
}
}
7.3 企业级集成架构
对于企业级应用,可以通过API聚合平台(如weelinking等)统一管理这些工具的API调用:
java
// 企业级集成配置
@Configuration
public class EnterpriseIntegrationConfig {
@Bean
public ChatClient enterpriseChatClient(
@Value("${weelinking.api.key}") String apiKey,
@Value("${weelinking.base.url}") String baseUrl) {
return ChatClient.builder()
.baseUrl(baseUrl)
.defaultHeader("Authorization", "Bearer " + apiKey)
.build();
}
@Bean
public ToolRegistry enterpriseToolRegistry() {
return ToolRegistry.builder()
.tool(new FileSystemTools())
.tool(new ShellTools())
.tool(new GrepTool())
.build();
}
}
八、技能生态演进路径
8.1 演进阶段
| 阶段 | 特征 |
|---|---|
| 1.0 单Skill | 独立的项目级Skill |
| 2.0 组合Skill | 多Skill叠加使用 |
| 3.0 生态Skill | 标准化的Skill生态 |
| 4.0 自适应Skill | 上下文感知的智能Skill |
8.2 未来架构展望
java
// 自适应Skill架构
public class AdaptiveSkill {
private ContextAnalyzer contextAnalyzer;
private ConstraintOptimizer constraintOptimizer;
private LearningEngine learningEngine;
public Skill adapt(ProjectContext context) {
var constraints = contextAnalyzer.analyze(context);
var optimizedConstraints = constraintOptimizer.optimize(constraints);
var learnedPatterns = learningEngine.getLearnedPatterns(context);
return Skill.builder()
.constraints(optimizedConstraints)
.patterns(learnedPatterns)
.build();
}
}
九、总结
Agent Skills 体系通过分层架构、约束引擎、多维度设计,提供了一套完整的Spring Boot开发规范体系。
| Skill | 架构特点 |
|---|---|
| dr-jskill | Opinionated,Fleet Mode |
| agent-skill-java-spring-framework | 严格约束,模块化架构 |
| sivalabs-agent-skills | 多维度,社区实践 |
| auth0/agent-skills | 安全集成,OAuth2 |
| spring-testing-skills | 分层测试,测试金字塔 |
| spring-ai-agent-utils | 工具框架,可扩展 |
#ClaudeCode #SpringBoot #架构设计 #AI编程
📖 推荐阅读
如果这篇对你有帮助,以下文章你也会喜欢: