Limits and quotas

Hard and soft limits enforced by the platform. Many are configurable in the Helm chart; defaults are listed here.

File and message limits

LimitValueNotes
Per-file upload size20 MBHard limit. Larger files require a custom MCP server that chunks content.
Per-message file attachments10Soft limit; configurable in chat.maxAttachmentsPerMessage.
Per-message body length64 KBLimit on Markdown body; longer messages should attach as files.

Agent and workload limits

LimitDefaultNotes
Agents per organizationUnlimitedSubject to resource quota.
MCP servers per agent32Soft limit; can be raised.
Skills per agent256Soft limit.
Hooks per agent32Soft limit.
ENV variables per resource64Practical Kubernetes ceiling.
ENV total size per container32 KBKubernetes hard limit.
Volumes per agent (including sub-resources)16Soft limit.
Volume size1 TBHard limit per volume. Configurable in agents.maxVolumeSizeGb.
Concurrent workloads per runnerCapped by runner resourcesNot enforced by the platform.
Workload idle timeout5m default, 1m–24h rangeConfigurable per-agent.

API rate limits

LimitDefaultNotes
Per-token Gateway requests600 / minuteConfigurable in gateway.rateLimit.
Per-IP Gateway requests3000 / minuteConfigurable in gateway.rateLimit.
LLMProxy per-token requestsProvider-dependentLLM Proxy passes through provider rate limits; configure per-provider concurrency.

Authorization

LimitValue
Tuples per checkOpenFGA's per-store limit (very high)
Relations evaluated per ListObjectsCapped by OpenFGA's resolution depth (default 25)
Max tuples per Write100

Tracing

LimitDefaultNotes
Per-span size64 KBHard limit. Larger spans are rejected.
Spans per run10000Soft limit; runs exceeding this are truncated.
Run retention14 daysConfigurable in tracing.retentionDays.

OpenZiti

LimitNotes
Identities per controllerOpenZiti-defined; depends on controller deployment.
Concurrent flows per identityOpenZiti-defined; depends on routers.

Devices

LimitValue
Devices per userUnlimited
JWT enrollment validity7 days (configurable per IdP setup)

API tokens

LimitValue
API tokens per userUnlimited
Token TTLOptional. Unlimited by default.

Apps

LimitDefaultNotes
Apps published per organizationUnlimited
Installations per appUnlimited
Audit log per installation1000 eventsRing buffer — oldest dropped.

Adjusting limits

Soft limits configurable per service live in that service's chart values — bootstrap renders them inline in stacks/platform/main.tf (look for <service>_values). For an off-bootstrap install, pull the chart with helm pull oci://ghcr.io/agynio/charts/<service> and read its values.yaml.

Hard limits (file size, ENV total size) are platform-design choices and cannot be overridden — they reflect Kubernetes ceilings or platform-side guarantees we don't want to weaken.