AgentSwitch classifies incoming prompts against skills you configure — URL namespaces, keywords, intents — and tells your frontier agent exactly where to route, with the schema it needs.
Each skill maps namespaces, keywords and intents to an agent — plus the input schema that agent expects.
Your agent calls POST /api/classify with the message and optional context JSON. Origin is verified server-side from request headers; backend callers may declare a schema namespace.
Deterministic rules answer fast; ambiguous prompts fall back to an LLM. You get agent, intent, schema, confidence.
Exactly what your agent will call in production — same endpoint, same response.
{
"message": "Hit Classify to see the routing decision"
}Create or update a skill here and the classifier uses it on the very next request. No redeploy.
Skills save to AgentSwitch's managed store by default. Point AgentSwitch at a markdown file in a private GitHub repo instead — skills become a versioned file you can review, diff and edit like code. Edits pushed to the repo apply on the next classify call.
Register agents backed by your own or public MCP servers — AgentSwitch runs the agentic loop (model picks tools, hub executes them via MCP, results feed back) and classify routes to them by name.
Output appears here — run .
Industry-standard eval: faithfulness, hallucination (SelfCheckGPT sampling), precision and recall. Evaluate your agent's answer against its context — or let the model answer and self-check — and see how it ranks against every prior eval.
1. Grab a Auth Token 2. Find your agent route 3. Exceute your agent.
# get a bearer token (external callers only) TOKEN=$(curl -s -X POST https://auth.publichome.page/auth/token \ -H "Content-Type: application/json" \ -d '{ "identifier": "your-app-id" }' | jq -r .access_token)
curl -X POST https://agents.publichome.page/api/classify \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "prompt": "what is the temperature in new york", "schema": "app.foo.com/weather_agent", "context": { "user_id": "u_42" } }'
{
"referrer": "app.foo.com",
"namespace": "app.foo.com/billing/*",
"skill": "billing-agent",
"agent": "billing",
"agent_intent": "refund",
"schema": { … }, // what the agent expects
"confidence": 0.87,
"method": "rules", // rules | llm | fallback | none
"context": { … } // your context, passed through
}const route = await fetch("https://agents.publichome.page/api/classify", { method: "POST", headers: { "Authorization": "Bearer $TOKEN", "Content-Type": "application/json", }, body: JSON.stringify({ prompt, schema, context }), }).then(r => r.json()); // then dispatch: await agents[route.agent].run(route.agent_intent, route.schema);