Guide · Agent skill
How to use the SageMaker Serving Image Selection agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
This guide covers the hf-cloud-serving-image-selection skill, an agent skill that makes an AI coding agent pick the right prebuilt serving container before it deploys a model to an AWS SageMaker endpoint. An agent skill is a folder with a SKILL.md file of instructions that the agent loads when a task matches its description. By the end you will know how to install the skill, how to phrase a request so it triggers, what it needs to run, and which safety points to check.
Quick start
- 1Download and unzip the skill. Download the ZIP from the page you found this guide on and unzip it into ~/.claude/skills/ or your project's .claude/skills/ folder. Alternatively, upload the ZIP under Settings → Capabilities → Skills in the Claude apps.
- 2Confirm your AWS setup. Make sure you have an AWS account with SageMaker access and working AWS credentials, and know the region you will deploy to.
- 3Ask for the deployment in plain words. Describe the model and the goal, for example 'host this HuggingFace model on a SageMaker endpoint' and include your region.
- 4Let the agent check the model architecture. For rerankers and unfamiliar models, the agent can fetch config.json from the model's Hugging Face page to see whether it is a causal-LM or a sequence-classification model.
- 5Read the URI from the AWS catalog. The agent should open the AWS Deep Learning Containers catalog page, pick the matching family, and substitute your region into the example URI rather than typing one from memory.
- 6Deploy with the chosen image. The agent passes the URI to deploy.py using --image-uri. If no HuggingFace image fits, it should record which fallback reason applies in the deployment log.
What the skill makes the agent do
When the agent is about to deploy a model to a SageMaker endpoint and needs an image URI, this skill tells it how to choose the serving container. The skill's core rule is that HuggingFace-curated Deep Learning Containers always win when they can serve the model. These are HuggingFace vLLM for LLMs and generative rerankers, HuggingFace vLLM-Omni for multimodal models, TEI for embeddings and encoder cross-encoder rerankers, and the HF Inference Toolkit for other transformers models.
The skill also tells the agent not to hardcode a container URI from memory, not to default to TGI (which the skill describes as archived), and to read the current URI from AWS's official Deep Learning Containers catalog page. Its stated purpose is to prevent stale-image failures and wrong-region URIs.
- Generic images (AWS vLLM, DJL-LMI, SGLang) are used only when no HuggingFace image is compatible, never just because they have a newer version.
- Encoder rerankers (for example BERT-family ForSequenceClassification models) go to TEI, while generative rerankers (causal-LM models) go to HuggingFace vLLM.
- Before creating resources, the agent can check the model's config.json architecture to decide between vLLM and TEI.
Install the skill from the ZIP file
Download the skill's ZIP file from the page where you found this guide. Then unzip it into one of two places. For a personal setup, unzip it into ~/.claude/skills/. For a single project, unzip it into the project's .claude/skills/ folder. The skill folder should contain SKILL.md, scripts/mirror_image.py and references/model-to-image.md.
If you use the Claude apps instead of a local setup, you can upload the ZIP there under Settings → Capabilities → Skills.
- Personal install: ~/.claude/skills/
- Project install: .claude/skills/ inside your project
- Claude apps: Settings → Capabilities → Skills, then upload the ZIP
Trigger the skill with natural requests
You do not need to name the skill. The skill's description lists the kinds of requests that should activate it, so ask for a deployment in ordinary words. The skill is meant to run whenever a model deployment needs an image URI chosen, including before any container URI is hardcoded in deployment code.
Requests that match the skill's description include the phrases below. Mention your region when you can, because the skill substitutes the user's region into the catalog URI.
- 'Deploy this LLM' to a SageMaker endpoint
- 'Host this HuggingFace model' on SageMaker
- 'Serve this fine-tuned model'
- 'Deploy this embedding model'
- 'Host a reranker'
- 'Serve a sentence-transformers model'
Examples of what the agent will decide
Suppose you ask the agent to host a Qwen3 reranker on SageMaker. The skill says a generative reranker is a causal-LM judge, so it should be deployed like a text-generation LLM on HuggingFace vLLM, not on TEI. Before creating any endpoint, the agent can fetch the model's config.json to confirm the architecture.
Suppose you ask for a BGE-style cross-encoder reranker. Its config.json would list a ForSequenceClassification architecture, which points to TEI. In both cases the agent should read the URI from the AWS catalog page and pass it to deploy.py with --image-uri.
- Open-weight text LLM (Llama, Qwen, Mistral): HuggingFace vLLM
- Multimodal model: HuggingFace vLLM-Omni
- Embedding model or encoder reranker: TEI
- Generative reranker: HuggingFace vLLM
curl -s https://huggingface.co/<model-id>/raw/main/config.jsonWhat you need before it runs
You need an AWS account with SageMaker access and AWS credentials. The skill also needs network access to the AWS Deep Learning Containers catalog pages, because it reads current URIs from them rather than bundling them.
Mirroring has extra needs. The bundled script scripts/mirror_image.py needs Python 3. Mirroring also needs a Docker daemon, the AWS CLI with ECR and ECR Public permissions. These are needed only if you use the mirroring script.
- AWS account with SageMaker access and AWS credentials (required)
- Network access to the AWS Deep Learning Containers catalog pages (required)
- Python 3 for mirror_image.py (for mirroring)
- Docker daemon (for mirroring only)
- AWS CLI with ECR and ECR Public permissions (for mirroring only)
Safety notes on scripts and network access
This skill runs scripts and uses the network. The skill reads catalog pages and can fetch model config.json files from huggingface.co during the preflight check. The bundled mirror_image.py script can copy a public image into a private AWS registry, which is useful in VPCs without internet egress.
Review the script before you run it, and run mirroring only in an account where copying images into your private registry is allowed. The skill does not verify live catalog contents on its own, so check the URI on the catalog page yourself before deployment.
- The skill runs scripts/mirror_image.py, so read it before running it.
- The skill uses the network to read catalog pages and model config files.
- Check the chosen URI against the AWS catalog page; the skill does not bundle current URIs.
What people use it for
- Deploying an open-weight text LLM such as Llama, Qwen or Mistral to a SageMaker endpoint on HuggingFace vLLM.
- Hosting a sentence-transformers embedding model on TEI.
- Serving a generative reranker such as a Qwen3 reranker on HuggingFace vLLM instead of TEI.
- Fixing a deployment that fails with a Failed to pass health check error caused by a wrong container image.
- Mirroring a public container image into private ECR for a VPC with no NAT gateway.
Frequently asked questions
How do I install the hf-cloud-serving-image-selection skill?
Download the skill's ZIP file and unzip it into ~/.claude/skills/ for a personal setup or into a project's .claude/skills/ folder. You can also upload the ZIP in the Claude apps under Settings → Capabilities → Skills.
What does the skill require to run?
You need an AWS account with SageMaker access and AWS credentials, plus network access to the AWS Deep Learning Containers catalog pages. Python 3, a Docker daemon and AWS CLI permissions for ECR and ECR Public are needed only if you use the mirroring script.
Is the hf-cloud-serving-image-selection skill free to use?
The skill is published under the Apache-2.0 licence, as listed on its item page. Check the licence file in the skill's source for the full terms before you reuse or redistribute it.
Why does the skill avoid TGI?
The skill describes Text Generation Inference as archived and says models released after the archive, such as Qwen3, fail ping health checks on TGI. It directs the agent to use HuggingFace vLLM for LLMs instead.
What does the skill do about a Failed to pass health check error?
The skill says that error is often caused by a wrong container, a stale tag or the wrong AMI. It addresses this by choosing a HuggingFace container and reading its current URI from the AWS catalog page rather than guessing.
How is this different from picking a generic vLLM image?
The skill uses generic images such as AWS vLLM, DJL-LMI or SGLang only when no HuggingFace image is compatible. A newer version number on a generic image is not a reason to pick it.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
This skill suits engineers deploying open-weight LLMs, embedding models or rerankers to SageMaker who want the agent to choose a container with a checked, current URI. It is a poor fit if you need a specific generic vLLM or DJL version for a stated reason, or if you deploy outside AWS SageMaker, where these container rules do not apply.
Download the skill