Skip to main content

Features are the control plane

Features are product-level buckets for tools such as:
  • User management
  • Billing
  • Orders
  • Courses
  • Catalog
They let you:
  • keep tools organized
  • bulk-enable or bulk-disable a whole surface
  • reason about what the agent is allowed to do
If you disable a feature, every tool inside that feature becomes unavailable to the agent. If only some tools are enabled, the feature shows as partially enabled.

How classification works

When you create a tool, you can:
  • auto-classify it into the best existing feature
  • attach it to an existing feature
  • create a new feature on the spot
You can reclassify a tool later, move it, or disable it at any time.

Backend tools

Backend tools describe structured API requests. In widget mode, these requests are executed by the widget in the user’s browser against your configured base URL. Each backend tool includes:
  • HTTP method
  • path
  • function name
  • description
  • parameters for path, query, headers, or body
Tool call from Warpy
  -> Base URL
  -> Path + params
  -> Session headers
  -> Query and body
  -> Browser fetch to your API

Backend tool rules

  • Use clear action names such as create_invoice or get_student_profile.
  • Write descriptions that say exactly when the tool should be used.
  • GET tools should not include a body.
  • Start with the highest-value, lowest-risk actions first.

Frontend tools

Frontend tools are manual browser handlers you expose in the host app. Warpy calls them like this:
window.warpy("tool_name", vars)
Minimal example:
window.warpy = async (toolName, vars) => {
  if (toolName === "open_order_drawer") {
    return { ok: true, orderId: vars["orderId"] }
  }

  throw new Error(`Unknown tool: ${toolName}`)
}
Use frontend tools when:
  • the action already exists in the client
  • you need framework-specific state updates
  • you want a controlled browser action instead of UI inference

Screen autopilot

Screen autopilot is separate from your manually defined frontend tools. When enabled, Warpy gets built-in browser capabilities such as:
  • read_page
  • find_elements
  • frontend
  • js_exec
Use it when:
  • you do not have a dedicated tool yet
  • the user wants page-level help or UI completion
  • the action is easier to perform through the live interface than through an API

Which surface to use

  • Use a backend tool for stable business actions such as create, update, approve, refund, export, or search.
  • Use a frontend tool for drawers, side panels, navigation, and framework-specific state changes.
  • Use screen autopilot when the best execution path is the live UI and no manual tool exists yet.

Tool routing in practice

User request
  |
Relevant tool?
  |-- Backend tool exists -> Run backend tool
  |-- Frontend tool exists -> Run frontend tool
  '-- No tool fits -------> Use screen autopilot -> Read page and act on the UI

Ongoing maintenance

Features are meant to stay editable:
  • rename a feature
  • move a tool to a different feature
  • enable or disable a single tool
  • enable or disable an entire feature
  • delete a feature if you want to remove its tools from the agent surface