sap-sovereign-regions
Skill9 starsChanged 23 days agoApache-2.0View on GitHub
Use this skill before suggesting any SAP AI Core model, Joule capability, or BTP service in a recipe or generated code. Encodes the model and service availability deltas for China Landing, NS2, KSA, and commercial regions so the agent never recommends something that doesn't exist in the customer's region.
In this repository8 other files it gives its agents.
- sap-ai-coreSkill
- sap-hana-data-prepSkill
- sap-hana-tripleSkill
- sap-hana-vectorSkill
- sap-joule-capabilitySkill
- sap-kyma-cliSkill
- sap-repair-joule-accessSkill
- sap-setup-btp-agentSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
If the user has named a region (china, ns2, ksa, commercial / EU/US/AP), use it.
- Distinctive: line 13
If they haven't but the prompt mentions sovereign keywords ("21Vianet", "FedRAMP", "Saudi", "国产化", "ITAR"), infer the region and confirm.
- Distinctive: line 14
If still ambiguous, ASK before generating code.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
SAP Sovereign Regions — what works where
When generating code or recipes for a SAP customer, always check region context first. China and KSA have no Anthropic/OpenAI models in AI Core; NS2 has a gated subset. Hardcoding a wrong model produces a 403 at deploy time — the highest-cost failure mode for sovereign pilots.
Decision rule
- If the user has named a region (
china,ns2,ksa,commercial/ EU/US/AP), use it. - If they haven't but the prompt mentions sovereign keywords ("21Vianet", "FedRAMP", "Saudi", "国产化", "ITAR"), infer the region and confirm.
- If still ambiguous, ASK before generating code.
Model availability (June 2026 snapshot — verify against live catalog)
| Family | commercial | china | ns2 | ksa |
| Anthropic Claude | ✅ Sonnet/Opus 4.x | ❌ | ⚠ subset | ❌ |
| OpenAI GPT | ✅ 4o/5/o-series | ❌ | ⚠ subset | ❌ |
| Mistral | ✅ | ✅ Large 2407 | ⚠ check | ✅ Large 2407 |
| Llama / SAP-hosted OSS | ✅ | ✅ preferred | ✅ | ✅ |
| Qwen / DeepSeek | rare | ✅ via partner | ❌ | rare |
| Falcon | rare | rare | rare | ✅ |
| Embeddings (OpenAI) | ✅ | ❌ | ⚠ subset | ❌ |
| Embeddings (multilingual SAP-hosted) | ✅ | ✅ | ✅ | ✅ |
Default picks for new recipes
| Region | LLM | Embedding |
| commercial | anthropic--claude-sonnet-4-5 | text-embedding-3-large |
| china | mistralai--mistral-large-2407 | SAP-hosted multilingual |
| ns2 | pull live catalog; never default | pull live catalog |
| ksa | mistralai--mistral-large-2407 | SAP-hosted multilingual (verify Arabic quality) |
Other deltas
| Capability | china | ns2 | ksa |
| Cross-region egress | blocked | blocked (FedRAMP) | restricted |
| Public PyPI / Docker Hub | blocked; use mirrors | mirror only | mirror only |
| Joule UI | gated | gated | GA |
| Joule Studio 2.0 / BAIP | later | later | later |
When you must hardcode a region default
Don't. Scaffold with /sap-a2a-agent-toolkit:create-agent from the A2A Agent Toolkit submodule at toolkits/a2a-agent-toolkit/ instead, passing --llm-provider aicore or --llm-provider openai-compatible based on live preflight output and the source-backed regional reference in references/btp-regional-availability.md. The generated project reads the model name from an env var (MODEL_NAME for AI Core, MODEL_GATEWAY_URL + gateway-side deployment name for openai-compatible) — never inline a model name in a template's source code.
Verify
# Confirm a model is available in the customer's region:
curl -s "$AICORE_BASE_URL/v2/lm/scenarios/foundation-models/configurations" \
-H "Authorization: Bearer $TOKEN" -H "AI-Resource-Group: $AICORE_RESOURCE_GROUP" \
| jq -r '.resources[].name' | grep -i "$MODEL_QUERY"Cross-references
references/btp-regional-availability.md— source-backed regional availability matrix and operating guidance- Region-aware bootstrap walkthrough:
recipes/00-develop/00-region-preflight/
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

