Tool and function calling patterns with LangChain4j. Define tools, handle function calls, and integrate with LLM agents. Use when building agentic applications that interact with tools.
Install with Tessl CLI
npx tessl i github:giuseppe-trisciuoglio/developer-kit --skill langchain4j-tool-function-calling-patternsOverall
score
74%
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
Discovery
67%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This description is functional with a clear 'Use when' clause and reasonable domain specificity around LangChain4j. However, the actions listed are somewhat generic for the tool-calling domain, and the trigger terms could be expanded to capture more natural user language variations. The LangChain4j focus provides some distinctiveness but the broader 'agentic applications' framing creates potential overlap risk.
Suggestions
Add more specific concrete actions like 'define tool parameters', 'handle tool responses', 'chain multiple tool calls', or 'validate tool inputs'
Expand trigger terms to include variations like 'tool use', 'function definitions', 'AI tools', '@Tool annotation', or 'agent capabilities'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (LangChain4j tool/function calling) and lists some actions ('Define tools, handle function calls, integrate with LLM agents'), but these are somewhat generic and not comprehensive - doesn't specify concrete operations like parameter validation, error handling, or specific tool types. | 2 / 3 |
Completeness | Clearly answers both what ('Define tools, handle function calls, and integrate with LLM agents') and when ('Use when building agentic applications that interact with tools') with an explicit trigger clause. | 3 / 3 |
Trigger Term Quality | Includes relevant terms like 'tool calling', 'function calls', 'LangChain4j', 'agents', and 'agentic applications', but misses common variations users might say like 'AI tools', 'agent tools', 'tool use', 'function definitions', or 'LLM tools'. | 2 / 3 |
Distinctiveness Conflict Risk | The LangChain4j specificity helps distinguish it, but 'agentic applications' and 'tools' are broad terms that could overlap with other agent frameworks or general tool-calling skills. Could conflict with generic agent or tool-related skills. | 2 / 3 |
Total | 9 / 12 Passed |
Implementation
73%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a solid skill with excellent actionability through complete, executable Java code examples and good progressive disclosure with clear references to detailed documentation. The main weaknesses are verbosity in the introductory sections explaining when to use tools (which Claude would infer) and generic best practices that don't add value. The workflow could be improved with explicit step-by-step guidance for building a complete tool-enabled application.
Suggestions
Remove or significantly condense the 'When to Use This Skill' section - Claude understands when tool calling is appropriate
Remove generic best practices (descriptive names, input validation, error messages) that Claude already knows; keep only LangChain4j-specific guidance
Add a quick-start workflow section with numbered steps: 1. Define tool class, 2. Create interface, 3. Build with AiServices, 4. Test tool invocation
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill includes some unnecessary sections like 'When to Use This Skill' with 8 bullet points explaining obvious use cases Claude would understand. The 'Best Practices' section contains generic advice (descriptive names, input validation) that Claude already knows. However, the code examples themselves are reasonably efficient. | 2 / 3 |
Actionability | The skill provides fully executable Java code examples throughout, from basic tool registration to advanced patterns like streaming and error handling. Code is copy-paste ready with proper imports implied and complete method signatures. | 3 / 3 |
Workflow Clarity | While individual patterns are clear, the skill lacks explicit sequencing for multi-step processes. The 'Common Issues and Solutions' section provides troubleshooting but there's no clear workflow for building a complete tool-enabled application with validation checkpoints. | 2 / 3 |
Progressive Disclosure | The skill has a clear structure with a concise overview, organized sections by complexity, and well-signaled one-level-deep references to detailed documentation (API Reference, Implementation Patterns, Examples) at the end. | 3 / 3 |
Total | 10 / 12 Passed |
Validation
75%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 12 / 16 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
allowed_tools_field | 'allowed-tools' contains unusual tool name(s) | Warning |
metadata_version | 'metadata' field is not a dictionary | Warning |
license_field | 'license' field is missing | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 12 / 16 Passed | |
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.