Skip to content

Comments

GH-5293 Add Skill extension support for Spring AI#5294

Closed
zhanglinpeng-semir wants to merge 1 commit intospring-projects:mainfrom
zhanglinpeng-semir:GH-5293
Closed

GH-5293 Add Skill extension support for Spring AI#5294
zhanglinpeng-semir wants to merge 1 commit intospring-projects:mainfrom
zhanglinpeng-semir:GH-5293

Conversation

@zhanglinpeng-semir
Copy link

@zhanglinpeng-semir zhanglinpeng-semir commented Jan 20, 2026

Introduce a comprehensive skill extension that enables dynamic skill loading, activation, and progressive skill integration with LLM conversations.

Key Features:

  • Progressive loading: LLM can discover and load skills on-demand
  • Multi-tenant support: Isolated skill activation per conversation
  • Flexible registration: Support class-based and instance-based skills, easily extensible for more types
  • Customizable skill capabilities: Support flexible extension and customization of diverse skill functionalities

Components:

  • Core:
    • SkillKit: Central coordination of skill lifecycle management
    • SkillBox: Skill metadata storage and activation state tracking
    • SkillPoolManager: Lazy/eager skill instance loading and caching
    • SkillRegistrar: Interface class providing diversified skill registration capabilities
  • SPI:
    • SkillAwareAdvisor: Responsible for loading skills into LLM prompts and managing conversation-level skill activation/deactivation
    • SkillAwareToolCallingManager: Manages automatic injection and execution of skill-associated tools; delegates execution and parsing of non-skill tools to other components
    • SkillAwareToolCallbackResolver: Works with SkillAwareToolCallingManager to enable dynamic tool execution by resolving tool callbacks from SkillBox's active skills
  • Annotations:
    • Skill, SkillInit, SkillExtension, SkillContent, SkillTools, SkillReferences
  • Tools:
    • Progressive skill loader tools for LLM interaction

== Semir Group Contribution ==
Developed by Semir Lab Team
Part of Semir's open source technology initiative
Original implementation: https://github.com/semir-lab/spring-ai-skill-extension

Fixes: #5293

Thank you for taking time to contribute this pull request!
Signed-off-by: LinPeng Zhang zhanglinpeng@semir.com

@zhanglinpeng-semir zhanglinpeng-semir force-pushed the GH-5293 branch 2 times, most recently from 0e39029 to f743240 Compare January 20, 2026 11:11
Fixes spring-projects#5293

Introduce a comprehensive skill extension that enables dynamic
skill loading, activation, and progressive skill integration with LLM
conversations.

Key Features:
- SkillKit: Central coordination of skill lifecycle management
- SkillBox: Skill metadata storage and activation state tracking
- SkillPoolManager: Lazy/eager skill instance loading and caching
- Progressive loading: LLM can discover and load skills on-demand
- Multi-tenant support: Isolated skill activation per conversation
- Flexible registration: Support class-based and instance-based skills

Components:
- Core: SkillKit, SkillBox, SkillPoolManager, SkillRegistrar
- SPI: SkillAwareAdvisor, SkillAwareToolCallingManager
- Annotations: @Skill, @SkillInit, @SkillContent, @skilltools
- Tools: Progressive skill loader tools for LLM interaction

== Semir Group Contribution ==
Developed by Semir Lab Team
Part of Semir's open source technology initiative
Original implementation: https://github.com/semir-lab/spring-ai-skill-extension

Signed-off-by: LinPeng Zhang <zhanglinpeng@semir.com>
@zhanglinpeng-semir
Copy link
Author

Here is a runnable example : spring-projects/spring-ai-examples#92

@zhanglinpeng-semir zhanglinpeng-semir changed the title Add Skill extension support for Spring AI GH-5293 Add Skill extension support for Spring AI Jan 21, 2026
@tzolov
Copy link
Contributor

tzolov commented Jan 28, 2026

@zhanglinpeng-semir
Thank you for sharing your idea. However, the Agent Skills Specification clearly states that the minimum requirement for a portable skills definition is: "A skill is a directory containing at minimum a SKILL.md file."
Spring AI's core premise is providing portable abstractions across vendors, which is why we adopted the Agent Skills spec: https://agentskills.io/home#adoption
More details here:

https://spring.io/blog/2026/01/13/spring-ai-generic-agent-skills
https://github.com/spring-ai-community/spring-ai-agent-utils

This allows us to reuse Claude or other Agent Skills definitions, and conversely lets other agentic systems consume skills defined by Spring AI developers.
While a programmatic skills DSL (e.g., custom annotations) is an interesting idea, it would reduce compatibility while increasing complexity.
If you'd like to pursue this approach, consider moving this work to your own GitHub repository or applying for a spring-ai-community repository.

This PR will be closed.

@zhanglinpeng-semir
Copy link
Author

@zhanglinpeng-semir Thank you for sharing your idea. However, the Agent Skills Specification clearly states that the minimum requirement for a portable skills definition is: "A skill is a directory containing at minimum a SKILL.md file." Spring AI's core premise is providing portable abstractions across vendors, which is why we adopted the Agent Skills spec: https://agentskills.io/home#adoption More details here:

https://spring.io/blog/2026/01/13/spring-ai-generic-agent-skills https://github.com/spring-ai-community/spring-ai-agent-utils

This allows us to reuse Claude or other Agent Skills definitions, and conversely lets other agentic systems consume skills defined by Spring AI developers. While a programmatic skills DSL (e.g., custom annotations) is an interesting idea, it would reduce compatibility while increasing complexity. If you'd like to pursue this approach, consider moving this work to your own GitHub repository or applying for a spring-ai-community repository.

This PR will be closed.

Thanks for the review. I agree with your points regarding the skill definition standards.
I've noticed that an alternative implementation for skill support has been provided in the community repo: spring-ai-agent-utils. It aligns better with the skill spec, and the work is much appreciated.
Regarding my PR, I already have a personal repository to host this code. I plan to continue its development there, incorporating ideas from both approaches and hope to keep contributing to the community.

@ilayaperumalg
Copy link
Member

@zhanglinpeng-semir Thank you and looking forward to see your contributions!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request] Add Skill Extension Framework Support to Spring AI

4 participants