identity-redis | Plain Redis | TAI_IDENTITY_REDIS_URL | Boot is refused: the provider’s health check reads Redis at startup. |
accounts-postgres | Postgres, and plain Redis for the login throttle | TAI_DB_BINDING_TAI42_ACCOUNTS_POSTGRES, TAI_ACCOUNTS_REDIS_URL | No database: the boot schema check is skipped. A pending migration refuses boot. |
agents | An LLM provider; the core checkpoint store; plain Redis for parking and the workspace lease; a sandbox provider for claude_code and langchain_deep_agent; the LLM store and an embedding provider for retrieval_tools_agent | LLM_PROVIDER_*, TAI_AGENTS_REDIS_URL, sandbox_module | A park without a durable checkpoint store or the agents Redis is refused. A sandbox agent without a sandbox provider fails at first use. |
backend-arq, backend-rq | Plain Redis, the worker bus, and the shared hooks registry | ARQ_REDIS_URL, RQ_REDIS_URL | With both its own URL and TAI_DEFAULT_REDIS_URL unset, it connects to redis://localhost:6379/0 and fails there. No bus or an in-memory hooks registry: boot is refused. |
backend-celery | A broker (AMQP such as RabbitMQ, or Redis), a result backend, Redis for the beat schedule, the worker bus, and the shared hooks registry | CELERY_BROKER_URL, CELERY_RESULT_BACKEND, CELERY_REDBEAT_REDIS_URL | An unset broker uses TAI_DEFAULT_REDIS_URL, else amqp://localhost:5672//. No bus or an in-memory hooks registry: boot is refused. |
channel-slack, channel-twilio, channel-whatsapp | The vendor’s account, a public HTTPS URL for inbound, and plain Redis | CHANNEL_<NAME>_REDIS_URL | No Redis: fails at first use. |
channel-telegram | A bot token, a public HTTPS URL, and plain Redis | CHANNEL_TELEGRAM_*, CHANNEL_TELEGRAM_REDIS_URL | Boot is refused without the token, webhook secret, public URL, and a recipient or allowlist, or when Telegram rejects the webhook. No Redis: fails at first use. |
channel-web | Plain Redis | CHANNEL_WEB_REDIS_URL | Every door except the asset door answers 501 with web_transcript_store_off. |
connector-atlassian, connector-github, connector-google, connector-slack | The vendor’s OAuth app, and the core connectors store | CONNECTORS_<NAME>_CLIENT_ID, CONNECTORS_<NAME>_CLIENT_SECRET | Starting a connection fails, naming the missing variable. |
mcp-dynamic-postgres | Postgres | PG_HOST, PG_DB, PG_USER, PG_PASSWORD | The server fails at startup without PG_DB, PG_USER or PG_PASSWORD. |
monitoring-langfuse | A Langfuse project and an OTLP endpoint | LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY, LANGFUSE_HOST, OTEL_EXPORTER_OTLP_TRACES_ENDPOINT | When monitoring_module selects it, boot is refused without the three LANGFUSE_* keys. |
sandbox-docker | A Docker daemon | SANDBOX_DOCKER_HOST | The sandbox reaper stops soon after start, /ready answers 503, and the process exits. |
sandbox-local | A local directory, no isolation | SANDBOX_LOCAL_ROOT | — (development only) |
storage-local | A local directory | STORAGE_LOCAL_ROOT_PATH | Fails at first use. |
storage-s3 | S3 or S3-compatible object storage | STORAGE_S3_BUCKET, STORAGE_S3_* | Fails at first use. |
storage-github | A GitHub repository and a token | STORAGE_GITHUB_USERNAME, STORAGE_GITHUB_REPO, STORAGE_GITHUB_TOKEN | Fails at first use. |
toolbox | Nothing. classify and generate_embeddings need an LLM or embedding provider. | — | — |
tools-github, tools-stripe, tools-twilio, tools-whatsapp | The vendor’s API credentials | the plugin’s own token variable | Every tool call fails, naming the variable. |
webhook-verifier-github, webhook-verifier-stripe | A signing secret | the variable the hook binding names | The hook door refuses the request. |