Quickstart
Learn the recommended workflow for using the Skills Protocol through practical examples. This guide covers discovering, inspecting, and executing skills.
This quickstart assumes you have access to a Skills Runtime endpoint. If you're implementing a runtime, see the Implementation Guide.
Bootstrap
When first connecting to a Skills Runtime, load the protocol guide to understand available tools:
import requests
def call_rpc(method, params=None):
response = requests.post('http://localhost:8080/rpc', json={
"jsonrpc": "2.0",
"id": "1",
"method": method,
"params": params or {}
})
return response.json()["result"]
# First call: load the guide
guide = call_rpc("load_skills_protocol_guide")
print(guide["content"])
This returns the canonical Skills Protocol Guide, which provides instructions on using the 8 core tools.
Discover skills
List available skills, optionally filtering by namespace:
skills = call_rpc("list_skills", {
"detail": "summary",
"limit": 50
})
for skill in skills["skills"]:
print(f"{skill['name']}: {skill['description']}")
The list_skills method returns deterministically sorted results. It does NOT perform semantic search.
Inspect a skill
Before executing a skill, retrieve its documentation:
skill_info = call_rpc("describe_skill", {
"name": "salesforce.leads.sync",
"detail": "summary"
})
print("Manifest:", skill_info["skill"]["manifest"])
Execute a skill
Once you understand the skill's requirements, execute it:
result = call_rpc("execute_skill", {
"name": "salesforce.leads.sync",
"args": {
"sheet_blob": "blob:sheet-123",
"env": "prod"
},
"input_blobs": ["blob:sheet-123"]
})
if result["status"] == "completed":
print(f"Success: {result['summary']}")
print(f"Details: {result['output']}")
else:
print(f"Failed: {result['error']['message']}")
Use blobs
For large data, create and manage blobs:
csv_data = """name,email,company
John Doe,john@example.com,Acme Inc
Jane Smith,jane@example.com,Tech Corp"""
blob = call_rpc("create_blob", {
"content": csv_data,
"kind": "text/csv"
})
blob_id = blob["blob_id"]
Write custom code
For multi-step workflows, write custom code that composes multiple skills:
code = """
from skills.salesforce.leads import sync_leads
from runtime import blobs, log
def main(args):
log.info("Starting sync workflow...")
# Read blob content
sheet_data = blobs.read_text(args['sheet_blob'])
# Sync to Salesforce
result = sync_leads(sheet_data, env='prod')
return {
'synced': result['count'],
'errors': result['errors']
}
"""
result = call_rpc("run_code", {
"language": "python",
"code": code,
"entrypoint": "main",
"args": {"sheet_blob": "blob:abc123"},
"mount_skills": ["salesforce.leads.sync"],
"input_blobs": ["blob:abc123"]
})
What's next?
Great, you're now familiar with the basic workflow. Here are some helpful next steps:
- Core Concepts — Understand Skills, Blobs, and Runs
- Tool Interface — Detailed tool descriptions
- API Reference — Complete method documentation