Documentation Index
Fetch the complete documentation index at: https://docs.vlm.run/llms.txt
Use this file to discover all available pages before exploring further.
Pass skills in the config.skills parameter when executing agents:
from vlmrun.client import VLMRun
from vlmrun.client.types import AgentExecutionConfig, AgentSkill
from vlmrun.types import MessageContent, FileUrl
client = VLMRun(api_key="<VLMRUN_API_KEY>")
response = client.agent.execute(
inputs={"file": MessageContent(type="file_url", file_url=FileUrl(url="<file-url>"))},
config=AgentExecutionConfig(
skills=[AgentSkill(skill_name="patient-referral", skill_version="20260219-abc123")]
),
batch=True,
)
Multiple Skills
Pass multiple skills in the config.skills array:
response = client.agent.execute(
inputs={...},
config=AgentExecutionConfig(
skills=[
AgentSkill(skill_name="document-parsing"),
AgentSkill(skill_name="data-validation"),
]
),
batch=True,
)
Inline Skills
Instead of referencing a server-stored skill by name, you can send the skill bundle directly in the request as a base64-encoded zip. The Python SDK provides AgentSkill.from_directory to build an inline AgentSkill from a local directory in one call:
from pathlib import Path
from vlmrun.client import VLMRun
from vlmrun.client.types import AgentExecutionConfig, AgentSkill
client = VLMRun(api_key="<VLMRUN_API_KEY>")
# Build an inline AgentSkill from a local skill directory
skill = AgentSkill.from_directory(Path("./my-skill"))
response = client.agent.execute(
inputs={"file": {"type": "file_url", "file_url": {"url": "<file-url>"}}},
config=AgentExecutionConfig(skills=[skill]),
batch=True,
)
AgentSkill.from_directory zips the directory, base64-encodes it, and reads the name and description from the SKILL.md frontmatter automatically. It returns an AgentSkill with type="inline" ready for use.
See Skill Structure — Inline Skill Bundles for details on bundle contents and the Reference for AgentSkill inline fields.
Synchronous vs Batch
- Synchronous (
batch=False): Blocks until the agent completes. Best for short tasks.
- Batch (
batch=True): Returns immediately with a prediction ID. Poll for results. Best for long-running tasks like video analysis.
# Batch execution
response = client.agent.execute(
inputs={...},
config=AgentExecutionConfig(
skills=[AgentSkill(skill_name="video-analysis")]
),
batch=True,
)
# Poll for results
prediction = client.predictions.get(response.id)