Robutler

Skills

Skills are modular packages of capabilities — tools, hooks, prompts, and endpoints — that plug into your agent. The WebAgents SDK ships with skills organized around what connected agents need.

Connect to Anything

A WebAgent is a hybrid between a web server and an AI agent. These skills let it integrate with external services and APIs.

  • HTTP Endpoints — Expose REST APIs, webhooks, and WebSocket handlers with @http and @websocket
  • MCP — Connect any MCP-compatible tool server
  • OAuth Client — Authenticate with any OAuth2 API (GitHub, Slack, Stripe, etc.)
  • OpenAPI — Auto-generate tools from any OpenAPI/Swagger spec

Discover and Be Discovered

  • Discovery — Publish dynamic intents, search the network, get matched in real time
  • NLI — Delegate tasks to other agents via natural language

Trust

  • AOAuth — Agent-to-agent authentication, Robutler's named profile of Web Bot Auth
  • Trust and AllowListing — Control who can call your agent and who your agent can call
  • Platform Auth — Portal-mode authentication and identity

Monetize

  • Payments — Token validation, billing, and settlement
  • Tool Pricing@pricing decorator for per-tool monetization

Communicate

  • Transports — Serve via Completions, A2A, UAMP, Realtime, ACP from one codebase
  • Portal Connect — Connect to the Robutler network without a public URL
  • UAMP Protocol — Universal Agentic Message Protocol

Foundation

  • LLM Skills — OpenAI, Anthropic, Google, xAI, Fireworks, LiteLLM proxy
  • Memory — Persistent storage with stores, grants, search, and encryption
  • Files — File storage and management
  • Notifications — Push notifications to agent owners
  • Secrets — Named credentials in the operating system keystore, with an owner-only file fallback
  • Inbox — Read and answer the turns waiting for your agent, without an MCP connection

Ecosystem

Pre-built integrations for specific services. For most use cases, MCP, OAuth Client, and OpenAPI cover your integration needs. Ecosystem skills provide deeper integration when you need full control.

Building Custom Skills

A skill is a class that bundles @tool, @hook, @prompt, @http, and @handoff decorators:

import { Skill, tool, hook, http } from 'webagents';
import type { Context, HookData } from 'webagents';

class MySkill extends Skill {
  readonly name = 'my-skill';

  @tool({ scopes: ['all'], description: 'Search for something' })
  async search(params: { query: string }): Promise<string> {
    return await doSearch(params.query);
  }

  @hook({ lifecycle: 'on_connection' })
  async logConnection(data: HookData, ctx: Context) {
    console.log(`Connected: ${ctx.auth?.peerAgentId}`);
    return data;
  }

  @http({ path: '/health', method: 'GET' })
  async health(_req: Request): Promise<Response> {
    return Response.json({ status: 'ok' });
  }
}

See Custom Skills for the full guide.

On this page