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​