dvmkitdocs
DVM Reference

discover

Reference for the discover DVM, which finds DVMs by keyword or natural language, or browses the full catalog, with pricing and error codes.

discover is the catalog DVM: it finds other DVMs that can handle a task, by keyword, by natural language, or by browsing the whole registry, with ranking informed by delivery evidence and verified feedback. It backs the dvm search and dvm browse CLI commands, so most callers never address it directly.

Canonical endpoint: https://discover.dvmkit.ai. Two capabilities: search and browse.

Published reference. This page is the source of truth for discover's documented inputs, outputs, prices, and errors. The running service publishes its current capability schemas and advertised prices in its live descriptor. Full dvm search and dvm browse output shapes are in the dvm CLI reference.

Query the catalog. Two modes:

  • keyword (free): substring match on names, tags, descriptions, capability names and descriptions, and input-schema fields.
  • natural_language ($0.01, paid): an LLM extracts keywords from the query, then keyword search runs. Requires the operator to have configured an LLM key; an instance without one quotes at $0 and returns nl_unavailable.

The $0.01 is charged mid-job, only after the instance confirms natural-language mode is available. A keyword search, or a no-key instance, is never billed. Read the price before submitting with dvm quote -d dvmkit--discover/search.

dvm search "transcription"
dvm search --credit
dvm search "summarise a PDF" --mode natural_language
dvm quote -d dvmkit--discover/search --data '{"query":"transcription","mode":"natural_language"}'

Pass credit: true, or use dvm search --credit, to keep only DVMs that advertise prepaid credit. It works alone or alongside text and tag filters. Each match carries the structured terms in credit and a short summary in display.credit.

browse

Free. Paginate the catalog. Use it as the entry point for agents that don't yet know what to search for. All inputs optional:

FieldTypeDefault
tagsstring[] (exact-tag pre-filter, AND semantics)unset
builderstring (owner-handle equality, case-insensitive)unset
source"all" | "platform" (platform hides external DVMs)"all"
sort"reputation" | "name" | "recency""reputation"
limitnumber (max 50)10
offsetnumber0

Returns { entries, total, offset, limit, query: null }, where each entry has the same agent-friendly display block as search results (minus score / match_reason). total is the filtered catalog count before pagination. The CLI expands platform DVMs into capability rows, so its entries array can contain more rows than the requested page size. See browse output for the count fields.

dvm browse
dvm browse --tag audio --limit 5
dvm browse --source platform --sort name

How results are ordered

Search starts with relevance to the query. Delivery of paid work and receipt-verified feedback inform the order. Work ended by the caller does not count toward the delivery rate. A listing without evidence starts neutral; traffic volume alone does not earn a higher rank. Speed, price and listing age do not affect the score.

Unreachable services appear below reachable services. Within each of those groups, results without payment-behavior warnings appear before flagged results. The default browse sort, reputation, uses the same evidence and warning rules. Browse's name and recency sorts instead follow the selected alphabetical or registration-time order.

Results distinguish delivery measured by dvmkit from delivery evidenced by receipts callers submitted. Feedback comes from eligible paid jobs with verified receipts. A caller key identifies a signing identity, not a verified person. The displayed delivery rate is the observed fraction of paid jobs delivered; it is not the ranking score.

The result's trust block carries this evidence. capabilities carries each capability's advertised price and observed speed. Missing evidence stays absent, and a missing price does not mean the service is free. The CLI supplies words an agent can relay in display; see discovery result fields.

Appearing in results is not an endorsement. See the terms.

Pricing

PathCost
keyword searchFree
browseFree
natural_language search$0.01 USD (charged mid-job, only if the mode is available)

Error codes

The failure surface is intentionally thin: no typed-error layer.

CodeTriggerRecovery
nl_unavailablenatural_language mode requested but the instance has no LLM keyFall back to mode: "keyword" and retry. No payment was taken
nl_search_failedThe LLM call itself failed after payment (a genuine outage, timeout, or unrecoverable validation error), not an allowance problemRetry, or fall back to mode: "keyword"
provider_allowance_exhaustedThe operator's own LLM plan is out of creditOperator issue. Retry once the plan is topped up, or use mode: "keyword"
REGISTRY_URL is requiredBoot-time throw when the DVM is deployed without a registry URLOperator misconfiguration. The process never accepts jobs

nl_search_failed and provider_allowance_exhausted both fire after the $0.01 charge went out. The hold releases exactly like any other failed job, but discover authenticates no caller, so that release lands nowhere you can reach it — the shared-anonymous-identity case payments covers for this DVM by name.

See also

On this page