Install any skill in seconds. Free to start, no credit card required.
Get Started Free →agentscope-ai/agentscope-java
Expert Java developer skill for AgentScope Java framework - a reactive, message-driven multi-agent system built on Project Reactor.
Passed 21 of 22 test cases with the skill, and 9 of 22 without it.
and 17 more in the full report
13 fixed8 passed either way0 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 13 test cases the skill fixed. Same model, same prompt, with and without the skill.
Provide the exact Java import statements required to instantiate OpenAI and Anthropic chat models in an AgentScope project.
| Checked | Without skill | With skill |
|---|---|---|
| OpenAIChatModel is imported from io.agentscope.extensions.model.openai.OpenAIChatModel. | Missed | Passed |
| AnthropicChatModel is imported from io.agentscope.extensions.model.anthropic.AnthropicChatModel. | Missed | Passed |
The instructions your model reads when the skill loads.
When the user asks you to write AgentScope Java code, follow these instructions carefully.
🚫 ABSOLUTELY FORBIDDEN:
.block() in example code - This is the #1 mistake. Only use .block() in main() methods or test code when explicitly creating a runnable example.Thread.sleep() - Use Mono.delay() instead.ThreadLocal - Use Reactor Context with Mono.deferContextual().System.getenv().io.agentscope.core.model.*; provider models are in io.agentscope.extensions.model.<provider>.*.✅ ALWAYS DO:
Mono and Flux for all asynchronous operations..map(), .flatMap(), .then()..onErrorResume() or .onErrorReturn().import io.agentscope.extensions.model.dashscope.DashScopeChatModel;toolkit.registerTool() NOT registerObject()toolkit.getToolNames() NOT getTools()event.getToolUse().getName() NOT getToolName()result.getOutput() NOT getContent() (ToolResultBlock)event.getToolResult() NOT getResult() (PostActingEvent)toolUse.getInput() NOT getArguments() (ToolUseBlock)temperature() method, use defaultOptions(GenerateOptions.builder()...)getMessages(), getResponse(), getIterationCount(), getThinkingBlock() methodsgetToolUseName() method, use event.getToolUse().getName() insteadList<ContentBlock> NOT String, need to convert@ToolParam(name = "x", description = "y") NOT @ToolParam(name="x")FIRST: Identify the context
main() method or test code? → .block() is allowed (but add a warning comment).block() is FORBIDDENtest cases passed, vs 9 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.