Installation & Enablement
The AI Agent connector ships with the CIB seven distributions as a removable overlay. This chapter explains how it’s delivered, how to enable or disable it per distribution, and how to set the deployment-wide default model.
Delivery model
The connector and its AI dependencies — LangChain4j, the bundled ONNX embedding model, pdfbox, pgvector — are packaged separately from the always-loaded engine libraries. The design goal is non-invasiveness: if the overlay is absent, the engine behaves exactly as before and loads no AI dependencies. So enabling/disabling is, in every distribution, about whether the overlay is on the classpath — not about a code change.
run / run4
The overlay lives in configuration/userlib-ai/ (separate from the always-loaded
configuration/userlib/). The start script adds it to the Spring Boot loader path only when AI is
enabled. The logic in run.sh / run.bat:
- Default / dev mode: enabled.
--production: disabled (the AI dependencies stay off the classpath).--ai/--ai-agent/--agentflag: force-enable (e.g. to use it under--production).AI_AGENT_ENABLEDenvironment variable (true/false): overrides all of the above — this is the control surface used by the Docker image.
./start.sh # AI Agent enabled (dev/default)
./start.sh --production # AI Agent disabled
./start.sh --production --ai # AI Agent re-enabled under production
AI_AGENT_ENABLED=false ./start.sh # force disabled regardless of mode
The script prints AI Agent connector enabled / disabled at startup so you can confirm.
Tomcat
The overlay jars ship in server/apache-tomcat-<version>/lib-ai/ (separate from the always-loaded
lib/). The distribution’s conf/catalina.properties is generated at build time from the stock
file plus one appended entry that puts lib-ai/ on Tomcat’s common.loader — so the connector
shares the engine’s classloader and the Connect SPI picks it up. It is active by default.
To disable on a standalone Tomcat, either:
- delete the
lib-ai/folder, or - remove the
lib-aientries fromcommon.loaderinconf/catalina.properties.
WildFly
The connector ships as a JBoss module
org/cibseven/connect/cibseven-connect-ai-agent/ (a “fat” module bundling all its transitive jars,
including the native ONNX runtime). It is wired in by an import in the
cibseven-engine-plugin-connect module:
<module name="org.cibseven.connect.cibseven-connect-ai-agent" services="import" optional="true" />
services="import"registers the connector via the Connect SPI.optional="true"means the engine still boots if the module directory is removed.
It is active by default. To disable, remove the module directory (or the import line above).
WildFly deployments should allow extra metaspace for the LangChain4j/ONNX footprint (the Docker image
sets -XX:MaxMetaspaceSize=1024m).
Setting the default model
Operators set the organisation-wide default model (used when a task leaves Model empty) via:
| JVM system property | -Dcibseven.connect.ai-agent.defaultModel=<provider-model> |
| Environment variable | CIBSEVEN_CONNECT_AI_AGENT_DEFAULT_MODEL=<provider-model> |
Resolution is property → env → built-in fallback (gpt-5.4-nano). The run distro’s default.yml
documents this stanza. See also Configuration Reference.
Provider endpoint/key defaults come from OPENAI_BASE_URL / OPENAI_API_KEY
(see Configuring the Agent).
Element templates in the Modeler
The connector’s two element templates ship inside the connector JAR under /element-templates/.
The webclient modeler discovers them on the classpath, e.g. in the run distro’s default.yml:
templates:
paths:
- "classpath*:element-templates/*.json" # bundled templates (incl. ai-agent)
- "file:configuration/element-templates/*.json" # operator-supplied templates
So once the overlay is on the classpath, CIB seven - AI Agent and CIB seven - Knowledge
Ingestor appear in the template picker automatically. Operators can drop additional templates into
configuration/element-templates/.
Docker
The official images ship the connector active by default (ENV AI_AGENT_ENABLED=true) and use
AI_AGENT_ENABLED as the single toggle, applied by the entrypoint at startup:
- Tomcat image (
cibseven-tomcat.sh):AI_AGENT_ENABLED=falsestrips thelib-aientries fromcommon.loaderinconf/catalina.properties. - WildFly image (
cibseven-wildfly.sh):AI_AGENT_ENABLED=falseremoves thecibseven-connect-ai-agentmodule import; the script also sizes metaspace (MaxMetaspaceSize=1024m) for the LangChain4j/ONNX footprint.
docker run -e AI_AGENT_ENABLED=false ... # disable the connector in a container
Enable / disable at a glance
| Distribution | Overlay location | Default | Disable |
|---|---|---|---|
| run / run4 | configuration/userlib-ai/ |
on (dev) / off (--production) |
--production without --ai, or AI_AGENT_ENABLED=false |
| Tomcat | lib-ai/ on common.loader |
on | delete lib-ai/ or strip the common.loader entries (Docker: AI_AGENT_ENABLED=false) |
| WildFly | JBoss module + import | on | remove the module dir / import (Docker: AI_AGENT_ENABLED=false) |
Footprint, sizing & egress
The overlay is heavier than the HTTP/SOAP connectors — plan for it:
- Disk: the connector plus its LangChain4j / ONNX / pdfbox / pgvector dependencies add on the order of hundreds of MB to the distribution.
- Memory / metaspace: LangChain4j and the bundled local ONNX embedding model load into the
JVM. Allow extra metaspace (the WildFly image sets
-XX:MaxMetaspaceSize=1024m) and headroom in the heap; the embedding model is loaded into memory on first use. - First-call latency: the local embedding model initialises on first RAG/ingestion use, so the
first such call is slower than subsequent ones. LLM calls themselves take seconds (more with
tools/RAG/reasoning) — run agent tasks with
camunda:asyncBeforeso they don’t block request threads. - Outbound network (egress): the engine JVM makes outbound HTTPS calls to the configured
baseUrl(the LLM endpoint) and to any MCP serverurl. With a remote embedding model it also calls the public OpenAI endpoint (regardless ofbaseUrl— see RAG). Ensure that egress is permitted, or route it through an approved proxy/gateway. Full data-flow detail is in Security & Data Handling.
Once enabled, head to Getting Started or Configuring the Agent.