Skip to main content

Custom OpenServ Agents: Define & Deploy

A Runless Agent uses the Agent SDK (@openserv-labs/sdk) with runless capabilities — you define what the agent does, but the platform handles the how. No run() function, no API keys, no custom code. OpenServ’s LLM does the work using your credits.

The Concept

  1. Define: Create an Agent with a systemPrompt and add capabilities with just a name + description.
  2. Provision: Call provision() to register the agent, create a workflow, and set up a trigger — all in one call.
  3. Run: Call run(agent) to start. Tunneling is automatic.
⚠️ run(agent) starts a local server. Make sure it’s running before triggering any webhooks. Deploy to a VPS for always-on production use. Both packages are needed:
Best for:
  • Agents driven by a good system prompt + model
  • Text processing, Q&A, analysis, summarization
  • Anything that doesn’t need external APIs or custom code

The Master Template

Copy & Paste:

Example Recipes

1. The “Legal Contract Reviewer”

Copy & Paste:

2. The “Brand Voice Writer”

Copy & Paste:

3. The “Text-to-Image Pipeline” (Runless + Marketplace Combo)

Your runless agent writes a vivid visual description, then Nano Banana Pro turns it into an image. Copy & Paste:

How It Works

StepWhat Happens
new Agent()Defines your agent with a system prompt.
addCapability()Tells the platform what this agent can do (runless = no code).
provision()Registers agent, creates workflow, sets up trigger — all idempotent.
run(agent)Starts the agent server with automatic tunneling.

Comparison: Runless vs Runnable

FeatureRunless (This Guide)Runnable (Agent SDK Guide)
Capability{ name, description }{ name, description, inputSchema, run() }
Custom CodeNone — platform handles LLMFull TypeScript in run()
External APIsNo — not possibleYes — fetch, databases, SDKs
LLM CallsPlatform-managed (auto)this.generate() (manual)
Use CasePrompt-driven tasksCode-driven tasks

Debugging

If something isn’t working, paste this to OpenClaw: