The per-provider LLM plugin settings are set in the provided AIHost/plugins/<Provider>/settings.json file. This article describes the settings.
Prerequisites
- The SWExtension.AIExtension folder is located in your Client's swExplorerExtensions directory
- Knowledge of your organization's AI keys and services. (Note: SystemWeaver Customers integrate with the supported AI third-party services that they have access to through their own agreements or licenses. The integration and use of third-party software is at the Customer's own risk. SystemWeaver provides only the option for integration and does not assume any responsibility or liability for the use of, or the costs associated with, third-party services.)
MedusaLLM discovers and initializes plugins from disk at startup (plugins/<Provider>/settings.json). There is one folder per provider (e.g., Claude, GPT, Ollama, LMStudio).
Credentials: with
Llm:AcceptedCredentialSources = "Runtime"(the shipped default, Llm (router-level guards)), theAPIKeyfield here is ignored — keys must be injected at runtime via the AIExtension<LLMApiKeys>XML (Configuring the View). LeaveAPIKeyempty for cloud providers. Local providers (Ollama/LMStudio) typically need no key.
Top-level Fields
| Field | Example | Description |
|---|---|---|
APIKey | "" | Provider API key. Ignored under Runtime credential source — supply via<LLMApiKeys>, Configuring the View. |
Model | claude-sonnet-4-6 | Default model id for this provider. |
BaseUrl | null / http://localhost:11434 | Override endpoint. null = provider SDK default (cloud). Set for local servers. |
MaxTokens | 4096 / 8192 | Default per-request output-token cap for this provider. |
Temperature | 0.7 | Sampling temperature (where the provider supports it). |
TimeoutSeconds | 300 / 600 | HTTP timeout for provider calls. |
AllowPlaintextHttp | true (local only) | AB-362 hardening opt-out: permit http://BaseUrl. Production cloud shapes drop this and use https://. |
RequireTls | false (local only) | AB-362 hardening: require TLS for this provider. |
AllowedHosts | (optional) | AB-362 hardening: allow-list of permitted hosts for BaseUrl. |
ModelCapabilities | array | Per-model catalogue used by the router (below). |
ModelCapabilities[] Entries
Drives model selection/routing (window fit, complexity, cost, modality).
| Field | Example | Description |
|---|---|---|
ModelName | claude-sonnet-4-6 | Model id. |
Provider | Anthropic | Provider name (routing key). |
SupportedInputFormats | ["TextOnly","Image","Pdf","Docx","Mixed"] | Accepted input modalities (enum, |
SupportedOutputFormats | ["PlainText","Json","Xml","Markdown"] | Producible output formats (enum, |
MaxContextTokens | 200000 | Context-window size (drives the routing window gate, Llm (router-level guards) / ContextCompression (proactive history compression)). |
MaxOutputTokens | 64000 | Max output tokens the model supports. |
MaxComplexity | Complex | Highest task complexity the model is eligible for (enum, Allowed enumeration values). |
CostPerMillionInputTokens | 3.00 | Input cost (used for cost-aware selection). |
CostPerMillionOutputTokens | 15.00 | Output cost. |
SupportsVision | true | Image input capability. |
SupportsDocuments | true | Document (PDF/Docx) input capability. |
Priority | 10 | Tie-breaker; higher wins among otherwise-eligible models. |
SupportedUseCases | ["General","Coding"] | Use-case tags considered during routing (enum, Allowed enumeration values). |
Allowed enumeration values
The enum-typed fields accept only the values below (case-sensitive). Values are those defined in the shipped MedusaLLM assembly; Provider is not an enum — it is a free-form string matched to the plugin/provider name (e.g. Anthropic, OpenAI, Ollama, LMStudio).
| Field | Allowed values |
|---|---|
SupportedInputFormats | TextOnly, Image, Pdf, Docx, Mixed |
SupportedOutputFormats | PlainText, Json, Xml, Markdown |
MaxComplexity | Simple, Moderate, Complex, Advanced (ascending) |
SupportedUseCases | General, Coding, Architecture, Spec, Planning, Summary, RiskManagement, Math |
SupportedInputFormats,SupportedOutputFormatsandMaxComplexityare the complete enum sets.SupportedUseCaseslists the values present in the shipped MedusaLLM assembly; treat it as authoritative for routing but note that the enum itself is owned by MedusaLLM and could gain members in a future package.
Cloud — Claude
Example
{
"APIKey": "",
"Model": "claude-sonnet-4-6",
"MaxTokens": 4096,
"BaseUrl": null,
"TimeoutSeconds": 300,
"ModelCapabilities": [
{
"ModelName": "claude-sonnet-4-6",
"Provider": "Anthropic",
"SupportedInputFormats": [ "TextOnly", "Image", "Pdf", "Docx", "Mixed" ],
"SupportedOutputFormats": [ "PlainText", "Json", "Xml", "Markdown" ],
"MaxContextTokens": 1000000,
"MaxOutputTokens": 64000,
"MaxComplexity": "Complex",
"CostPerMillionInputTokens": 3.00,
"CostPerMillionOutputTokens": 15.00,
"SupportsVision": true,
"SupportsDocuments": true,
"Priority": 10,
"SupportedUseCases": [ "General", "Coding", "Architecture", "Spec", "Planning", "Summary" ]
}
]
}Local — Ollama, plaintext loopback
Example
{
"APIKey": "",
"BaseUrl": "http://localhost:11434",
"Model": "llama3.2:3b",
"Temperature": 0.7,
"MaxTokens": 8192,
"TimeoutSeconds": 600,
"AllowPlaintextHttp": true,
"RequireTls": false,
"ModelCapabilities": [ { "ModelName": "llama3.2:3b", "Provider": "Ollama", "MaxContextTokens": 128000, "MaxOutputTokens": 8192, "MaxComplexity": "Moderate", "Priority": 8, "SupportedUseCases": [ "General", "Summary" ] } ]
}What's Next?
Refer to Configuration Manual for WeaverAI to determine if any additional configuration remains to be done.