AppConfigure
For AI Agents: the Markdown version of this page is at https://ankole.agentbull.com/en-US/docs/app-configuration/index.md. The documentation index is at https://ankole.agentbull.com/en-US/llms.txt.
Console → AppConfigure contains settings that an administrator can change while the deployment instance is in service. Examples include conversation-history compaction, Agent limits, directory synchronization intervals, and plugin switches.
LLM Providers, Identity Providers, chat channels, and environment variables have their own Console pages. Do not configure them again here.
AppConfigure and environment variables
AppConfigure settings are stored in PostgreSQL. They control Ankole product behavior while the instance runs. Most changes apply to later work and do not require a new deployment.
Deployment environment variables start the control plane, PostgreSQL, and Workers. Restart the affected process after you change one.
Use Agent environment variables when a Skill, command-line tool, or MCP service needs a custom value such as an API key.
Find a setting
The page groups related settings. You can search by key or description, or open a group to see its settings together.
Each row has one of these states:
- Editable: open the row and change it here.
- Read-only: the row shows current state but cannot be changed here.
- Managed elsewhere: follow the management link to the Console page that owns the setting.
The key is the stable name of the setting. Its description explains what it controls and which unit a number uses.
Understand scope and source
The AppConfigure page changes instance overrides. A key marked Instance or Agent also lets its owning feature store an override for one Agent, but this page does not select or edit an Agent.
When Ankole resolves one of these settings for an Agent, it uses this order:
- the current Agent override;
- the instance override;
- the default declared by the installed version.
The AppConfigure list shows an instance override or the version default. Reset to default removes the instance override. All Agents without their own override then use the version default.
Change a setting
- Open the setting or setting group.
- Read the field descriptions and confirm the scope and units.
- Change the necessary values and save.
- Return to the list and confirm that the row shows an override.
Common settings use a dedicated form. Some advanced settings use a JSON editor. Keep the existing field structure and do not remove fields that you do not understand.
Most changes apply to later work. If the page says that a change applies at the next start, restart the control plane at a suitable time.
Reset a setting
When you no longer need a custom value, open the setting and select Reset to default. This removes the stored override and makes Ankole use the default declared by the installed version.
Resetting is different from entering the current default as a custom value. A reset follows a changed default in a later version. A stored custom value does not.
Current built-in AppConfigure keys
The following AppConfigure keys are built into Ankole. A Control Plane Plugin can register more keys. The AppConfigure page in the current instance is the authoritative list.
Agent runtime
| Key | Scope | Purpose |
|---|---|---|
ai_agent.max_iterations |
Instance or Agent | Maximum model iterations for one Agent turn |
ai_agent.max_output_tokens |
Instance or Agent | Output-token cap for one model response |
ai_agent.inactivity_timeout_ms |
Instance or Agent | Time to wait for an inactive model or Provider before ending the turn |
ai_agent.library.agent_plugin_defaults |
Instance | Default enablement for Agent Plugins |
ai_agent.library.skill_defaults |
Instance | Default enablement for Skills |
Workflows
| Key | Scope | Purpose |
|---|---|---|
workflow.max_concurrency_per_run |
Instance | Maximum task concurrency that one Workflow can request; default 8, valid range 1–32 |
workflow.max_running_per_agent |
Instance | Maximum running Workflow tasks across one Agent’s runs; default 8, valid range 1–64 |
workflow.max_agent_calls_per_run |
Instance | Maximum subagent calls that one Workflow can create; default 256, valid range 1–1,024 |
These limits apply to later Workflow work. A run can request a lower concurrency or call limit, but it cannot raise the instance limit. Read Workflows for task behavior and other size boundaries.
Brain
| Key | Scope | Purpose |
|---|---|---|
brain.enabled |
Instance | Enable Brain retrieval, learning, and maintenance; stored knowledge remains when disabled |
brain.maintainer_agent_uid |
Instance | Active Agent responsible for Brain maintenance; all Brain model calls run as this Agent and attribute usage to it; disabling it stops those calls and local URL fetching until it is enabled or replaced; edit its light, heavy, and web_fetch profiles on the Agent page |
brain.embedding_model |
Instance | Provider, model, and dimensions for vector retrieval; an empty value disables vector retrieval |
brain.rerank_model |
Instance | Provider and model for reranking search results; an empty value keeps the fusion order |
brain.search_tokenizer |
Instance | BM25 tokenizer: icu, jieba, lindera_japanese, or lindera_korean; a change requires a BM25 index rebuild |
brain.chunking |
Instance | Source chunk size, overlap, and input limits |
brain.forgetting |
Instance | Knowledge-decay half-lives and the soft-delete purge interval |
brain.dreaming_task_cron |
Instance | Schedule for regular knowledge consolidation |
brain.self_healing_task_cron |
Instance | Schedule for rebuilding stale chunk, embedding, and search-index projections |
brain.signal_channel_batch_idle_time |
Instance | Idle seconds before pending chat messages enter learning; conversation end also triggers learning |
brain.skill_learning_enabled |
Instance | Enable Skill lesson learning and delivery; when disabled, stored lessons remain but are not supplied |
brain.skill_learning_reflection_threshold |
Instance | Unconsumed Signal Jobs one Agent must accumulate before Skill lesson reflection starts; minimum 2 |
Read Brain for its knowledge behavior and model requirements. Read Skill lessons for the lessons that Brain supplies with Skills.
AI Gateway and observability
| Key | Scope | Purpose |
|---|---|---|
ai_gateway.compaction |
Instance | Automatic conversation-history compaction policy |
observability.traces.enabled |
Instance | Whether process-wide OpenTelemetry export starts on the next control-plane boot |
observability.traces.provider |
Instance | Semantic projection for langfuse, langsmith, or generic opentelemetry traces |
observability.traces.otlp_endpoint |
Instance | Base OTLP/HTTP endpoint for optional traces |
observability.traces.otlp_headers |
Instance | Encrypted authentication headers for optional traces |
See LLM observability for Langfuse, LangSmith, VictoriaTraces, and other OTLP/HTTP receivers.
Identity, Plugins, and instance defaults
| Key | Scope | Purpose |
|---|---|---|
principals.identity_providers.active |
Instance, read-only | Identity sources available for administrator sign-in; managed on the Identity Provider page |
principals.identity_providers.directory_full_sync_interval_hours |
Instance | Full organization-directory synchronization interval |
plugins.enabled_ids |
Instance | Control Plane Plugins to enable at the next start |
system.timezone |
Instance | Default time zone for schedules and other control-plane features |
i18n.default_locale |
Instance | Default language for the Ankole interface |
Workers, web reading, and security
| Key | Scope | Purpose |
|---|---|---|
runtime_fabric.worker_auth_key |
Instance, read-only | Authentication key between the control plane and Workers; generated and maintained by the system |
agent_computer.background_agent_job.max_turns_per_worker |
Instance | Maximum concurrent Background Agent Job turns on each Worker |
worker.rendered_fetch_idle_ttl_ms |
Instance or Agent | Idle lifetime for the built-in web_fetch rendered fallback |
security.ssrf_filter |
Instance or Agent | Whether model-controlled fetches reject private, loopback, link-local, and CGNAT addresses |
Cloud metadata addresses are rejected even when this setting is off.
First-run state
| Key | Scope | Purpose |
|---|---|---|
setup.bootstrap_activation_code |
Instance, read-only | Temporary activation code for the first-run setup page |
setup.completed |
Instance, read-only | Whether this instance has completed first-run setup |
The first-run setup flow owns these keys. To read the activation code, run kit show bootstrap-activation-code. Do not edit these keys on the AppConfigure page.
Encrypted settings
Ankole stores credential settings in encrypted form and shows a mask in the list and editor. Saving the mask keeps the current value. Entering new content replaces it.
Use Reveal only when you must check the current value. Do not copy a revealed credential into chat, screenshots, or tickets.