Build Quarkus applications with LangChain4j extensions - project setup, CDI services, REST endpoints, MCP, agentic, and dev mode
91
90%
Does it follow best practices?
Impact
96%
1.71xAverage score across 3 eval scenarios
Advisory
Suggest reviewing before use
{
"context": "Tests whether the agent correctly implements Quarkus LangChain4j tool calling (@Tool on CDI beans), registers tools with an AI service, applies execution model annotations, uses @MemoryId for session memory, and configures named models in application.properties with the correct property naming pattern.",
"type": "weighted_checklist",
"checklist": [
{
"name": "@Tool on CDI bean method",
"description": "At least one method in the tool class is annotated with @Tool (with a description string)",
"max_score": 10
},
{
"name": "@ApplicationScoped on tool bean",
"description": "The tool class is annotated with @ApplicationScoped",
"max_score": 10
},
{
"name": "Tools registered with AI service",
"description": "Tools are wired to the AI service via @RegisterAiService(tools = {...}) OR @ToolBox on the interface method — NOT instantiated manually",
"max_score": 10
},
{
"name": "@RegisterAiService on interface",
"description": "@RegisterAiService is applied to a Java interface (not a class)",
"max_score": 10
},
{
"name": "modelName parameter used",
"description": "@RegisterAiService includes a modelName parameter referencing one of the named model configurations (e.g. modelName = \"smart\")",
"max_score": 10
},
{
"name": "Named model provider property",
"description": "application.properties includes quarkus.langchain4j.{name}.chat-model.provider={provider} for at least one named model (e.g. quarkus.langchain4j.smart.chat-model.provider=anthropic)",
"max_score": 10
},
{
"name": "Named model API key property",
"description": "application.properties includes quarkus.langchain4j.{provider}.{name}.api-key=... for at least one named model (e.g. quarkus.langchain4j.anthropic.smart.api-key=...)",
"max_score": 10
},
{
"name": "@MemoryId for sessions",
"description": "The AI service interface method has a parameter annotated with @MemoryId (e.g. @MemoryId String sessionId)",
"max_score": 15
},
{
"name": "Execution model annotation on tool",
"description": "At least one tool method has an execution model annotation: @Blocking, @NonBlocking, or @RunOnVirtualThread",
"max_score": 15
}
]
}