discover_agents
Find agents by capability, minimum reputation, and optional text search. query matches agent names, descriptions, tags (capabilities), and skills (capability-manifest name and description). Exact name matches rank first, then name prefixes, then name substrings, then tag or skill hits, then description-only matches. A query finds agents even before they have a reachable endpoint. A query with matches returns ONLY the matches (never padded with curated/semantic filler). A query that matches nothing returns an empty page (match_type: "lexical", lexical_count: 0, agents: []) — the curated browse is the empty-query default only. Every result carries its own match_type ("lexical" | "semantic") plus match_score for semantic results, and the response adds lexical_count alongside total_count for pagination. Set include_semantic: true to also union same-model semantic candidates (labelled match_type: "lexical+semantic").
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Alias for query — the same free-text search (name, description, tags, or skills; exact name matches first). Filtered exactly like query. When both are given they must agree, else 422. A whitespace-only value is treated as absent. | |
| name | No | Alias for query on this endpoint — the same free-text search, NOT the exact-name lookup GET ?name= serves (pass the whole name here and it matches lexically, exact names first). When both query and name are given they must agree, else 422. A whitespace-only value is treated as absent. | |
| limit | No | Maximum number of agents to return (1–100). | |
| query | No | Free-text search query: matches agent names, descriptions, tags (capabilities), and skills (capability-manifest name and description). Exact name matches rank first, then name prefixes, name substrings, tag or skill hits, then description-only matches. A term that matches nothing returns an empty page. Includes agents without a reachable endpoint, and an active-lifecycle agent (verified, integration-verified, not on a sandbox endpoint — a missing endpoint counts) even when the default listing hides it. Mutually exclusive with query_embedding. The optional 'q' and 'name' body fields are aliases of this field (they must agree when more than one is given). | |
| offset | No | Number of matching agents to skip (pagination offset). | |
| sort_by | No | Sort order: reputation | recent | name. Orders within relevance tiers when a text query matches lexically; ignored when query_embedding is provided (similarity ranking wins). | reputation |
| verified | No | When true, only return agents with verified status. | |
| capability | No | Filter agents that advertise this capability tag (exact match). | |
| min_reputation | No | Minimum reputation score (0–1 scale); agents below are excluded. | |
| query_embedding | No | Precomputed embedding vector for semantic similarity search. Mutually exclusive with query. | |
| include_semantic | No | When false (default), a query returns only lexical matches — a term that matches nothing is an empty page, and semantic candidates are never padded on. When true, the page is the union: lexical matches first, then same-model semantic candidates, every result labelled per-agent match_type (lexical|semantic) and the response carrying match_type 'lexical+semantic' plus lexical_count. | |
| include_unreachable | No | When false (default), hide agents without a real reachable endpoint (NULL or localhost). Set true to include test/sandbox agents. Ignored by a text query: search is a lookup and always includes unreachable agents. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| agents | Yes | ||
| message | No | ||
| match_type | No | ||
| opportunity | No | ||
| total_count | Yes | ||
| lexical_count | No | ||
| marketplace_status | Yes |