Skip to main content

Production Checklist

This page is a go-live checklist to run before integrating AI4J into a real project. It is not about enabling every capability in one shot; it helps you confirm risk boundaries based on the modules you actually use.

1. Choose the minimal modules

What you actually useModules to review
Only model calls or toolsai4j
Spring Boot application integrationai4j + ai4j-spring-boot-starter
RAG / vector / searchai4j + your vector store or search service
MCPai4j + MCP server / gateway configuration
Agent runtimeai4j + ai4j-agent
Coding Agentai4j-coding + ai4j-cli
FlowGram backendai4j-flowgram-spring-boot-starter

Do not pull in every module ahead of time "just in case I might need it later." Stabilize the current path first, then upgrade incrementally.

2. Configuration and secrets

  • Provider keys come from environment variables, a secret manager, or the deployment platform — never committed to the repository.
  • baseUrl, model, timeout, and proxy settings can be differentiated per environment.
  • Provider configuration for dev, test, and prod does not cross-contaminate.
  • In Spring Boot projects, each configuration entry has a clear owner.
  • In multi-provider or multi-instance scenarios, the ids in AiServiceRegistry are readable and auditable.

3. Network and timeouts

  • The HTTP client has a connect timeout, read timeout, and overall call timeout.
  • Streaming scenarios handle cancellation, disconnection, and client-side close.
  • External provider errors degrade gracefully or surface a user-understandable message.
  • MCP SSE / HTTP transport has authentication, timeouts, and a reconnection strategy.
  • Proxies, private baseUrl values, and intranet endpoints have been tested.

4. Tool and MCP attack surface

  • Tools are not all exposed by default.
  • Function tools are passed in via a per-scenario allowlist.
  • MCP servers are isolated per service, user, or tenant.
  • Tools with side effects have approval, idempotency, or audit logs.
  • Tool inputs are never concatenated directly into SQL, shell, file paths, or URLs.
  • Tool outputs are masked and length-limited as needed before being returned to the model.

5. RAG and data

  • Documents ingested into the store record their source, permissions, and update time.
  • Chunks retain permission metadata, and retrieval filters by user permission.
  • The embedding provider and vector store meet data compliance requirements.
  • Rerank inputs do not leak content beyond the current user's permissions.
  • Citation rendering can be traced back to the original source.
  • Index rebuild, incremental update, and failure retry have an operations runbook.

6. Agent / Coding Agent

  • maxSteps, tool loops, and stop conditions have upper bounds.
  • The memory / session store does not record real secrets.
  • Trace records mask sensitive information.
  • The Coding Agent's file-write, shell, patch, and process tools have approval rules.
  • The workspace root, allowed write paths, and forbidden paths are explicit.
  • Subagents or delegated tasks do not automatically gain more tool permissions than they need.

7. FlowGram

  • The /flowgram/tasks/* APIs are protected by a gateway or starter auth.
  • The default in-memory task store is not used for production tasks that require persistence.
  • Whether report node details and traces are returned to the frontend has been evaluated.
  • HTTP / CODE / TOOL / KNOWLEDGE node executors have an allowlist and timeouts.
  • The conversion between the frontend editing schema and the backend execution schema has been tested.
  • cancel, report, result, and validate APIs all have error-path coverage.

8. Observability and troubleshooting

  • Model requests, tool calls, MCP calls, RAG retrieval, and agent steps carry a correlatable trace id.
  • Log levels do not emit full prompts, secrets, or customer data in production.
  • Common provider errors are mapped and documented.
  • Streaming, tool failure, MCP disconnect, and vector store failure have a troubleshooting path.
  • The docs name the internal owner for each provider, vector store, and MCP server.

9. Regression commands

Scope of changeSuggested command
docs-sitenpm run build
Core SDKmvn -pl ai4j -DskipTests=false test
Agentmvn -pl ai4j-agent -DskipTests=false test
Coding Agent / CLImvn -pl ai4j-coding -DskipTests=false test, mvn -pl ai4j-cli -DskipTests=false test
Spring Boot startermvn -pl ai4j-spring-boot-starter -DskipTests=false test
FlowGram startermvn -pl ai4j-flowgram-spring-boot-starter -DskipTests=false test

When live provider tests need real credentials, they must run under an explicit profile or a dedicated environment — default local tests must not depend on external keys.

10. Pre-release confirmation