A touring conciergeyou can actually build with.
Agentless is composed of open protocols (AG-UI, MCP, A2UI, MCP-UI), a typed tool API, and rendering primitives. Bring your own agent framework, your own model, your own backend. We provide the schema, the UI, and the access layer.
Open protocols, not a walled garden.
Agentless is composed of four protocols that the agent + UI ecosystem has converged on. Any agent framework that speaks them works out of the box — LangGraph, Mastra, CrewAI, ADK, Vercel AI SDK, PydanticAI.
Real-time channel
Bi-directional events between the agent and the page. Streaming responses, typed actions, shared state, multi-agent coordination.
Tools and data
The standard Anthropic + OpenAI protocol for agent ↔ backend. Every Agentless tool (pick unit, schedule tour, issue credential) is an MCP tool.
Structured UI payloads
Google's open declarative UI spec. Agents return typed JSON that renders as native React components — safer than raw HTML, richer than markdown.
Rich embeds
For anything A2UI can't express — a Matterport walkthrough, a custom canvas — fall back to sandboxed HTML delivered via MCP Apps.
Composable in both directions. Bring your own agent runtime; it emits AG-UI events and A2UI payloads, calls MCP tools, and the front-end renders everything natively.
Seven ways to ship the same agent.
One runtime, one schema, many surfaces. Pick the integration that matches your stack — every surface renders the same typed cards and speaks the same events.
White-label hosted page
We run the tour page at tour.yourbrand.com. Your domain, your colors, your typography. Vercel-ready.
{
"alias": ["tour.yourbrand.com"],
"env": {
"AGENTLESS_TENANT": "your-brand",
"AGENTLESS_ACCENT": "#c9a86a"
}
}Typed tools, bring your own agent.
The agent is pluggable. Wire CopilotKit, the Vercel AI SDK, LangGraph, Mastra — whatever your team already runs. We provide the tool schemas, the UI components, and the events.
import {
CopilotRuntime,
copilotRuntimeNextJSAppRouterEndpoint,
} from "@copilotkit/runtime";
import { OpenAIAdapter } from "@copilotkit/backend";
import { agentlessTools } from "@agentless/sdk";
const runtime = new CopilotRuntime({
actions: agentlessTools({
buildingId: "432-park",
pms: { provider: "yardi", ...yardiCreds },
access: { provider: "latch", ...latchCreds },
identity: { provider: "persona", template: "prospect-tour" },
}),
});
export const { POST } = copilotRuntimeNextJSAppRouterEndpoint({
runtime,
serviceAdapter: new OpenAIAdapter({ model: "gpt-4o" }),
endpoint: "/api/agent",
});Every tool is typed.
Tool signatures are published as Zod schemas and OpenAPI. Wire them into whichever runtime your team uses — the UI components pick up the emitted events regardless.
pick_unit→ Unit[]Return 1–5 units matching intent. Renders as a selectable list.
schedule_tour→ Slot[]Available tour windows for a unit. Renders as a schedule grid.
issue_access_code→ AccessCredentialOne-time credential bound to a verified prospect + tour window.
identity_verification→ VerificationFlowKick off Persona / Stripe Identity / Veriff. Renders an iframe.
request_human→ HandoffRoomEscalate to a leasing agent over LiveKit voice + video.
capture_feedback→ FeedbackPromptAsk the prospect what mattered — structured, typed, trackable.
Book a walkthroughof your own.
A 30-minute private demo tailored to one of your buildings. We'll capture a real unit, wire up your access hardware, and ship you a white-label preview by end of week.