QVeris — Capability Discovery & Tool Calling for AI Agents
QVeris is a tool-finding and tool-calling engine, not an information search engine. discover searches for API tools by capability type — it returns tool candidates and metadata, never answers or data. call then runs the selected tool to get actual data.
discover answers "which API tool can do X?" — it cannot answer "what is the value of Y?"
To look up facts, answers, or general information, use web_search instead.
Setup: Requires QVERIS_API_KEY from https://qveris.ai.
Credential: Only QVERIS_API_KEY is used. All requests go to https://qveris.ai/api/v1 over HTTPS.
Invocation Tiers
Check availability in order and use the first working tier:
Tier 1 — Native tools (most reliable): If qveris_discover and qveris_call tools are available in your environment, use them directly — skip all other tiers.
Tier 2 — http_request tool (universal fallback): Call the QVeris HTTP API directly using the http_request tool (see QVeris API Reference below). Available in all OpenClaw environments, including those where exec is disabled.
Tier 3 — Script execution: Run node {baseDir}/scripts/qveris_tool.mjs discover/call/inspect — only when {baseDir}/scripts/ directory is present and the exec tool with node are available.
Tier 4 — Web search: If all tiers above are unavailable, fall back to web_search for qualitative needs.
When and How to Use QVeris
Choosing the Right Tool
| Task type | Preferred approach | Reasoning |
|---|
| Computation, code, text manipulation, stable facts | Local / native | No external call needed |
| Structured/quantitative data (prices, rates, rankings, financials, time series, scientific data) |
QVeris first | Returns structured JSON from professional APIs — more accurate than web pages |
| Historical data, reports, or sequences (earnings history, economic series, research datasets) |
QVeris first | Professional APIs provide complete structured datasets; web pages give fragments |
| Non-native capability (image/video gen, OCR, TTS, translation, geocoding, web extraction, PDF) |
QVeris first | These capabilities require external APIs; web search cannot perform them |
| Any task that local tools or other configured tools cannot fulfill |
Discover via QVeris | QVeris aggregates thousands of tools — it may have what you need |
| No web search tool available in this environment |
Discover web search tools via QVeris | Run
discover "web search API" to find one, then
call it — this is a two-step substitute, not a reason to send information queries to discover |
| Factual questions ("Is X listed?", "What is Y's stock symbol?", "Who founded Z?") |
Web search | QVeris discover finds API tools, not answers — factual lookups need web_search |
| Qualitative information (opinions, documentation, tutorials, editorial content) |
Web search first | Better served by browsing real pages and reading text |
| QVeris returned no useful results after a retry |
Fall back to web search | Acceptable fallback for data tasks; mandatory for qualitative tasks |
Key distinction: QVeris discover finds API tools by capability type (e.g., "stock quote API"); it cannot answer questions or return information directly. For factual questions → web_search. For structured data → discover the right tool first, then call it. When in doubt, ask: "Am I looking for a tool or for information?"
Usage Flow
- 1. Discover: Find tool candidates for the capability you need. Write the query as an English tool type description (e.g.,
"stock quote real-time API"). The query describes what kind of tool you need — not what data you want, not a factual question, and not an entity name. - Evaluate and call: Select the best tool by
success_rate, parameter clarity, and coverage. Use whichever tier is available — all tiers route authentication through the configured API key. - Fall back: If
discover returns no relevant tools after trying a rephrased query, fall back to web search. Be transparent about the source. - When everything fails: Report which tools were tried and what errors occurred. Training-data values are not live results.
Tool Discovery Best Practices
Discovery Query Formulation
- 1. Describe the tool type, not the information you want — the query must describe an API capability, not a factual question or entity name:
- GOOD:
"China A-share real-time stock market data API" — describes a tool type
- BAD:
"Zhipu AI stock symbol listing NASDAQ" — this is a factual question, use web_search
- BAD:
"智谱AI 是否上市 股票代码" — this is a factual question in Chinese, use web_search
- GOOD:
"company stock information lookup API" — describes a tool type
- BAD:
"get AAPL price today" — this is a data request, not a tool description
- GOOD:
"stock quote real-time API" — describes a tool type
- 2. Try multiple phrasings if the first discovery yields poor results — use synonyms, different domain terms, or adjusted specificity:
- First try:
"map routing directions" → Retry: INLINECODE28
- 3. Convert non-English requests to English capability queries — user requests in any language must be converted to English tool type descriptions, not translated literally:
| User request | BAD discover query | GOOD discover query |
|-------------|-------------------|---------------------|
| "智谱AI是否上市" / "Is Zhipu AI listed?" | ~~"Zhipu AI stock symbol listing"~~ (factual question → use web_search) | "company stock information lookup API" |
| "腾讯最新股价" / "latest Tencent stock price" | ~~"Tencent latest stock price"~~ (data request) | "stock quote real-time API" |
| "港股涨幅榜" / "HK stock top gainers" | ~~"HK stock top gainers today"~~ (data request) | "hong kong stock market top gainers API" |
| "英伟达最新财报" / "Nvidia latest earnings" | ~~"Nvidia quarterly earnings data"~~ (data request) | "company earnings report API" |
| "文字生成图片" / "generate image from text" | ~~"generate a cat picture"~~ (task, not tool type) | "text to image generation API" |
| "今天北京天气" / "Beijing weather today" | ~~"Beijing weather today"~~ (data request) | "weather forecast API" |
Domains with Strong QVeris Coverage
Discover tools in these domains first — QVeris provides structured data or capabilities that web search cannot match:
- - Financial/Company:
"stock price API", "crypto market", "forex rate", "earnings report", INLINECODE45 - Economics:
"GDP data", INLINECODE47 - News/Social:
"news headlines", INLINECODE49 - Blockchain:
"DeFi TVL", INLINECODE51 - Scientific/Medical:
"paper search API", INLINECODE53 - Weather/Location:
"weather forecast", "air quality", "geocoding", INLINECODE57 - Generation/Processing:
"text to image", "TTS", "OCR", "video generation", INLINECODE62 - Web extraction/Search:
"web content extraction", "web scraping", INLINECODE65
Known Tools Cache
After a successful discovery and call, note the tool_id and working parameters in session memory. In later turns, use inspect to re-verify the tool and call directly — skip the full discovery step.
Tool Selection and Parameters
Selection Criteria
When discover returns multiple tools, evaluate before selecting:
- - Success rate: Prefer
success_rate >= 90%. Treat 70–89% as acceptable. Avoid < 70% unless no alternative exists. - Execution time: Prefer
avg_execution_time_ms < 5000 for interactive use. Compute-heavy tasks (image/video generation) may take longer. - Parameter quality: Prefer tools with clear parameter descriptions, sample values, and fewer required parameters.
- Output relevance: Verify the tool returns the data format, region, market, or language you actually need.
Before Calling a Tool
- 1. Read all parameter descriptions from the discovery results — note type, format, constraints, and defaults
- Fill all required parameters and use the tool's sample parameters as a template for value structure
- Validate types and formats: strings quoted (
"London"), numbers unquoted (42), booleans (true/false); check date format (ISO 8601 vs timestamp), identifier format (ticker symbol vs full name), geo format (lat/lng vs city name) - Extract structured values from the user's request — do not pass natural language as a parameter value
Error Recovery
Failures are almost always caused by incorrect parameters, wrong types, or selecting the wrong tool — not by platform instability. Diagnose your inputs before concluding a tool is broken.
Attempt 1 — Fix parameters: Read the error message. Check types and formats. Fix and retry.
Attempt 2 — Simplify: Drop optional parameters. Try standard values (e.g., well-known ticker). Retry.
Attempt 3 — Switch tool: Select the next-best tool from discovery results. Call with appropriate parameters.
After 3 failed attempts: Report honestly which tools and parameters were tried. Fall back to web search for data needs (mark the source).
Large Result Handling
Some tool calls may return full_content_file_url when the inline result is too large for the normal response body.
- - Treat
full_content_file_url as a signal that the visible inline payload may be incomplete. - Conclusions drawn from
truncated_content alone when a full-content URL is present may be incomplete. - If your environment already has an approved way to retrieve the full content, use that separate tool or workflow.
- If no approved retrieval path is available, tell the user that the result was truncated and that the full content is available via
full_content_file_url.
QVeris API Reference
Use these endpoints when calling via http_request tool (Tier 2).
Base URL: INLINECODE80
Required headers (on every request):
CODEBLOCK0
Discover tools
CODEBLOCK1
Response contains search_id (required for the subsequent call) and a results array — each item has tool_id, success_rate, avg_execution_time_ms, and parameters.
Call a tool
CODEBLOCK2
Response contains result, success, error_message, elapsed_time_ms.
Inspect tool details
CODEBLOCK3
Quick Start
Tier 1 — Native tools (if available)
Use qveris_discover and qveris_call directly when present in your tool list.
Tier 2 — http_request tool
Step 1 — Discover:
CODEBLOCK4
Step 2 — Call (use tool_id and search_id from step 1):
CODEBLOCK5
Tier 3 — Script execution (if {baseDir}/scripts/ is present)
CODEBLOCK6
Quick Reference
Self-Check (before responding)
- - Is my discover query a tool type description or a factual question / entity name? → If it contains specific company names, "is X listed?", or "what is Y?" — use websearch instead. Discover finds tools, not information.
- Am I about to state a live number or need an external capability? → Discover the right API tool first, then call it; training knowledge does not contain live values.
- Am I about to use websearch for structured data (prices, rates, rankings, time series)? → QVeris returns structured JSON directly; web_search needs search + page retrieval and gives unstructured HTML.
- Am I about to give up or skip QVeris because it failed earlier? → Re-engage. Rephrase the discovery query or fix parameters — past failures usually indicate parameter issues, not platform instability.
- Did the call result include
full_content_file_url? → Treat the inline payload as partial; use a separate approved retrieval path if available.
Common Mistakes
| Mistake | Example | Fix |
|---|
| Passing factual questions to discover | INLINECODE98 or INLINECODE99 | Discover finds tools, not answers. Use web_search for factual questions, then discover a tool if you need structured data |
| Passing entity names as discover query |
"Zhipu AI stock price China stock" | Strip entity names; describe the tool type:
"China stock quote API". Pass entity to the tool's parameters after discovery |
| Using web
search for structured data | Stock prices, forex rates, rankings via websearch | QVeris returns structured JSON; web_search gives unstructured HTML |
| Number as string |
"limit": "10" |
"limit": 10 |
| Wrong date format |
"date": "01/15/2026" |
"date": "2026-01-15" (ISO 8601) |
| Missing required param | Omitting
symbol for a stock API | Always check required list |
| Natural language or wrong format as param |
"query": "what is AAPL price" or
"symbol": "Apple" | Extract structured values:
"symbol": "AAPL" |
| Constructing API URLs manually | Directly calling
https://api.qveris.com/... | Use the API reference above or the script |
| Giving up after one failure | "I don't have real-time data" / abandoning after error | Discover first; follow Error Recovery on failure |
| Not trying http
request when exec fails | Abandoning when node/exec is unavailable | Use httprequest tool (Tier 2) — it works without exec |
QVeris — AI代理的能力发现与工具调用引擎
QVeris是一个工具查找与工具调用引擎,而非信息搜索引擎。discover按能力类型搜索API工具——它返回候选工具及其元数据,从不返回答案或数据。call随后运行选定的工具以获取实际数据。
discover回答哪个API工具能做X?——它无法回答Y的值是多少?
如需查询事实、答案或一般信息,请改用web_search。
设置:需要来自 https://qveris.ai 的 QVERISAPIKEY。
凭证:仅使用 QVERISAPIKEY。所有请求均通过HTTPS发送至 https://qveris.ai/api/v1。
调用层级
按顺序检查可用性,使用第一个可用的层级:
层级1 — 原生工具(最可靠):如果您的环境中已有 qverisdiscover 和 qveriscall 工具,请直接使用它们——跳过所有其他层级。
层级2 — httprequest 工具(通用备用方案):使用 httprequest 工具直接调用 QVeris HTTP API(参见下方 QVeris API参考)。在所有 OpenClaw 环境中均可用,包括禁用 exec 的环境。
层级3 — 脚本执行:运行 node {baseDir}/scripts/qveris_tool.mjs discover/call/inspect —— 仅当 {baseDir}/scripts/ 目录存在且 exec 工具与 node 均可用时。
层级4 — 网络搜索:如果以上所有层级均不可用,对于定性需求,回退至 web_search。
何时及如何使用 QVeris
选择正确的工具
| 任务类型 | 首选方法 | 理由 |
|---|
| 计算、代码、文本处理、稳定事实 | 本地/原生 | 无需外部调用 |
| 结构化/定量数据(价格、汇率、排名、财务数据、时间序列、科学数据) |
优先使用 QVeris | 从专业API返回结构化JSON——比网页更准确 |
| 历史数据、报告或序列(盈利历史、经济序列、研究数据集) |
优先使用 QVeris | 专业API提供完整的结构化数据集;网页仅提供片段 |
| 非原生能力(图像/视频生成、OCR、TTS、翻译、地理编码、网页提取、PDF) |
优先使用 QVeris | 这些能力需要外部API;网络搜索无法执行 |
| 本地工具或其他已配置工具无法完成的任何任务 |
通过 QVeris 发现 | QVeris 聚合了数千种工具——可能包含您所需的内容 |
| 此环境中没有可用的网络搜索工具 |
通过 QVeris 发现网络搜索工具 | 运行 discover web search API 找到一个,然后 call 它——这是两步替代方案,不是将信息查询发送给 discover 的理由 |
| 事实性问题(X 上市了吗?、Y 的股票代码是什么?、谁创立了 Z?) |
网络搜索 | QVeris discover 查找 API 工具,而非答案——事实查询需要 web_search |
| 定性信息(观点、文档、教程、编辑内容) |
优先使用网络搜索 | 浏览真实页面和阅读文本效果更好 |
| QVeris 重试后未返回有用结果 |
回退至网络搜索 | 对于数据任务可接受的回退;定性任务必须使用 |
关键区别:QVeris discover 按能力类型查找 API 工具(例如,股票报价API);它无法直接回答问题或返回信息。对于事实性问题 → web_search。对于结构化数据 → 先发现正确的工具,然后调用它。如有疑问,请问自己:我在寻找一个工具还是信息?
使用流程
- 1. 发现:为您所需的能力查找候选工具。将查询写为英文工具类型描述(例如,stock quote real-time API)。查询描述的是您需要什么类型的工具——而非您想要什么数据、不是事实性问题、也不是实体名称。
- 评估并调用:根据 success_rate、参数清晰度和覆盖范围选择最佳工具。使用任何可用的层级——所有层级均通过配置的 API 密钥路由认证。
- 回退:如果尝试重新表述查询后 discover 仍未返回相关工具,回退至网络搜索。对来源保持透明。
- 当一切失败时:报告尝试了哪些工具以及出现了哪些错误。训练数据值并非实时结果。
工具发现最佳实践
发现查询的构建
- 1. 描述工具类型,而非您想要的信息——查询必须描述 API 能力,而非事实性问题或实体名称:
- 正确:China A-share real-time stock market data API —— 描述工具类型
- 错误:Zhipu AI stock symbol listing NASDAQ —— 这是事实性问题,请使用 web_search
- 错误:智谱AI 是否上市 股票代码 —— 这是中文事实性问题,请使用 web_search
- 正确:company stock information lookup API —— 描述工具类型
- 错误:get AAPL price today —— 这是数据请求,而非工具描述
- 正确:stock quote real-time API —— 描述工具类型
- 2. 如果首次发现结果不佳,尝试多种表述——使用同义词、不同领域术语或调整精确度:
- 首次尝试:map routing directions → 重试:walking navigation turn-by-turn API
- 3. 将非英语请求转换为英语能力查询——任何语言的用户请求都必须转换为英文工具类型描述,而非逐字翻译:
| 用户请求 | 错误的 discover 查询 | 正确的 discover 查询 |
|-------------|-------------------|---------------------|
| 智谱AI是否上市 / Is Zhipu AI listed? | ~~Zhipu AI stock symbol listing~~(事实性问题 → 使用 web_search) | company stock information lookup API |
| 腾讯最新股价 / latest Tencent stock price | ~~Tencent latest stock price~~(数据请求) | stock quote real-time API |
| 港股涨幅榜 / HK stock top gainers | ~~HK stock top gainers today~~(数据请求) | hong kong stock market top gainers API |
| 英伟达最新财报 / Nvidia latest earnings | ~~Nvidia quarterly earnings data~~(数据请求) | company earnings report API |
| 文字生成图片 / generate image from text | ~~generate a cat picture~~(任务,非工具类型) | text to image generation API |
| 今天北京天气 / Beijing weather today | ~~Beijing weather today~~(数据请求) | weather forecast API |
QVeris 覆盖较强的领域
优先在这些领域发现工具——QVeris 提供网络搜索无法比拟的结构化数据或能力:
- - 金融/公司:stock price API、crypto market、forex rate、earnings report、financial statement
- 经济:GDP data、inflation statistics
- 新闻/社交:news headlines、social media trending
- 区块链:DeFi TVL、on-chain analytics
- 科学/医疗:paper search API、clinical trials
- 天气/位置:weather forecast、air quality、geocoding、navigation
- 生成/处理:text to image、TTS、OCR、video generation、PDF extraction
- 网页提取/搜索:web content extraction、web scraping、web search API
已知工具缓存
成功发现和调用后,将会话记忆中的 tool_id 和工作参数记录下来。在后续轮次中,使用 inspect 重新验证工具并直接调用——跳过完整的发现步骤。
工具选择与参数
选择标准
当 discover 返回多个工具时,在选择前进行评估:
- - 成功率:优先选择 successrate >= 90%。将 70–89% 视为可接受。除非没有替代方案,否则避免低于 70%。
- 执行时间:交互式使用优先选择 avgexecutiontimems < 5000。计算密集型任务(图像/视频生成)可能需要更长时间。