AI Providers Overview
Simple Agent Designer communicates with external AI services to power your agents. This page explains how the multi-provider architecture works and helps you choose the right provider for your needs.
How AI Providers Work
Each AI agent you create in Simple Agent Designer connects to an AI provider — an external service that processes natural language instructions and returns intelligent responses. The extension handles all communication with these services, including:
- Formatting requests in each provider's specific API format
- Sending conversation history and system instructions
- Handling tool/function call requests and responses
- Tracking token usage for cost monitoring
- Automatic retry when rate limits are hit
Supported Providers
Simple Agent Designer supports twelve AI providers. Most are cloud services that speak the OpenAI-compatible Chat Completions format; two clouds (Anthropic and Google) use their own request/response formats; one is enterprise-hosted (Azure OpenAI); and one runs models locally (LM Studio).
On first setup, the extension automatically creates provider rows for all providers except Azure OpenAI, each pre-filled with its default endpoint. A notification reminds you that the API keys are still missing. Azure OpenAI must be added manually because its endpoint is unique to your Azure resource.
OpenAI-Compatible Cloud Providers
These providers all use the OpenAI Chat Completions request/response format (choices[0].message) and authenticate with an Authorization: Bearer <key> header (except where noted):
| Provider | Description | Default Model |
|---|---|---|
| ChatGPT OpenAI | OpenAI's cloud API for the GPT family; broad knowledge, strong tool calling | gpt-5-mini |
| xAI Grok | xAI's Grok models, hosted at x.ai | grok-4 |
| Mistral | Mistral AI's European-hosted models | mistral-large-latest |
| DeepSeek | DeepSeek's cost-efficient reasoning and chat models | deepseek-chat |
| Moonshot Kimi | Moonshot AI's Kimi models with long context | moonshot-v1-8k |
| Alibaba Qwen | Alibaba's Qwen models via DashScope (international endpoint) | qwen-plus |
| Zhipu GLM | Zhipu AI's GLM models | glm-4-plus |
| MiniMax | MiniMax's models | MiniMax-M2 |
Distinct-Format Cloud Providers
These clouds use their own API formats rather than the OpenAI shape:
| Provider | Description | Auth | Default Model |
|---|---|---|---|
| Anthropic (Claude) | Claude models; nuanced analysis, large context, careful reasoning | x-api-key + anthropic-version: 2023-06-01 |
claude-haiku-4-5 |
| Google Gemini | Google's Gemini models via Generative Language API | x-goog-api-key |
gemini-2.5-flash |
Enterprise Provider
| Provider | Description | Auth | Model |
|---|---|---|---|
| Azure OpenAI | Microsoft's Azure-hosted OpenAI models with enterprise security, compliance, and data residency | api-key header |
Determined by your deployment (model is part of the endpoint URL) |
Azure OpenAI is not seeded automatically — you add it manually and supply the full deployment URL. The model is selected by the deployment named in that URL rather than by a model name.
Local Provider
| Provider | Description | Auth |
|---|---|---|
| LM Studio | Runs open-source models on your own hardware; keeps all data on your local network | Optional Authorization: Bearer <key> — only sent if you configure a key |
LM Studio provides an OpenAI-compatible API, so requests use the same format as the cloud OpenAI-compatible providers. An access key is optional and only sent when you enter one.
Provider Comparison
| Feature | OpenAI-Compatible Clouds | Anthropic / Gemini | Azure OpenAI | LM Studio |
|---|---|---|---|---|
| Hosting | Cloud (vendor-hosted) | Cloud (Anthropic / Google) | Cloud (your Azure tenant) | Local/On-premises |
| API Format | OpenAI Chat Completions | Vendor-specific | Azure OpenAI Chat Completions | OpenAI Chat Completions |
| Data Privacy | Data sent to the vendor | Data sent to Anthropic / Google | Data stays in Azure tenant | Data stays on-premises |
| Cost Model | Pay per token | Pay per token | Pay per token | Hardware cost only |
| Setup Complexity | Low | Low | Medium | Medium-High |
| Internet Required | Yes | Yes | Yes | No |
| Tool Calling | Yes (model-dependent) | Yes | Yes | Depends on model |
Per-Agent Configuration
Each agent in Simple Agent Designer is independently configured with its own AI provider and model. The model is entered as free text in the LLM Model field on the agent card; if you leave it blank, the extension falls back to that provider's default model (see the tables above). This means you can:
- Use ChatGPT for general analysis agents while using Claude for document processing agents
- Run simple categorization tasks on a local LM Studio model to save costs
- Keep sensitive data processing on Azure OpenAI while using another provider for non-sensitive tasks
- Mix and match providers based on each agent's specific needs
Token Tracking
Simple Agent Designer tracks token usage for each AI call and accumulates it during workload processing. How the count is obtained depends on the provider:
- Anthropic and Google Gemini report actual prompt token counts in their responses, which the extension uses directly.
- All OpenAI-compatible providers (ChatGPT, Grok, Mistral, DeepSeek, Kimi, Qwen, GLM, MiniMax, Azure OpenAI, LM Studio) do not have their token counts read back; the extension uses a local estimate instead.
Token tracking helps you:
- Monitor AI costs per workload
- Identify agents that consume more tokens than expected
- Optimize prompts and instructions to reduce token usage
Rate Limit Handling
If an AI provider returns a rate limit error (HTTP 429), Simple Agent Designer automatically retries the request. It waits a fixed 10 seconds between attempts and retries up to 10 times (this is a fixed delay, not exponential backoff). This ensures that temporary rate limits do not cause workload failures, though very high concurrency may still require increasing your provider's rate limits.
All requests are sent with a User-Agent: Business Central header, Content-Type: application/json, and a 5-minute (300,000 ms) HTTP timeout.