mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-06 05:51:15 +08:00
- New extensions/parallel package modeled on extensions/exa
- Wires Parallel's POST /v1/search through the generic web_search contract,
exposing Parallel's recommended {objective, search_queries} shape (plus
optional count, session_id, client_model) so the model can supply both the
natural-language goal and 2-3 short keyword queries as Parallel docs advise
- client_model lets the model report its own slug so Parallel can tailor
optimizations for the consuming model's capabilities; partitions the cache
by client_model so different models do not silently share ranked excerpts
- Honors top-level tools.web.search.{maxResults,timeoutSeconds,cacheTtlMinutes}
via the shared SDK helpers (mergeScopedSearchConfig, withTrustedWebSearchEndpoint,
buildSearchCacheKey, read/writeCachedSearchPayload)
- Auto-detect order 75; auth via PARALLEL_API_KEY or
plugins.entries.parallel.config.webSearch.apiKey
- Optional baseUrl override for proxies (e.g. Cloudflare AI Gateway)
- Threads caller-supplied session_id through follow-up calls; strips
auto-generated session_id from the shared cache to avoid cross-task leaks
- Always sends advanced_settings.max_results so result volume matches the
OpenClaw web_search default (5) instead of Parallel's default (10)
- Identifies the plugin via User-Agent header built from package version
- Runtime accepts the generic `query` arg as a fallback so the operator
CLI (openclaw capability web.search) keeps working when Parallel is the
active provider: it is promoted into the lone `search_queries` entry.
`objective` stays optional and is never synthesized from a keyword
query (Parallel documents it as natural-language intent). Agent callers
using the native objective+search_queries shape take precedence; the
schema still advertises only the native keys
- Updates the agent tool-display extractor (src/agents/tool-display-common.ts)
to recognize Parallel's objective+search_queries shape so calls render with
query context in CLI progress and Codex activity metadata
- Adds /tools/parallel-search docs page, web.md provider listing, docs nav,
labeler entry, per-plugin registration contract test, and minimal core
touch-points (legacy migrate, registration cases, providers contract list,
runtime bundled list, vitest extension paths)
51 lines
1.1 KiB
JSON
51 lines
1.1 KiB
JSON
{
|
|
"id": "parallel",
|
|
"activation": {
|
|
"onStartup": false
|
|
},
|
|
"setup": {
|
|
"providers": [
|
|
{
|
|
"id": "parallel",
|
|
"envVars": ["PARALLEL_API_KEY"]
|
|
}
|
|
]
|
|
},
|
|
"uiHints": {
|
|
"webSearch.apiKey": {
|
|
"label": "Parallel API Key",
|
|
"help": "Parallel Search API key (fallback: PARALLEL_API_KEY env var).",
|
|
"sensitive": true,
|
|
"placeholder": "par-..."
|
|
},
|
|
"webSearch.baseUrl": {
|
|
"label": "Parallel Search Base URL",
|
|
"help": "Optional Parallel API base URL override. OpenClaw appends /v1/search when the URL does not already end there."
|
|
}
|
|
},
|
|
"contracts": {
|
|
"webSearchProviders": ["parallel"]
|
|
},
|
|
"configContracts": {
|
|
"compatibilityRuntimePaths": ["tools.web.search.apiKey"]
|
|
},
|
|
"configSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"webSearch": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"apiKey": {
|
|
"type": ["string", "object"]
|
|
},
|
|
"baseUrl": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|