Combine Tools & Skill to create Agent Modern agentic systems usually expose two strong but separate abstractions: Tools , which give an LLM executable capabilities Skills , which package reusable instructions for a narrow task This article shows how to combine both ideas in LangGraph4j so that a skill is not just prompt text, but a fully operational sub-agent exposed as a tool . The result is a practical pattern for building modular multi-agent systems in Java with Spring AI and LangGraph4j , while keeping each agent focused, reusable, and low in context cost. Starting from a standard ReACT agent, the approach implemented is quite simple. Load a SKILL.md file Read its front matter to define the tool contract ( name and argument description) Use the skill body as the sub-agent system prompt Restrict the sub-agent to only the tools declared by the skill Register the sub-agent in a parent ReAct agent as if it were a normal tool In other words, a skill becomes an executable tool-backed agent .…