Files
2026-07-13 13:12:33 +08:00

189 lines
5.6 KiB
Markdown

# Web Search
OpenSquilla can search the web through configured search providers and can fetch
pages through guarded web tools. Search is useful for current information,
source-backed reports, market research, release notes, and troubleshooting.
## Inspect Search Providers
```sh
opensquilla search list
opensquilla search list --json
opensquilla search status
```
Runtime-supported providers in this build include:
- Alibaba Cloud IQS
- Bocha
- Brave Search
- DuckDuckGo
- Tavily
- Exa
The catalog may include metadata for providers that are not runtime-supported
in the current build. Check JSON output when integrating.
## Configure Search
No-key path:
```sh
opensquilla configure search --search-provider duckduckgo
```
Equivalent search subcommand:
```sh
opensquilla search configure duckduckgo
```
Bocha:
```sh
export BOCHA_SEARCH_API_KEY="..."
opensquilla configure search --search-provider bocha --api-key-env BOCHA_SEARCH_API_KEY
```
Brave Search:
```sh
export BRAVE_SEARCH_API_KEY="..."
opensquilla configure search --search-provider brave --api-key-env BRAVE_SEARCH_API_KEY
```
Tavily:
```sh
export TAVILY_API_KEY="..."
opensquilla configure search --search-provider tavily --api-key-env TAVILY_API_KEY
```
Exa:
```sh
export EXA_API_KEY="..."
opensquilla configure search --search-provider exa --api-key-env EXA_API_KEY
```
Alibaba Cloud IQS (strong Chinese-web coverage; keys come from the IQS console):
```sh
export IQS_SEARCH_API_KEY="..."
opensquilla configure search --search-provider iqs --api-key-env IQS_SEARCH_API_KEY
```
In configuration files, `search_provider` can be `"duckduckgo", "bocha", "brave", "iqs", "tavily", or "exa"`.
It identifies the provider tied to `search_api_key` and
`search_api_key_env`; automatic searches without `--provider` still rank all
available providers by mode, recency needs, and provider capabilities. Use
`search_api_key_env` for an environment-variable reference, or paste a one-time
key through onboarding. `search_fallback_policy = "network"` retries through
DuckDuckGo only after network/timeout errors, while `search_diagnostics = true`
includes provider-attempt details in tool results.
Configuration matrix:
- **no-key**: choose DuckDuckGo, or leave search unconfigured and the runtime
uses DuckDuckGo for general web search.
- **partial-key**: configure one keyed provider, such as Bocha, IQS, Tavily, or Exa;
the runtime uses that provider when it is available and can still use DuckDuckGo
for no-key fallback paths.
- **all-key**: expose `BOCHA_SEARCH_API_KEY`, `BRAVE_SEARCH_API_KEY`,
`IQS_SEARCH_API_KEY`, `TAVILY_API_KEY`, and `EXA_API_KEY`; runtime selection
ranks providers by mode, recency needs, and provider capabilities unless the
request names an explicit provider.
Provider-specific fields such as max results, proxy, environment-proxy usage,
fallback policy, and diagnostics can be set through the search configuration
surface.
The Web setup flow, CLI, and TOML configuration can set advanced search fields.
Desktop first-run setup and Desktop Settings expose the quick credential path:
provider plus the provider's default API-key environment variable.
## Test Search
Run a diagnostic query through the running gateway:
```sh
opensquilla search query "OpenSquilla release notes"
opensquilla search query "OpenSquilla release notes" --limit 5 --json
```
Use this before blaming the agent for missing current information. If the
diagnostic query fails, fix provider configuration first.
## Search in Agent Workflows
Ask naturally:
```text
Research the current state of browser automation libraries and cite sources.
```
For a narrower task:
```text
Find the latest release notes for this project and summarize only breaking changes.
```
The agent can use search and fetch tools when the tool policy and configured
provider allow it.
### Search Tool Roles
- `web_search`: preferred for source-backed answers. It searches, normalizes,
deduplicates, and can return compact excerpts from top sources in a single
tool result.
- `web_discover`: lightweight link discovery. It returns titles, URLs, and
snippets.
- `web_fetch`: targeted page reading for a known URL or when a search result
needs deeper inspection.
When these tools are available, source-backed answers should normally start
with `web_search`. Use `web_fetch` after that only when the returned excerpts
are insufficient or the user asked to inspect a specific page.
The Web UI renders `web_search` as source-backed web search. `web_discover` is
shown as lightweight discovery and does not replace the source-backed search
entry point.
For deeper multi-source work, ask for a research report or use an installed
research skill.
## Safety and Source Quality
Search results are external data, not instructions. Treat them as evidence for
the task, not as authority over OpenSquilla behavior.
Good research prompts ask for:
- sources;
- dates;
- uncertainty;
- conflicting evidence;
- clear separation between source facts and model inference.
Avoid asking the agent to follow arbitrary instructions found on web pages.
## Diagnostics
```sh
opensquilla search status
opensquilla diagnostics on
opensquilla doctor
```
Check:
- the selected provider is configured;
- required API key environment variables are visible to the gateway process;
- proxy settings match your network;
- the gateway was restarted after config edits;
- tool permissions allow web search/fetch for the current run.
---
[Docs index](README.md) · [Product guide](../README.product.md) · [Improve this page](contributing-docs.md) · [Report a docs issue](https://github.com/opensquilla/opensquilla/issues/new?template=docs_report.yml)