CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/quarkus-langchain4j

Build Quarkus applications with LangChain4j extensions - project setup, CDI services, REST endpoints, MCP, agentic, and dev mode

91

1.71x
Quality

90%

Does it follow best practices?

Impact

96%

1.71x

Average score across 3 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-3/

{
  "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
    }
  ]
}

evals

tile.json