DEV Community

Rhumb
Rhumb

Posted on • Originally published at rhumb.dev

Resolve a web-search capability in three calls

Most agent demos skip the uncomfortable part.

They show a model deciding to use a tool, then jump straight to a successful API call. In production, the missing step is usually the whole problem:

  • what capability is actually supported;
  • which provider path can execute it;
  • what the call is likely to cost;
  • and what credential boundary applies before the agent spends anything.

Rhumb splits that into two jobs:

  • Index ranks services so agents and operators can compare what exists.
  • Resolve routes supported capabilities into governed calls.

For search.query (web search), the useful preflight is two open reads and one paid / authorized continuation.

1. Resolve the supported provider paths

API="https://api.rhumb.dev/v1"

curl "${API}/capabilities/search.query/resolve"
Enter fullscreen mode Exit fullscreen mode

For search.query, this open preflight read shows supported provider paths and routing context. It is a way to ask: β€œwhat can Resolve do for this capability before I hand it money or credentials?”

2. Estimate the concrete execution rail

curl "${API}/capabilities/search.query/execute/estimate"
Enter fullscreen mode Exit fullscreen mode

The estimate call checks the concrete hosted execution rail before spend.

That matters because resolve and estimate are answering related but different questions:

  • resolve shows supported provider paths and routing context.
  • estimate shows the concrete execution rail available for the call you are about to make.

The estimate is not required to be the first provider listed by resolve. Routing for an agent call is not leaderboard purity. It has to account for supported capability path, credential mode, estimated cost, availability / circuit state, latency proxy, and explicit per-call constraints.

3. Execute only through a paid or authorized rail

Execution is different. It is not anonymous.

curl -X POST "${API}/capabilities/search.query/execute" \
  -H "X-Rhumb-Key: rhumb_live_..." \
  -H "Content-Type: application/json" \
  -d '{"body":{"query":"best CRM for seed-stage B2B SaaS","max_results":5}}'
Enter fullscreen mode Exit fullscreen mode

For repeat traffic, the normal path is a funded governed X-Rhumb-Key. Wallet-prefund or x402 can also be payment rails when zero-signup per-call payment is the point.

The boundary is intentional:

  • open discovery and preflight first;
  • paid or authorized execution second;
  • receipt / explanation path for the actual call.

What not to overread

This quickstart is scoped to one supported capability: search.query.

It does not mean every indexed service is executable through Resolve. Discovery breadth is wider than callable coverage. It also does not mean agents execute anonymously, or that Resolve blindly picks the highest-ranked provider every time.

The model is simpler than that:

Index ranks. Resolve routes.

Start with the public quickstart:

https://rhumb.dev/quickstart

Top comments (0)