Providers
Core SDK plus one Business Central app extension per provider.
AI Open SDK splits into a core library and provider extensions. Your app depends on core plus only the providers you call. Swapping providers is a dependency and factory change; callers keep using "AIOS Client" and "AIOS Language Model".
Packaging
| App | Role |
|---|---|
| AI Open SDK | Core: "AIOS Client", schema, tools, interfaces, "AIOS Mock" |
| AI Open SDK Anthropic | "AIOS Anthropic" → Claude text models |
| AI Open SDK OpenAI | "AIOS OpenAI" → chat and image models |
| AI Open SDK OpenCode Zen | "AIOS OpenCode Zen" → Zen gateway |
| AI Open SDK OpenAI Compatible | "AIOS OpenAI Compatible" → any Chat Completions base URL |
Each provider extension depends on AI Open SDK (core). Your extension depends on core and on each provider app you install.
"dependencies": [
{
"id": "f624c4ac-75e8-4ce4-9a31-c2d6ff2a05a1",
"name": "AI Open SDK",
"publisher": "Guillermo Padilla",
"version": "0.1.0.0"
},
{
"id": "b6caa435-9837-4155-9932-0b591bdeb4d1",
"name": "AI Open SDK Anthropic",
"publisher": "Guillermo Padilla",
"version": "0.1.0.0"
}
]Use the published App Ids from AppSource or your symbol feed. Install only the provider apps you need.
Capabilities
| Extension | Factory | Text | Image |
|---|---|---|---|
| AI Open SDK (core) | "AIOS Mock" | Yes | Yes |
| AI Open SDK Anthropic | "AIOS Anthropic" | Yes | No |
| AI Open SDK OpenAI | "AIOS OpenAI" | Yes | Yes |
| AI Open SDK OpenCode Zen | "AIOS OpenCode Zen" | Yes | No |
| AI Open SDK OpenAI Compatible | "AIOS OpenAI Compatible" | Yes | No |
How a provider plugs in
- The provider app implements
"AIOS Provider"and returns"AIOS Language Model"(and"AIOS Image Model"when supported). - Your code calls
Factory.Model(...)(orFactory.ImageModel(...)) and passes the model into"AIOS Client". - API keys use
SecretTextend to end. - Live providers send data only after an administrator approves the provider privacy notice. See Getting Started.
Anthropic: Codeunit "AIOS Anthropic";
Client: Codeunit "AIOS Client";
Result: Codeunit "AIOS Generate Result";
ApiKey: SecretText;
begin
Result := Client.GenerateText(
Anthropic.Model('claude-fable-5', ApiKey),
'Hello');
end;