JAX Overview
JAX is a chat assistant built directly into the JAMS Web Client. The icon appears in the JAMS Web Client application bar. Clicking it opens the JAX drawer on the right side of the screen.
From there, type questions about your JAMS environment and JAX answers using live data pulled from your own JAMS installation, such as current Monitor Entries, Job source, schedules, Agents, Credentials, and more.
Large Language Models
JAX is powered by a large language model (LLM) that your administrator configures during setup. The LLM can be a public API service such as OpenAI or Anthropic, a private cloud deployment such as Azure OpenAI or AWS Bedrock, or a locally hosted model such as Ollama or LM Studio that never leaves your network. The JAX service itself runs on your JAMS Web Client. The LLM endpoint is wherever your administrator pointed it.
JAX uses a large language model. LLMs are non-deterministic: the same question asked twice can produce different answers, and the model can state incorrect information confidently. Always verify Job names, dates, error codes, and other actionable details against the actual JAMS data before acting on them.
| Provider | Connection |
|---|---|
| OpenAI | Direct |
| Anthropic via AWS Bedrock-Mantle | Direct (static Bedrock API key) |
| Groq | Direct (endpoint: /openai/v1) |
| Together AI | Direct |
| DeepSeek | Direct (use legacy alias deepseek-chat; V4 requires a thinking-disabled proxy) |
| Anthropic direct | Direct (OpenAI-compat path is marked eval-only by Anthropic) |
| Azure OpenAI | Proxy (LiteLLM) — uses api-key header, not Bearer |
| AWS Bedrock with IAM | Proxy (bedrock-access-gateway) — SigV4 signing |
| Google Vertex AI | Proxy (LiteLLM) — uses GCP ADC tokens that expire hourly |
| LM Studio / Ollama / vLLM / llama.cpp (loopback) | Direct, no key required |
Thinking and reasoning models are not supported. Use a standard chat-tuned model instead. If you need a reasoning model, front it with a LiteLLM proxy that disables thinking mode.
Configuration
To set up JAX, edit the settings.json file at C:\Program Files\JAMS\Shared\JAX by default. You must configure options for the Model and Endpoint. See Enabling JAX for the required setup.
Additional configuration options can be added to the "JAX" section in another configuration file at: C:\Program Files\JAMS\JAX\appsettings.json. See the table below.
Where the LLM runs is your choice. Point "JAX:Provider:Endpoint" at a local backend (Ollama, LM Studio, vLLM) and your data never leaves the JAMS Web Client. Point it at a cloud provider and the LLM provider's privacy and retention terms apply to whatever JAX sends.
Options
| Configuration Option | Description | Default |
|---|---|---|
| Provider:Endpoint | Required. Specifies the base URL of the AI provider's API. This value should match the provider's published API endpoint. Example: https://api.anthropic.com/v1 | empty |
| Provider:Model | Required. Specifies the model identifier to use when sending requests to the AI provider. This value must match a valid model name supported by the configured endpoint. Example: claude-haiku-4-5 | empty |
| Provider:TimeoutSeconds | Optional. Specifies the maximum number of seconds JAX will wait for a response from the AI provider before timing out. If the provider does not respond within this period, the request is cancelled and an error is returned. | 120 seconds |
| RateLimit:TurnsPerMinute | Optional. Controls the maximum number of conversation turns allowed per minute. Use this setting to prevent excessive requests to the AI provider and manage API usage costs. | 20 turns |
| Limits:MaxRequestBytes | Optional. Sets the maximum size, in bytes, of a single request sent to the AI provider. Requests exceeding this limit will be rejected with 413 before being transmitted. | 1,048,576 bytes |
| Limits:MaxTranscriptMessages | Optional. Specifies the maximum number of messages retained in the conversation transcript. Older messages beyond this limit are trimmed to keep the transcript within an acceptable size for the AI provider. | 200 messages |
| Limits:MaxToolResultChars | Optional. Sets the maximum number of characters allowed in the combined results returned by tools during a conversation turn. Results exceeding this limit will be truncated. | 65,536 characters |
| Limits:MaxUserMessageChars | Optional. Specifies the maximum number of characters allowed in a single message. Messages exceeding this limit will be rejected or truncated before being processed. | 16,000 characters |
| Limits:MaxTranscriptChars | Optional. Sets the maximum total number of characters allowed across the entire conversation transcript. Transcripts exceeding this limit will have older content trimmed to stay within the allowed size. | 128,000 characters |
| Limits:TurnTimeoutSeconds | Optional. Specifies the maximum number of seconds allowed for a single conversation turn to complete, including any tool calls or processing steps. If the turn does not complete within this period, it will be cancelled and an error is returned. | 300 (5 minutes) |
Additional Items
- Write tools require approval. JAX exposes the same write tools as JAMS MCP — submitting a Job, creating a Folder, and remediating a Monitor Entry (hold, release, reschedule, or cancel). Each one pauses and shows you an approval card with the exact arguments before it runs; you click Approve or Reject. JAX cannot edit or delete Job, Folder, schedule, Agent, or Credential definitions, and has no bulk operations.
- Per-user rate limit. JAX caps each user at a configurable number of turns per minute (default in JAX:RateLimit:TurnsPerMinute). When you hit the cap, the next request returns 429 with Retry-After.
- Per-turn limits. Max transcript length and max request size are bounded by JAX:Limits. Long transcripts get rejected with
transcript_too_long. If you hit the cap, start a new chat. - No conversation history. No persistence and no shared transcripts across users or browsers.
- One LLM provider at a time. No fallback chain, no model routing, no provider-mix-and-match. Operators swap providers by editing settings.json: a changed Endpoint or Model takes effect on the next chat turn. The API key is set as an environment variable (JAX__PROVIDER__APIKEY) — changing it requires restarting the JAX service.
JAX vs JAMS MCP
JAX is separate from JAMS MCP. JAX is the in-product chat experience. The LLM lives in your JAX configuration and the conversation happens inside the JAMS Web Client. JAMS MCP is a different feature that lets external AI tools such as Claude Code, Claude Desktop, Cursor, and VS Code connect to JAMS.
JAX is different from JAMS MCP in one important way: JAX requires no software on the user's machine. If you want JAMS AI features without rolling out additional tools to end users, JAX is the right starting point.