Internet search
How the AI analyst searches the web for advisories and vendor guidance, what leaves Revo, how customer data is kept out of searches, and the limits of that protection.
Updated
On this page
The AI analyst can search the public internet for facts Revo doesn't hold: vendor advisories, CVE and patch details, whether a vulnerability is exploited, end-of-life dates, error codes and configuration guidance. It uses Revo's own data for anything about your customers.
When it's on, the Ask AI panel shows Internet search on under the message box. Each search the analyst ran is listed in its tool steps, with the sources it used as links under the answer.
Turn it on or off
Internet search is on by default. An owner or admin turns it off for the whole workspace in Settings → AI → Internet search; the change is recorded in the audit log. It can also be switched off for the whole Revo service, which overrides the workspace setting. It isn't available when the workspace uses a custom OpenAI-compatible AI endpoint.
What is sent, and what isn't
-
Only the query. Each search is a separate request to the AI provider's search service containing the search query and fixed instructions. The conversation, the page you're on and tool results are not sent with it.
-
Queries must be generic. The analyst is instructed to search for things like CVE ids, product and version names, KB numbers and error codes, and never for customer data.
-
Queries must be plain ASCII. Revo first decodes URL escapes and HTML entities and applies Unicode NFKC normalisation, repeating up to three times. NFKC turns compatibility characters such as full-width
KB5044284into their plain form (KB5044284), so those are accepted. After that, a query may contain only English letters, digits, spaces and. , : ; ' " ( ) / + _ # @ & = ? -. Anything else (accented or non-Latin letters, look-alike characters, invisible or combining characters, symbols such as%,*or[ ]) makes the search refuse with "search queries must be plain ASCII; rephrase generically". Text that is still encoded after three rounds is refused too. -
Length limits. A search query can be at most 300 characters, and a page address the analyst asks to open at most 2,000. Every redirect target is limited to 2,048 characters and refused before it's requested. The privacy check itself refuses anything over 4,096 characters, or text that grows to more than twice its length when normalised.
-
Queries containing identifiers Revo stores are blocked before anything is sent. Every query is checked against the identifiers of every customer in the workspace and of your MSP, whichever customer the conversation is about:
- registered, primary and Microsoft 365 domains and their subdomains, always, even when the domain is made of common words (security.net, it.com), and a domain's distinctive name without its ending (acme-dental for acme-dental.com);
- customer and MSP names, device names and hostnames, Microsoft 365 full names, single-word display names of five letters or more, user names, and contact email addresses.
Matching ignores case, punctuation and spacing: Acme-Dental, acme.dental, acmedental, A c m e D e n t a l and AcmeDentalbreach all match the customer Acme Dental. Names of five or more characters also match inside longer words, so a customer called Alpha blocks a search for "alphabet". Names are matched as written, so a word like "at" in At Home Hospice is never ignored. The spoken forms "at" and "dot" are understood only for email addresses and domains: name at domain dot com is an email address and at dot com is the domain at.com. Names are also compared with "at" and "dot" removed from both the name and the query, so At dot Home dot Hospice and At at Home at Hospice match At Home Hospice (and so does "home hospice", what's left of the name), when what's left is at least five characters and not a generic word. A blocked query isn't searched; the analyst is told to rewrite it generically. If the check can't finish quickly (it runs with a time limit and a work limit), the query is refused rather than sent.
-
IP addresses in these forms block a query: dotted IPv4 (
10.0.0.5), IPv6 (fe80::1,::ffff:127.0.0.1), an IPv4 address written as one 9- or 10-digit number (2130706433), written as 8 hex digits (0x7f000001), or written with hex or zero-prefixed octal parts (0x7f.0.0.1,0177.0.0.1). Hex numbers shaped like Windows error codes, such as0x80070005and0xC0000005, are allowed on purpose so you can search for them, even though they can also be read as IP addresses. Other ways of writing an address, such as the short form127.1or a small integer, aren't recognised. -
The check is complete or search is off. Revo loads every stored identifier of the workspace for the check. If it can't (a workspace with more than a million records of one kind), every search is blocked with a message saying so, rather than checking against a partial list.
-
Pages it reads. The analyst can open a page only if a search in the same conversation returned it, or if it's on a short list of vendor and security documentation sites (for example Microsoft Learn, NVD, CISA). Pages are fetched by Revo over HTTPS from public addresses only, with size and time limits. The page address goes through the same plain-ASCII rule (
~is also allowed) and identifier check, and so does every redirect: a page can only redirect over HTTPS, to the same site, a searched page or a documentation site. An address or redirect longer than 2,048 characters is refused before anything is requested. -
Limits per message. For one message the analyst makes at most 8
web_searchcalls, 12read_web_pagecalls and 60 tool calls in total. Oneweb_searchcall hands the query to the provider's search service, which may run several searches of its own to answer it. Those are limited too: at most 3 per call and 16 for the whole message. With an Anthropic or OpenAI key the provider is told the limit with each request (what's left of the 16, at most 3). Revo can't pass a limit to a ChatGPT plan's search, so there it counts the searches each call reports and refuses further calls once 16 have run; the last call before that can go over by the searches it runs. Calls past a limit aren't run; the analyst is told and answers with what it has, and you can ask a follow-up. -
Everything is logged. Each search, the source sites and any blocked query are recorded in the audit log.
Search results and web pages are treated as untrusted data, like scan results: the analyst analyses them and never follows instructions inside them.
What is guaranteed, and what is best effort
Guaranteed, by checks Revo runs before anything is sent:
- a search request contains only the query and fixed instructions, never the conversation or tool results;
- a query or page address that isn't plain ASCII, as described above, is not sent;
- a query or page address containing a stored identifier, matched as described above, is not sent;
- if the stored identifiers can't all be checked, nothing is searched;
- no message makes more than 8
web_searchcalls, 12read_web_pagecalls or 60 tool calls; - with an Anthropic or OpenAI key, each search request carries what's left of the message's limit (at most 3 for the call, 16 for the message), which the provider enforces; with a ChatGPT plan the 16 is counted between calls, as described above.
Best effort, so don't rely on them alone:
- The check only knows what Revo stores. It can't recognise identifying details it has never seen: a street address, a project name or a person's name you type into the chat. If you type such details, the analyst's instructions are the only safeguard. Don't paste customer data into a question you want searched.
- Generic words are not treated as identifiers. Names made only of vendor and product words (such as Microsoft or Windows Server), numbers and very short words are ignored, as are single first names under five letters, so a customer named after a product doesn't block searches about it. A device called LAPTOP-01 therefore doesn't block a search for "laptop 01".
- Disguised text can still get through. Plain ASCII and the matching rules cover the common ways of rewriting a name, not every possible one: for example a name spelled backwards, abbreviated or with letters replaced by digits.
- Email and IP detection is limited to the forms listed above. An address written another way, or an email address split up some other way, may not be recognised. Error-code-shaped hex numbers are never blocked.
- The search provider sees the query. Queries go to the AI provider's search service and are handled under that provider's terms.
A search is part of the chat message that asked for it; the search provider's processing counts towards your AI usage (see What the AI can see).