Skills are modular, reusable capabilities that provide vlm-1 with domain-specific expertise. Instead of specifying a domain, you can reference a skill by name (and optionally pin a version) in any generation endpoint.
For a full overview of skills including version pinning, composability, and the AgentSkill reference, see the Skills capability page.
Using Skills in Generation Requests
Pass skills via the config.skills field on any generation endpoint. When skills are provided, the domain field is optional — the skill’s built-in prompt and schema are used automatically.
Supported endpoints
| Endpoint | Path |
|---|
| Image → JSON | POST /v1/image/generate |
| Doc → JSON | POST /v1/document/generate |
| Audio → JSON | POST /v1/audio/generate |
| Video → JSON | POST /v1/video/generate |
Example
from PIL import Image
from vlmrun.client import VLMRun
from vlmrun.client.types import GenerationConfig, AgentSkill
client = VLMRun(api_key="<VLMRUN_API_KEY>")
response = client.image.generate(
images=[Image.open("photo.jpg")],
config=GenerationConfig(
skills=[AgentSkill(skill_name="invoice-extraction")]
)
)
Managing Skills
Skills are managed through the Agent API. Use these endpoints to create, list, lookup, update, and download skills:
| Endpoint | Description |
|---|
| List Skills | GET /v1/skills — List all available skills |
| Lookup Skill | POST /v1/skills/lookup — Lookup a skill by name, ID, or version |
| Get Skill | GET /v1/skills/{skill_id} — Get a skill by ID |
| Create Skill | POST /v1/skills/create — Create a new skill |
| Update Skill | POST /v1/skills/{skill_id}/update — Create a new version of a skill |
| Download Skill | GET /v1/skills/{skill_id}/download — Get a presigned download URL |
Skill management endpoints use the Agent API base URL: https://agent.vlm.run/v1