Vendor OpenClaw source as Adolf fork baseline
Some checks failed
ClawSweeper Dispatch / dispatch (push) Has been cancelled
CodeQL / Security High (actions) (push) Has been cancelled
CodeQL / Security High (channel-runtime-boundary) (push) Has been cancelled
CodeQL / Security High (core-auth-secrets) (push) Has been cancelled
CodeQL / Security High (mcp-process-tool-boundary) (push) Has been cancelled
CodeQL / Security High (network-ssrf-boundary) (push) Has been cancelled
CodeQL / Security High (plugin-trust-boundary) (push) Has been cancelled
CodeQL / Security High (process-exec-boundary) (push) Has been cancelled
Docs Sync Publish Repo / sync-publish-repo (push) Has been cancelled
Docs / docs (push) Has been cancelled
OpenClaw Stable Main Closeout / Resolve stable release closeout inputs (push) Has been cancelled
OpenClaw Stable Main Closeout / Verify stable main closeout (push) Has been cancelled
Workflow Sanity / no-tabs (push) Has been cancelled
Workflow Sanity / actionlint (push) Has been cancelled
Workflow Sanity / generated-doc-baselines (push) Has been cancelled
CI / runner-admission (push) Has been cancelled
CI / preflight (push) Has been cancelled
CI / security-fast (push) Has been cancelled
CI / pnpm-store-warmup (push) Has been cancelled
CI / build-artifacts (push) Has been cancelled
CI / native-i18n (push) Has been cancelled
CI / ${{ matrix.check_name }} (push) Has been cancelled
CI / ${{ matrix.checkName }} (push) Has been cancelled
CI / checks-node-compat-node22 (push) Has been cancelled
CI / check-bundled-channel-config-metadata (push) Has been cancelled
CI / check-dependencies (push) Has been cancelled
CI / check-guards (push) Has been cancelled
CI / check-lint (push) Has been cancelled
CI / check-prod-types (push) Has been cancelled
CI / check-shrinkwrap (push) Has been cancelled
CI / check-test-types (push) Has been cancelled
CI / check-additional-boundaries-a (push) Has been cancelled
CI / check-additional-boundaries-bcd (push) Has been cancelled
CI / check-additional-extension-bundled (push) Has been cancelled
CI / check-additional-extension-channels (push) Has been cancelled
CI / check-additional-extension-package-boundary (push) Has been cancelled
CI / check-additional-runtime-topology-architecture (push) Has been cancelled
CI / check-session-accessor-boundary (push) Has been cancelled
CI / check-session-transcript-reader-boundary (push) Has been cancelled
CI / check-docs (push) Has been cancelled
CI / skills-python (push) Has been cancelled
CI / macos-swift (push) Has been cancelled
CI / ios-build (push) Has been cancelled
CI / ci-timings-summary (push) Has been cancelled
Native App Locale Refresh / Refresh native fa (push) Has been cancelled
Native App Locale Refresh / Refresh native fr (push) Has been cancelled
Native App Locale Refresh / Refresh native hi (push) Has been cancelled
Native App Locale Refresh / Refresh native id (push) Has been cancelled
Native App Locale Refresh / Refresh native it (push) Has been cancelled
Native App Locale Refresh / Refresh native ja-JP (push) Has been cancelled
Control UI Locale Refresh / plan (push) Has been cancelled
Control UI Locale Refresh / Refresh ${{ matrix.locale }} (push) Has been cancelled
Control UI Locale Refresh / Commit control UI locale refresh (push) Has been cancelled
Live Media Runner Image / Build live media runner image (push) Has been cancelled
Native App Locale Refresh / Refresh native ar (push) Has been cancelled
Native App Locale Refresh / Refresh native de (push) Has been cancelled
Native App Locale Refresh / Refresh native es (push) Has been cancelled
Native App Locale Refresh / Refresh native ko (push) Has been cancelled
Native App Locale Refresh / Refresh native nl (push) Has been cancelled
Native App Locale Refresh / Refresh native pl (push) Has been cancelled
Native App Locale Refresh / Refresh native pt-BR (push) Has been cancelled
Native App Locale Refresh / Refresh native ru (push) Has been cancelled
Native App Locale Refresh / Refresh native sv (push) Has been cancelled
Native App Locale Refresh / Refresh native th (push) Has been cancelled
Native App Locale Refresh / Refresh native tr (push) Has been cancelled
Native App Locale Refresh / Refresh native uk (push) Has been cancelled
Native App Locale Refresh / Refresh native vi (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-CN (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-TW (push) Has been cancelled
Native App Locale Refresh / Commit native locale refresh (push) Has been cancelled
Plugin Init Scaffold Validation / Validate provider scaffold (push) Has been cancelled
Plugin NPM Release / preview_plugins_npm (push) Has been cancelled
Plugin NPM Release / Validate release publish approval (push) Has been cancelled
Plugin NPM Release / preview_plugin_pack (push) Has been cancelled
Plugin NPM Release / publish_plugins_npm (push) Has been cancelled
Sandbox Common Smoke / sandbox-common-smoke (push) Has been cancelled
Website Installer Sync / static (push) Has been cancelled
Website Installer Sync / linux-docker (push) Has been cancelled
Website Installer Sync / macos-installer (push) Has been cancelled
Website Installer Sync / windows-installer (push) Has been cancelled
Website Installer Sync / sync-website (push) Has been cancelled
Some checks failed
ClawSweeper Dispatch / dispatch (push) Has been cancelled
CodeQL / Security High (actions) (push) Has been cancelled
CodeQL / Security High (channel-runtime-boundary) (push) Has been cancelled
CodeQL / Security High (core-auth-secrets) (push) Has been cancelled
CodeQL / Security High (mcp-process-tool-boundary) (push) Has been cancelled
CodeQL / Security High (network-ssrf-boundary) (push) Has been cancelled
CodeQL / Security High (plugin-trust-boundary) (push) Has been cancelled
CodeQL / Security High (process-exec-boundary) (push) Has been cancelled
Docs Sync Publish Repo / sync-publish-repo (push) Has been cancelled
Docs / docs (push) Has been cancelled
OpenClaw Stable Main Closeout / Resolve stable release closeout inputs (push) Has been cancelled
OpenClaw Stable Main Closeout / Verify stable main closeout (push) Has been cancelled
Workflow Sanity / no-tabs (push) Has been cancelled
Workflow Sanity / actionlint (push) Has been cancelled
Workflow Sanity / generated-doc-baselines (push) Has been cancelled
CI / runner-admission (push) Has been cancelled
CI / preflight (push) Has been cancelled
CI / security-fast (push) Has been cancelled
CI / pnpm-store-warmup (push) Has been cancelled
CI / build-artifacts (push) Has been cancelled
CI / native-i18n (push) Has been cancelled
CI / ${{ matrix.check_name }} (push) Has been cancelled
CI / ${{ matrix.checkName }} (push) Has been cancelled
CI / checks-node-compat-node22 (push) Has been cancelled
CI / check-bundled-channel-config-metadata (push) Has been cancelled
CI / check-dependencies (push) Has been cancelled
CI / check-guards (push) Has been cancelled
CI / check-lint (push) Has been cancelled
CI / check-prod-types (push) Has been cancelled
CI / check-shrinkwrap (push) Has been cancelled
CI / check-test-types (push) Has been cancelled
CI / check-additional-boundaries-a (push) Has been cancelled
CI / check-additional-boundaries-bcd (push) Has been cancelled
CI / check-additional-extension-bundled (push) Has been cancelled
CI / check-additional-extension-channels (push) Has been cancelled
CI / check-additional-extension-package-boundary (push) Has been cancelled
CI / check-additional-runtime-topology-architecture (push) Has been cancelled
CI / check-session-accessor-boundary (push) Has been cancelled
CI / check-session-transcript-reader-boundary (push) Has been cancelled
CI / check-docs (push) Has been cancelled
CI / skills-python (push) Has been cancelled
CI / macos-swift (push) Has been cancelled
CI / ios-build (push) Has been cancelled
CI / ci-timings-summary (push) Has been cancelled
Native App Locale Refresh / Refresh native fa (push) Has been cancelled
Native App Locale Refresh / Refresh native fr (push) Has been cancelled
Native App Locale Refresh / Refresh native hi (push) Has been cancelled
Native App Locale Refresh / Refresh native id (push) Has been cancelled
Native App Locale Refresh / Refresh native it (push) Has been cancelled
Native App Locale Refresh / Refresh native ja-JP (push) Has been cancelled
Control UI Locale Refresh / plan (push) Has been cancelled
Control UI Locale Refresh / Refresh ${{ matrix.locale }} (push) Has been cancelled
Control UI Locale Refresh / Commit control UI locale refresh (push) Has been cancelled
Live Media Runner Image / Build live media runner image (push) Has been cancelled
Native App Locale Refresh / Refresh native ar (push) Has been cancelled
Native App Locale Refresh / Refresh native de (push) Has been cancelled
Native App Locale Refresh / Refresh native es (push) Has been cancelled
Native App Locale Refresh / Refresh native ko (push) Has been cancelled
Native App Locale Refresh / Refresh native nl (push) Has been cancelled
Native App Locale Refresh / Refresh native pl (push) Has been cancelled
Native App Locale Refresh / Refresh native pt-BR (push) Has been cancelled
Native App Locale Refresh / Refresh native ru (push) Has been cancelled
Native App Locale Refresh / Refresh native sv (push) Has been cancelled
Native App Locale Refresh / Refresh native th (push) Has been cancelled
Native App Locale Refresh / Refresh native tr (push) Has been cancelled
Native App Locale Refresh / Refresh native uk (push) Has been cancelled
Native App Locale Refresh / Refresh native vi (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-CN (push) Has been cancelled
Native App Locale Refresh / Refresh native zh-TW (push) Has been cancelled
Native App Locale Refresh / Commit native locale refresh (push) Has been cancelled
Plugin Init Scaffold Validation / Validate provider scaffold (push) Has been cancelled
Plugin NPM Release / preview_plugins_npm (push) Has been cancelled
Plugin NPM Release / Validate release publish approval (push) Has been cancelled
Plugin NPM Release / preview_plugin_pack (push) Has been cancelled
Plugin NPM Release / publish_plugins_npm (push) Has been cancelled
Sandbox Common Smoke / sandbox-common-smoke (push) Has been cancelled
Website Installer Sync / static (push) Has been cancelled
Website Installer Sync / linux-docker (push) Has been cancelled
Website Installer Sync / macos-installer (push) Has been cancelled
Website Installer Sync / windows-installer (push) Has been cancelled
Website Installer Sync / sync-website (push) Has been cancelled
Adolf is a fork/vendored clone of github.com/openclaw/openclaw (v2026.6.11), free to diverge. Tree copied sans upstream .git; upstream remote added for future syncs. Node pinned to 24 (.nvmrc); engines already require >=22.19. Preserves docs/ARCHITECTURE.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LeqyaxJF2nbRXJtae2kNB2
This commit is contained in:
166
docs/tools/parallel-search.md
Normal file
166
docs/tools/parallel-search.md
Normal file
@@ -0,0 +1,166 @@
|
||||
---
|
||||
summary: "Parallel Search -- LLM-optimized dense excerpts from web sources"
|
||||
read_when:
|
||||
- You want web search without an API key
|
||||
- You want Parallel's paid Search API
|
||||
- You want dense excerpts ranked for LLM context efficiency
|
||||
title: "Parallel search"
|
||||
---
|
||||
|
||||
The Parallel plugin provides two [Parallel](https://parallel.ai/) `web_search`
|
||||
providers, both returning ranked, LLM-optimized excerpts from a web index
|
||||
built for AI agents:
|
||||
|
||||
| Provider | id | Auth |
|
||||
| ---------------------- | --------------- | ------------------------------------------------------------------------------------------ |
|
||||
| Parallel Search (Free) | `parallel-free` | None -- Parallel's free [Search MCP](https://docs.parallel.ai/integrations/mcp/search-mcp) |
|
||||
| Parallel Search | `parallel` | `PARALLEL_API_KEY` -- paid Search API, higher rate limits and objective tuning |
|
||||
|
||||
Set `tools.web.search.provider` to `parallel-free` or `parallel` to select
|
||||
one explicitly; neither is auto-detected.
|
||||
|
||||
<Note>
|
||||
Direct OpenAI Responses models (`api: "openai-responses"`, provider
|
||||
`openai`, official API base URL) use OpenAI's hosted native web search
|
||||
automatically when `tools.web.search.provider` is unset, empty, `"auto"`,
|
||||
or `"openai"` -- so they bypass Parallel by default. Set
|
||||
`tools.web.search.provider` to `parallel-free` or `parallel` to route them
|
||||
through Parallel instead. See [Web Search overview](/tools/web).
|
||||
</Note>
|
||||
|
||||
## Install plugin
|
||||
|
||||
```bash
|
||||
openclaw plugins install @openclaw/parallel-plugin
|
||||
openclaw gateway restart
|
||||
```
|
||||
|
||||
## API key (paid provider)
|
||||
|
||||
`parallel-free` needs no key but still must be selected explicitly. The paid
|
||||
`parallel` provider needs an API key:
|
||||
|
||||
<Steps>
|
||||
<Step title="Create an account">
|
||||
Sign up at [platform.parallel.ai](https://platform.parallel.ai) and
|
||||
generate an API key from your dashboard.
|
||||
</Step>
|
||||
<Step title="Store the key">
|
||||
Set `PARALLEL_API_KEY` in the Gateway environment, or configure via:
|
||||
|
||||
```bash
|
||||
openclaw configure --section web
|
||||
```
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Config
|
||||
|
||||
```json5
|
||||
{
|
||||
plugins: {
|
||||
entries: {
|
||||
parallel: {
|
||||
config: {
|
||||
webSearch: {
|
||||
apiKey: "par-...", // optional if PARALLEL_API_KEY is set
|
||||
baseUrl: "https://api.parallel.ai", // optional; OpenClaw appends /v1/search
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
tools: {
|
||||
web: {
|
||||
search: {
|
||||
// "parallel-free" for the free Search MCP, or "parallel" for the
|
||||
// paid API-backed provider shown here.
|
||||
provider: "parallel",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
**Environment alternative:** set `PARALLEL_API_KEY` in the Gateway
|
||||
environment. For a gateway install, put it in `~/.openclaw/.env`.
|
||||
|
||||
## Base URL override
|
||||
|
||||
Applies to the paid `parallel` provider only; `parallel-free` always uses
|
||||
`https://search.parallel.ai/mcp` and ignores this setting.
|
||||
|
||||
Set `plugins.entries.parallel.config.webSearch.baseUrl` to route paid
|
||||
requests through a compatible proxy or alternate endpoint (for example, the
|
||||
Cloudflare AI Gateway). OpenClaw normalizes bare hosts by prepending
|
||||
`https://` and appends `/v1/search` unless the path already ends there. The
|
||||
resolved endpoint is part of the search cache key, so results from different
|
||||
endpoints are never shared.
|
||||
|
||||
## Tool parameters
|
||||
|
||||
Both providers expose Parallel's native search shape so the model fills in a
|
||||
natural-language goal plus a few short keyword queries -- the pairing
|
||||
Parallel [recommends](https://docs.parallel.ai/search/best-practices) for
|
||||
best results.
|
||||
|
||||
<ParamField path="objective" type="string" required>
|
||||
Natural-language description of the underlying question or goal (max 5000
|
||||
chars). Should be self-contained.
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="search_queries" type="string[]" required>
|
||||
Concise keyword search queries, 3-6 words each (1-5 entries, max 200 chars
|
||||
each). Provide 2-3 diverse queries for best results.
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="count" type="number">
|
||||
Results to return (1-40).
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="session_id" type="string">
|
||||
Optional Parallel session id from a previous result's `sessionId`. Pass it on
|
||||
follow-up searches in the same task so Parallel groups related calls and
|
||||
improves subsequent results. Max 1000 chars on `parallel`; the free
|
||||
`parallel-free` Search MCP caps it at 100. An id past the limit is dropped
|
||||
(paid) or a fresh one is minted (free).
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="client_model" type="string">
|
||||
Optional identifier of the model making the call (e.g. `claude-opus-4-7`,
|
||||
`gpt-5.5`), max 100 chars. Lets Parallel tailor default settings for your
|
||||
model's capabilities. Pass the exact active model slug; do not shorten to a
|
||||
family alias.
|
||||
</ParamField>
|
||||
|
||||
## Notes
|
||||
|
||||
- Parallel ranks and compresses results for LLM reasoning utility, not human
|
||||
click-through; expect dense excerpts per result rather than full-page
|
||||
content.
|
||||
- Result excerpts come back as the `excerpts` array and are also joined into
|
||||
`description` for compatibility with the generic `web_search` contract.
|
||||
- Both providers return a `session_id`; OpenClaw surfaces it as `sessionId` in
|
||||
the tool payload so callers can group follow-up searches. A
|
||||
Parallel-generated session id (one the caller did not supply) is excluded
|
||||
from the cache entry, since unrelated tasks with identical queries should
|
||||
not inherit it.
|
||||
- `searchId`, `warnings`, and `usage` from Parallel are passed through when
|
||||
present.
|
||||
- OpenClaw always forwards a resolved result count to Parallel as
|
||||
`advanced_settings.max_results` (`parallel`) or applies `count`
|
||||
client-side after Parallel's fixed-size response (`parallel-free`). The
|
||||
caller's `count` arg wins, then `tools.web.search.maxResults`, otherwise
|
||||
OpenClaw's generic `web_search` default (5) -- Parallel's own API defaults
|
||||
to 10.
|
||||
- Results are cached for 15 minutes by default (`cacheTtlMinutes`).
|
||||
- `parallel-free` mints a fresh `session_id` per call via its MCP handshake
|
||||
when the caller does not supply one; `parallel` leaves it unset in that
|
||||
case.
|
||||
|
||||
## Related
|
||||
|
||||
- [Web Search overview](/tools/web) -- all providers and auto-detection
|
||||
- [Exa search](/tools/exa-search) -- neural search with content extraction
|
||||
- [Perplexity Search](/tools/perplexity-search) -- structured results with domain filtering
|
||||
Reference in New Issue
Block a user