Environment & system-property configuration
The framework-agnostic bootstrap reads agentforge4j.* system properties and AGENTFORGE4J_*
environment variables. Environment names have their prefix stripped and _ replaced with .,
lowercased — so an environment variable can only produce a dot-separated lowercase key and cannot
produce a hyphen; hyphenated keys are therefore system-property only. System properties win over
environment variables on collision.
Keys
| System property | Environment variable | Type | Description |
|---|---|---|---|
agentforge4j.agents.path | AGENTFORGE4J_AGENTS_PATH | Path | Filesystem directory of agent definitions (or blank to skip filesystem agent loading). |
agentforge4j.workflows.path | AGENTFORGE4J_WORKFLOWS_PATH | Path | Filesystem directory of workflow definitions (or blank to skip filesystem workflow loading). |
agentforge4j.integrations.dir | AGENTFORGE4J_INTEGRATIONS_DIR | Path | Filesystem directory of integration definition JSON (or blank to skip integration loading). |
agentforge4j.filesink.path | AGENTFORGE4J_FILESINK_PATH | Path | Filesystem directory the file sink writes generated artifacts to. |
agentforge4j.llm.cache.enabled | AGENTFORGE4J_LLM_CACHE_ENABLED | boolean | Whether the LLM response cache is enabled. |
agentforge4j.max-nesting-depth | — (system property only) | int | Maximum nested-workflow depth. System-property only (the key contains a hyphen, which the environment-variable normalisation cannot produce). |
agentforge4j.load-shipped-agents | — (system property only) | boolean | Whether the shipped (built-in) agents are loaded. System-property only (hyphenated key). |
agentforge4j.load-shipped-workflows | — (system property only) | boolean | Whether the shipped (built-in) workflows are loaded. System-property only (hyphenated key). |
Prefixed keys
| Prefix | Environment-reachable | Description |
|---|---|---|
agentforge4j.llm.model-tiers.<provider>.<tier> | — (system property only) | Per-provider, per-tier model override (e.g. agentforge4j.llm.model-tiers.openai.standard=gpt-...). The tier segment is the part after the final dot and must match a ModelTier constant (case-insensitive). System-property only (the prefix contains a hyphen). |
agentforge4j.llm.<provider>.* | partly | Per-provider LLM client configuration consumed by LlmClientWiring (e.g. api.key, base.url, default.model, connect.timeout — all dot-separated, matching LlmClientWiring's own canonical lowercase-dotted form). These leaves are unrelated to the Spring Boot starter's hyphenated equivalents (api-key, base-url), which are bound separately via Spring's relaxed Binder and never pass through ConfigReader/LlmClientWiring. |