{"id":"b4dea30c-ebae-42a1-a6df-842e88c1897d","entityType":"agent","slug":"clawhub-iyeque-iyeque-unified-web-search","name":"Unified Web Search","canonicalUrl":"https://www.xpersona.co/agent/clawhub-iyeque-iyeque-unified-web-search","canonicalPath":"/agent/clawhub-iyeque-iyeque-unified-web-search","generatedAt":"2026-10-11T17:44:47.220Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T14:07:45.536Z","emptyReason":null},"description":"Evidence-first web and workspace search with bounded results, source labels, and machine-readable provenance. Use for research questions, current facts, or finding content in local memory and skills. Skill: Unified Web Search Owner: iyeque Summary: Evidence-first web and workspace search with bounded results, source labels, and machine-readable provenance. Use for research questions, current facts, or finding content in local memory and skills. Tags: latest:1.3.2 Version history: v1.3.2 | 2026-10-10T00:01:52.714Z | user Added explicit examples, GitHub source link, and security/support guidance. v1.3.1 | 2026-10-0","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17c41bhb28dycyxnec6jt83w184se82:iyeque-unified-web-search","sourceUrl":"https://clawhub.ai/iyeque/iyeque-unified-web-search","homepage":"https://clawhub.ai/iyeque/skills/iyeque-unified-web-search","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/iyeque/iyeque-unified-web-search","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/iyeque/skills/iyeque-unified-web-search","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Evidence-first web and workspace search with bounded results, source labels, and machine-readable provenance. Use for research questions, current facts, or find"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T14:07:45.536Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T14:07:45.536Z","emptyReason":null},"stars":null,"forks":null,"downloads":1052,"packageName":null,"latestVersion":"1.3.2","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T14:07:45.460Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T14:07:45.536Z","lastCrawledAt":"2026-10-11T14:07:45.460Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T14:07:45.460Z","lastVerifiedAt":null,"highlights":[{"version":"1.3.2","createdAt":"2026-10-10T00:01:52.714Z","changelog":"Added explicit examples, GitHub source link, and security/support guidance.","fileCount":4,"zipByteSize":4559},{"version":"1.3.1","createdAt":"2026-10-04T15:21:50.441Z","changelog":"Hardened network and local-search opt-ins; blocked sensitive network queries and clarified data boundaries.","fileCount":4,"zipByteSize":4547},{"version":"1.3.0","createdAt":"2026-10-03T00:56:38.536Z","changelog":"Repositioned as evidence-first web and workspace search with provenance, bounded scope, and explicit network disclosure.","fileCount":4,"zipByteSize":4255},{"version":"1.2.0","createdAt":"2026-10-02T23:24:50.698Z","changelog":"Security hardening, stricter input validation, safer subprocess handling, and documentation corrections.","fileCount":4,"zipByteSize":4172},{"version":"1.1.1","createdAt":"2026-02-17T17:08:18.747Z","changelog":"Security: block quotes in queries, strict workspace root enforcement","fileCount":3,"zipByteSize":4063},{"version":"1.1.0","createdAt":"2026-02-17T11:11:55.743Z","changelog":"Security fixes: query sanitization, path traversal prevention. Real implementation replacing mock data. Updated SKILL.md.","fileCount":3,"zipByteSize":4267},{"version":"1.0.0","createdAt":"2026-02-14T10:29:03.756Z","changelog":"Initial release","fileCount":3,"zipByteSize":2572}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17c41bhb28dycyxnec6jt83w184se82:iyeque-unified-web-search","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iyeque-iyeque-unified-web-search/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iyeque-iyeque-unified-web-search/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iyeque-iyeque-unified-web-search/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-iyeque-iyeque-unified-web-search/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-iyeque-iyeque-unified-web-search/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-iyeque-iyeque-unified-web-search/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T17:44:47.219Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iyeque-iyeque-unified-web-search/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iyeque-iyeque-unified-web-search/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iyeque-iyeque-unified-web-search/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iyeque-iyeque-unified-web-search/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T14:07:45.536Z","emptyReason":null},"readme":"Skill: Unified Web Search\n\nOwner: iyeque\n\nSummary: Evidence-first web and workspace search with bounded results, source labels, and machine-readable provenance. Use for research questions, current facts, or finding content in local memory and skills.\n\nTags: latest:1.3.2\n\nVersion history:\n\nv1.3.2 | 2026-10-10T00:01:52.714Z | user\n\nAdded explicit examples, GitHub source link, and security/support guidance.\n\nv1.3.1 | 2026-10-04T15:21:50.441Z | user\n\nHardened network and local-search opt-ins; blocked sensitive network queries and clarified data boundaries.\n\nv1.3.0 | 2026-10-03T00:56:38.536Z | user\n\nRepositioned as evidence-first web and workspace search with provenance, bounded scope, and explicit network disclosure.\n\nv1.2.0 | 2026-10-02T23:24:50.698Z | user\n\nSecurity hardening, stricter input validation, safer subprocess handling, and documentation corrections.\n\nv1.1.1 | 2026-02-17T17:08:18.747Z | user\n\nSecurity: block quotes in queries, strict workspace root enforcement\n\nv1.1.0 | 2026-02-17T11:11:55.743Z | user\n\nSecurity fixes: query sanitization, path traversal prevention. Real implementation replacing mock data. Updated SKILL.md.\n\nv1.0.0 | 2026-02-14T10:29:03.756Z | user\n\nInitial release\n\nArchive index:\n\nArchive v1.3.2: 4 files, 4559 bytes\n\nFiles: index.js (5126b), skill-card.md (1717b), SKILL.md (1764b), _meta.json (144b)\n\nFile v1.3.2:SKILL.md\n\n---\nname: unified-web-search\ndescription: \"Evidence-first web and workspace search with bounded results, source labels, and machine-readable provenance. Use for research questions, current facts, or finding content in local memory and skills.\"\nlicense: MIT-0\nmetadata:\n  openclaw:\n    emoji: \"🔍\"\n    requires:\n      bins: [\"node\"]\n    version: \"1.3.2\"\n---\n\n# Evidence-first unified search\n\nUse `index.js` when a task needs web retrieval plus a bounded search of local `memory/` and `skills/` content. Results are JSON on stdout; warnings are JSON on stderr so callers can preserve provenance.\n\n## Quick start\n\n```bash\nnode index.js --query \"latest climate policy\" --sources '[\"tavily\"]' --allow-network --max_results 5\nnode index.js --query \"meeting notes\" --sources '[\"local\"]' --allow-local --max_results 10\nnode index.js --query \"AI developments\" --sources '[\"tavily\",\"local\"]' --max_results 10\n```\n\n## Trust and scope\n\n- `tavily` requires `TAVILY_API_KEY` and sends the query to Tavily.\n- `local` searches only workspace `memory/` and `skills/`, with bounded depth and file size.\n- Symlinked files and directories are skipped; binary/unreadable files are ignored.\n- `web-search-plus` and `browser` are accepted for compatibility but report that they are not configured rather than pretending to search them.\n- Queries are trimmed and capped at 500 characters; `max_results` is 1–50.\n\nEach result includes a source label, title, URL when available, score, and content/snippet. Treat network results as external evidence and verify important claims before relying on them.\n\n## Source and support\n\nSource: https://github.com/iyeque/openclaw-skills/tree/main/skills/unified-web-search\n\nReport bugs and security concerns through the repository issue guidance.\n\nFile v1.3.2:_meta.json\n\n{\n  \"ownerId\": \"kn7ahjjpbd05yyj8nvxpdekzd181303t\",\n  \"slug\": \"iyeque-unified-web-search\",\n  \"version\": \"1.3.2\",\n  \"publishedAt\": 1791590512714\n}\n\nFile v1.3.2:skill-card.md\n\n## Description:\n\nSearches the web and selected workspace content with bounded, source-labeled results for research and fact-finding.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[iyeque](https://clawhub.ai/user/iyeque)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nAgents and their users can find current web information or locate content in workspace memory and skills, then inspect source-labeled results before using them.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Web queries sent to Tavily may disclose confidential or proprietary information.\n\nMitigation: Enable network search only for approved, non-sensitive queries.\n\nRisk: Local search can read workspace memory and skills content.\n\nMitigation: Enable local search only when access to those folders is appropriate.\n\nRisk: Web results may be inaccurate or misleading.\n\nMitigation: Verify important claims against their sources before relying on them.\n\n## Reference(s):\n\n- [Unified Web Search on ClawHub](https://clawhub.ai/iyeque/skills/iyeque-unified-web-search)\n\n## Skill Output:\n\n**Output Type(s):** [Text]\n\n**Output Format:** [JSON]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Up to 50 source-labeled results with titles, scores, and content or snippets; URLs when available, with warnings reported separately.]\n\n## Skill Version(s):\n\n1.3.2 (source: ClawHub release and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.3.1: 4 files, 4547 bytes\n\nFiles: index.js (5126b), skill-card.md (1913b), SKILL.md (1580b), _meta.json (144b)\n\nFile v1.3.1:SKILL.md\n\n---\nname: unified-web-search\ndescription: \"Evidence-first web and workspace search with bounded results, source labels, and machine-readable provenance. Use for research questions, current facts, or finding content in local memory and skills.\"\nlicense: MIT-0\nmetadata:\n  openclaw:\n    emoji: \"🔍\"\n    requires:\n      bins: [\"node\"]\n    version: \"1.3.1\"\n---\n\n# Evidence-first unified search\n\nUse `index.js` when a task needs web retrieval plus a bounded search of local `memory/` and `skills/` content. Results are JSON on stdout; warnings are JSON on stderr so callers can preserve provenance.\n\n## Quick start\n\n```bash\nnode index.js --query \"latest climate policy\" --sources '[\"tavily\"]' --allow-network --max_results 5\nnode index.js --query \"meeting notes\" --sources '[\"local\"]' --allow-local --max_results 10\nnode index.js --query \"AI developments\" --sources '[\"tavily\",\"local\"]' --max_results 10\n```\n\n## Trust and scope\n\n- `tavily` requires `TAVILY_API_KEY` and sends the query to Tavily.\n- `local` searches only workspace `memory/` and `skills/`, with bounded depth and file size.\n- Symlinked files and directories are skipped; binary/unreadable files are ignored.\n- `web-search-plus` and `browser` are accepted for compatibility but report that they are not configured rather than pretending to search them.\n- Queries are trimmed and capped at 500 characters; `max_results` is 1–50.\n\nEach result includes a source label, title, URL when available, score, and content/snippet. Treat network results as external evidence and verify important claims before relying on them.\n\nFile v1.3.1:_meta.json\n\n{\n  \"ownerId\": \"kn7ahjjpbd05yyj8nvxpdekzd181303t\",\n  \"slug\": \"iyeque-unified-web-search\",\n  \"version\": \"1.3.1\",\n  \"publishedAt\": 1791127310441\n}\n\nFile v1.3.1:skill-card.md\n\n## Description:\n\nSearches the web and workspace files for bounded, source-labeled results with provenance information.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[iyeque](https://clawhub.ai/user/iyeque)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and other agent users can retrieve current web information or find relevant content in workspace memory and skills, with source-labeled results for review.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Web search sends the query and Tavily API key to Tavily when network access is enabled.\n\nMitigation: Enable network search only for queries suitable for external disclosure; do not submit confidential prompts or secrets.\n\nRisk: Local search reads matching content from workspace memory and skills when enabled.\n\nMitigation: Enable local search only when workspace content may be read, and review retrieved snippets before sharing them.\n\nRisk: External search results can contain inaccurate information.\n\nMitigation: Verify important claims against their sources before relying on them.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/iyeque/skills/iyeque-unified-web-search)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Guidance]\n\n**Output Format:** [JSON search results with source labels, titles, scores, and snippets; warnings when a requested source is unavailable]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Up to 50 results per query; web results may include source URLs.]\n\n## Skill Version(s):\n\n1.3.1 (source: server-resolved release metadata and skill metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.3.0: 4 files, 4255 bytes\n\nFiles: index.js (4562b), skill-card.md (1773b), SKILL.md (1550b), _meta.json (144b)\n\nFile v1.3.0:SKILL.md\n\n---\nname: unified-web-search\ndescription: \"Evidence-first web and workspace search with bounded results, source labels, and machine-readable provenance. Use for research questions, current facts, or finding content in local memory and skills.\"\nlicense: MIT-0\nmetadata:\n  openclaw:\n    emoji: \"🔍\"\n    requires:\n      bins: [\"node\"]\n    version: \"1.3.0\"\n---\n\n# Evidence-first unified search\n\nUse `index.js` when a task needs web retrieval plus a bounded search of local `memory/` and `skills/` content. Results are JSON on stdout; warnings are JSON on stderr so callers can preserve provenance.\n\n## Quick start\n\n```bash\nnode index.js --query \"latest climate policy\" --sources '[\"tavily\"]' --max_results 5\nnode index.js --query \"meeting notes\" --sources '[\"local\"]' --max_results 10\nnode index.js --query \"AI developments\" --sources '[\"tavily\",\"local\"]' --max_results 10\n```\n\n## Trust and scope\n\n- `tavily` requires `TAVILY_API_KEY` and sends the query to Tavily.\n- `local` searches only workspace `memory/` and `skills/`, with bounded depth and file size.\n- Symlinked files and directories are skipped; binary/unreadable files are ignored.\n- `web-search-plus` and `browser` are accepted for compatibility but report that they are not configured rather than pretending to search them.\n- Queries are trimmed and capped at 500 characters; `max_results` is 1–50.\n\nEach result includes a source label, title, URL when available, score, and content/snippet. Treat network results as external evidence and verify important claims before relying on them.\n\nFile v1.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ahjjpbd05yyj8nvxpdekzd181303t\",\n  \"slug\": \"iyeque-unified-web-search\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1790988998536\n}\n\nFile v1.3.0:skill-card.md\n\n## Description:\n\nEvidence-first web and workspace search with bounded results, source labels, and machine-readable provenance.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[iyeque](https://clawhub.ai/user/iyeque)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nAgents and their users can look up current web information or find relevant content in workspace memory and skills, with labeled search results for review.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Web queries may disclose sensitive information to Tavily when external search is enabled.\n\nMitigation: Use local-only search for private queries, and send queries to Tavily only when sharing them is acceptable.\n\nRisk: Local results may expose snippets from workspace memory or skills, and web snippets may contain inaccurate claims.\n\nMitigation: Review who receives local results and verify important web claims against their original sources.\n\n## Reference(s):\n\n- [Unified Web Search on ClawHub](https://clawhub.ai/iyeque/skills/iyeque-unified-web-search)\n- [iyeque publisher profile](https://clawhub.ai/user/iyeque)\n\n## Skill Output:\n\n**Output Type(s):** [Text]\n\n**Output Format:** [JSON search results and warnings]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Bounded results include source labels, titles, scores, and snippets or content; web results may include URLs.]\n\n## Skill Version(s):\n\n1.3.0 (source: ClawHub release and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.0: 4 files, 4172 bytes\n\nFiles: _meta.json (144b), index.js (4562b), skill-card.md (1631b), SKILL.md (1364b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: unified-web-search\ndescription: \"Search the web with Tavily and search workspace files with provenance, bounded results, and explicit source warnings. Use when a query needs web or local-file retrieval.\"\nmetadata:\n  openclaw:\n    emoji: \"🔍\"\n    requires:\n      bins: [\"node\"]\n    version: \"1.2.0\"\n---\n\n# Unified Web Search\n\nRun `index.js` with Node 18+ from the skill workspace. The program uses direct HTTPS requests for Tavily and never interpolates user input into a shell command.\n\n## Usage\n\n```bash\nnode index.js --query \"climate change\" --max_results 5\nnode index.js --query \"meeting notes\" --sources '[\"local\"]'\nnode index.js --query \"AI developments\" --sources '[\"tavily\",\"local\"]' --max_results 10\n```\n\n## Sources\n\n- `tavily`: Uses `TAVILY_API_KEY`; network failures are reported as warnings.\n- `local`: Searches text and filenames under the current workspace's `memory/` and `skills/` directories, with bounded recursion and file size.\n- `web-search-plus` and `browser`: Accepted for compatibility, but this standalone bundle reports that they are not configured instead of silently pretending to search them.\n\nQueries are trimmed and limited to 500 characters. `max_results` must be 1–50. Output is a JSON array with `source`, `title`, `url`, `score`, and `content` or `snippet`; warnings go to stderr so stdout remains machine-readable.\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ahjjpbd05yyj8nvxpdekzd181303t\",\n  \"slug\": \"iyeque-unified-web-search\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1790983490698\n}\n\nFile v1.2.0:skill-card.md\n\n## Description:\n\nSearch the web with Tavily and workspace files with bounded results and source warnings.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[iyeque](https://clawhub.ai/user/iyeque)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and other agent users retrieve web results and relevant workspace text to support research and answer questions, selecting web or local sources as needed.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Web searches send queries to Tavily when that source is selected.\n\nMitigation: Choose sources explicitly for sensitive work; leave TAVILY_API_KEY unset to avoid Tavily search.\n\nRisk: Local search can return matching snippets from workspace memory/ and skills/ files.\n\nMitigation: Select sources explicitly and review results before sharing them outside the workspace.\n\n## Reference(s):\n\n- [Unified Web Search on ClawHub](https://clawhub.ai/iyeque/skills/iyeque-unified-web-search)\n\n## Skill Output:\n\n**Output Type(s):** [Text]\n\n**Output Format:** [JSON array of search results]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Results identify the source, title, URL, score, and content or snippet; source warnings are separate from results.]\n\n## Skill Version(s):\n\n1.2.0 (source: server-resolved release and skill metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.1: 3 files, 4063 bytes\n\nFiles: index.js (5643b), SKILL.md (3453b), _meta.json (144b)\n\nFile v1.1.1:SKILL.md\n\n---\nname: unified-web-search\ndescription: Pick the best source (Tavily, Web Search Plus, Browser, or local files) for a query, run the search, and return ranked results with provenance.\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🔍\",\n        \"requires\": { \"bins\": [\"node\"], \"env\": [\"TAVILY_API_KEY\"] },\n        \"version\": \"1.1.0\",\n      },\n  }\n---\n\n# Unified Web Search Skill\n\nIntelligently select the best search source, aggregate results, and return ranked answers with provenance.\n\n## Security\n\nAll search queries are validated and sanitized:\n- Maximum query length: 500 characters\n- Shell metacharacters are blocked to prevent command injection\n- Local file searches are restricted to workspace directories only\n\n## Tool API\n\n### unified_web_search\nPerform a unified search across multiple sources.\n\n- **Parameters:**\n  - `query` (string, required): The search query (alphanumeric, spaces, basic punctuation only)\n  - `sources` (array of strings, optional): Array of sources to search. Defaults to `['tavily', 'web-search-plus', 'local']`. Options: `tavily`, `web-search-plus`, `browser`, `local`.\n  - `max_results` (integer, optional): Maximum number of results to return. Defaults to `5`.\n\n**Usage:**\n\n```bash\n# Search all sources\nnode skills/unified-web-search/index.js --query \"my search term\" --max_results 10\n\n# Search specific sources\nnode skills/unified-web-search/index.js --query \"AI developments\" --sources '[\"tavily\", \"local\"]' --max_results 10\n\n# Search local files only\nnode skills/unified-web-search/index.js --query \"meeting notes\" --sources '[\"local\"]'\n```\n\n## Implementation\n\nThe skill aggregates results from multiple sources:\n\n- **Tavily:** AI-optimized web search with relevance scoring (requires `TAVILY_API_KEY`)\n- **Web Search Plus:** Broader web search coverage (placeholder for future integration)\n- **Browser:** Targeted site scraping (placeholder for future integration)\n- **Local Files:** Searches workspace directories for matching filenames\n\nResults are scored and ranked by relevance, then returned with source attribution in JSON format.\n\n## Output Format\n\n```json\n[\n  {\n    \"source\": \"tavily\",\n    \"title\": \"Article Title\",\n    \"url\": \"https://example.com/article\",\n    \"score\": 0.95,\n    \"content\": \"Brief excerpt from the article...\"\n  },\n  {\n    \"source\": \"local\",\n    \"title\": \"/path/to/file.txt\",\n    \"snippet\": \"Found query in filename: file.txt\",\n    \"score\": 0.5\n  }\n]\n```\n\n## Environment Variables\n\n- `TAVILY_API_KEY`: Required for Tavily search functionality. Get your key at https://app.tavily.com\n\n## Error Handling\n\n- Returns error if query is missing or empty\n- Returns error if query contains disallowed characters\n- Gracefully handles API failures (continues with other sources)\n- Warns if TAVILY_API_KEY is not set\n\n## Example\n\n```bash\n$ node skills/unified-web-search/index.js --query \"climate change\" --max_results 3\n[\n  {\n    \"source\": \"tavily\",\n    \"title\": \"IPCC Climate Report 2024\",\n    \"url\": \"https://ipcc.ch/report\",\n    \"score\": 0.92,\n    \"content\": \"The latest IPCC report shows...\"\n  },\n  {\n    \"source\": \"tavily\",\n    \"title\": \"Climate Action Tracker\",\n    \"url\": \"https://climateactiontracker.org\",\n    \"score\": 0.87,\n    \"content\": \"Tracking government climate commitments...\"\n  },\n  {\n    \"source\": \"local\",\n    \"title\": \"/home/user/.openclaw/workspace/memory/climate-notes.md\",\n    \"snippet\": \"Found query in filename: climate-notes.md\",\n    \"score\": 0.5\n  }\n]\n```\n\nFile v1.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn7ahjjpbd05yyj8nvxpdekzd181303t\",\n  \"slug\": \"iyeque-unified-web-search\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1771348098747\n}\n\nArchive v1.1.0: 3 files, 4267 bytes\n\nFiles: index.js (6634b), SKILL.md (3453b), _meta.json (144b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: unified-web-search\ndescription: Pick the best source (Tavily, Web Search Plus, Browser, or local files) for a query, run the search, and return ranked results with provenance.\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🔍\",\n        \"requires\": { \"bins\": [\"node\"], \"env\": [\"TAVILY_API_KEY\"] },\n        \"version\": \"1.1.0\",\n      },\n  }\n---\n\n# Unified Web Search Skill\n\nIntelligently select the best search source, aggregate results, and return ranked answers with provenance.\n\n## Security\n\nAll search queries are validated and sanitized:\n- Maximum query length: 500 characters\n- Shell metacharacters are blocked to prevent command injection\n- Local file searches are restricted to workspace directories only\n\n## Tool API\n\n### unified_web_search\nPerform a unified search across multiple sources.\n\n- **Parameters:**\n  - `query` (string, required): The search query (alphanumeric, spaces, basic punctuation only)\n  - `sources` (array of strings, optional): Array of sources to search. Defaults to `['tavily', 'web-search-plus', 'local']`. Options: `tavily`, `web-search-plus`, `browser`, `local`.\n  - `max_results` (integer, optional): Maximum number of results to return. Defaults to `5`.\n\n**Usage:**\n\n```bash\n# Search all sources\nnode skills/unified-web-search/index.js --query \"my search term\" --max_results 10\n\n# Search specific sources\nnode skills/unified-web-search/index.js --query \"AI developments\" --sources '[\"tavily\", \"local\"]' --max_results 10\n\n# Search local files only\nnode skills/unified-web-search/index.js --query \"meeting notes\" --sources '[\"local\"]'\n```\n\n## Implementation\n\nThe skill aggregates results from multiple sources:\n\n- **Tavily:** AI-optimized web search with relevance scoring (requires `TAVILY_API_KEY`)\n- **Web Search Plus:** Broader web search coverage (placeholder for future integration)\n- **Browser:** Targeted site scraping (placeholder for future integration)\n- **Local Files:** Searches workspace directories for matching filenames\n\nResults are scored and ranked by relevance, then returned with source attribution in JSON format.\n\n## Output Format\n\n```json\n[\n  {\n    \"source\": \"tavily\",\n    \"title\": \"Article Title\",\n    \"url\": \"https://example.com/article\",\n    \"score\": 0.95,\n    \"content\": \"Brief excerpt from the article...\"\n  },\n  {\n    \"source\": \"local\",\n    \"title\": \"/path/to/file.txt\",\n    \"snippet\": \"Found query in filename: file.txt\",\n    \"score\": 0.5\n  }\n]\n```\n\n## Environment Variables\n\n- `TAVILY_API_KEY`: Required for Tavily search functionality. Get your key at https://app.tavily.com\n\n## Error Handling\n\n- Returns error if query is missing or empty\n- Returns error if query contains disallowed characters\n- Gracefully handles API failures (continues with other sources)\n- Warns if TAVILY_API_KEY is not set\n\n## Example\n\n```bash\n$ node skills/unified-web-search/index.js --query \"climate change\" --max_results 3\n[\n  {\n    \"source\": \"tavily\",\n    \"title\": \"IPCC Climate Report 2024\",\n    \"url\": \"https://ipcc.ch/report\",\n    \"score\": 0.92,\n    \"content\": \"The latest IPCC report shows...\"\n  },\n  {\n    \"source\": \"tavily\",\n    \"title\": \"Climate Action Tracker\",\n    \"url\": \"https://climateactiontracker.org\",\n    \"score\": 0.87,\n    \"content\": \"Tracking government climate commitments...\"\n  },\n  {\n    \"source\": \"local\",\n    \"title\": \"/home/user/.openclaw/workspace/memory/climate-notes.md\",\n    \"snippet\": \"Found query in filename: climate-notes.md\",\n    \"score\": 0.5\n  }\n]\n```\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ahjjpbd05yyj8nvxpdekzd181303t\",\n  \"slug\": \"iyeque-unified-web-search\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1771326715743\n}\n\nArchive v1.0.0: 3 files, 2572 bytes\n\nFiles: index.js (3924b), SKILL.md (1329b), _meta.json (144b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: unified-web-search\ndescription: Pick the best source (Tavily, Web Search Plus, Browser, or local files) for a query, run the search, and return ranked results with provenance.\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🔍\",\n      },\n  }\n---\n\n# Unified Web Search Skill\n\nIntelligently select the best search source, aggregate results, and return ranked answers with provenance.\n\n## Tool API\n\n### unified_web_search\nPerform a unified search across multiple sources.\n\n- **Parameters:**\n  - `query` (string, required): The search query.\n  - `sources` (array of strings, optional): Array of sources to search. Defaults to `['tavily', 'web-search-plus', 'local']`. Options: `tavily`, `web-search-plus`, `browser`, `local`.\n  - `max_results` (integer, optional): Maximum number of results to return. Defaults to `5`.\n\n**Usage:**\n\n```bash\nnode skills/unified-web-search/index.js --query \"my search term\" --sources '[\"tavily\", \"local\"]' --max_results 10\n```\n\n## Implementation\n\nThe skill aggregates results from multiple sources:\n\n- **Tavily:** For web facts and news.\n- **Web Search Plus:** For broader web search.\n- **Browser:** For targeted site scraping (if needed).\n- **Local Files:** For searching indexed local documents.\n\nResults are scored and ranked by relevance, then returned with source attribution.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7ahjjpbd05yyj8nvxpdekzd181303t\",\n  \"slug\": \"iyeque-unified-web-search\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1771064943756\n}","readmeExcerpt":"Skill: Unified Web Search Owner: iyeque Summary: Evidence-first web and workspace search with bounded results, source labels, and machine-readable provenance. Use for research questions, current facts, or finding content in local memory and skills. Tags: latest:1.3.2 Version history: v1.3.2 | 2026-10-10T00:01:52.714Z | user Added explicit examples, GitHub source link, and security/support guidance. v1.3.1 | 2026-10-0","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"node index.js --query \"latest climate policy\" --sources '[\"tavily\"]' --allow-network --max_results 5\nnode index.js --query \"meeting notes\" --sources '[\"local\"]' --allow-local --max_results 10\nnode index.js --query \"AI developments\" --sources '[\"tavily\",\"local\"]' --max_results 10"},{"language":"bash","snippet":"node index.js --query \"latest climate policy\" --sources '[\"tavily\"]' --allow-network --max_results 5\nnode index.js --query \"meeting notes\" --sources '[\"local\"]' --allow-local --max_results 10\nnode index.js --query \"AI developments\" --sources '[\"tavily\",\"local\"]' --max_results 10"},{"language":"bash","snippet":"node index.js --query \"latest climate policy\" --sources '[\"tavily\"]' --max_results 5\nnode index.js --query \"meeting notes\" --sources '[\"local\"]' --max_results 10\nnode index.js --query \"AI developments\" --sources '[\"tavily\",\"local\"]' --max_results 10"},{"language":"bash","snippet":"node index.js --query \"climate change\" --max_results 5\nnode index.js --query \"meeting notes\" --sources '[\"local\"]'\nnode index.js --query \"AI developments\" --sources '[\"tavily\",\"local\"]' --max_results 10"},{"language":"bash","snippet":"# Search all sources\nnode skills/unified-web-search/index.js --query \"my search term\" --max_results 10\n\n# Search specific sources\nnode skills/unified-web-search/index.js --query \"AI developments\" --sources '[\"tavily\", \"local\"]' --max_results 10\n\n# Search local files only\nnode skills/unified-web-search/index.js --query \"meeting notes\" --sources '[\"local\"]'"},{"language":"json","snippet":"[\n  {\n    \"source\": \"tavily\",\n    \"title\": \"Article Title\",\n    \"url\": \"https://example.com/article\",\n    \"score\": 0.95,\n    \"content\": \"Brief excerpt from the article...\"\n  },\n  {\n    \"source\": \"local\",\n    \"title\": \"/path/to/file.txt\",\n    \"snippet\": \"Found query in filename: file.txt\",\n    \"score\": 0.5\n  }\n]"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: unified-web-search\ndescription: \"Evidence-first web and workspace search with bounded results, source labels, and machine-readable provenance. Use for research questions, current facts, or finding content in local memory and skills.\"\nlicense: MIT-0\nmetadata:\n  openclaw:\n    emoji: \"🔍\"\n    requires:\n      bins: [\"node\"]\n    version: \"1.3.2\"\n---\n\n# Evidence-first unified search\n\nUse `index.js` when a task needs web retrieval plus a bounded search of local `memory/` and `skills/` content. Results are JSON on stdout; warnings are JSON on stderr so callers can preserve provenance.\n\n## Quick start\n\n```bash\nnode index.js --query \"latest climate policy\" --sources '[\"tavily\"]' --allow-network --max_results 5\nnode index.js --query \"meeting notes\" --sources '[\"local\"]' --allow-local --max_results 10\nnode index.js --query \"AI developments\" --sources '[\"tavily\",\"local\"]' --max_results 10\n```\n\n## Trust and scope\n\n- `tavily` requires `TAVILY_API_KEY` and sends the query to Tavily.\n- `local` searches only workspace `memory/` and `skills/`, with bounded depth and file size.\n- Symlinked files and directories are skipped; binary/unreadable files are ignored.\n- `web-search-plus` and `browser` are accepted for compatibility but report that they are not configured rather than pretending to search them.\n- Queries are trimmed and capped at 500 characters; `max_results` is 1–50.\n\nEach result includes a source label, title, URL when available, score, and content/snippet. Treat network results as external evidence and verify important claims before relying on them.\n\n## Source and support\n\nSource: https://github.com/iyeque/openclaw-skills/tree/main/skills/unified-web-search\n\nReport bugs and security concerns through the repository issue guidance."},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7ahjjpbd05yyj8nvxpdekzd181303t\",\n  \"slug\": \"iyeque-unified-web-search\",\n  \"version\": \"1.3.2\",\n  \"publishedAt\": 1791590512714\n}"},{"path":"skill-card.md","content":"## Description:\n\nSearches the web and selected workspace content with bounded, source-labeled results for research and fact-finding.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[iyeque](https://clawhub.ai/user/iyeque)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nAgents and their users can find current web information or locate content in workspace memory and skills, then inspect source-labeled results before using them.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Web queries sent to Tavily may disclose confidential or proprietary information.\n\nMitigation: Enable network search only for approved, non-sensitive queries.\n\nRisk: Local search can read workspace memory and skills content.\n\nMitigation: Enable local search only when access to those folders is appropriate.\n\nRisk: Web results may be inaccurate or misleading.\n\nMitigation: Verify important claims against their sources before relying on them.\n\n## Reference(s):\n\n- [Unified Web Search on ClawHub](https://clawhub.ai/iyeque/skills/iyeque-unified-web-search)\n\n## Skill Output:\n\n**Output Type(s):** [Text]\n\n**Output Format:** [JSON]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Up to 50 source-labeled results with titles, scores, and content or snippets; URLs when available, with warnings reported separately.]\n\n## Skill Version(s):\n\n1.3.2 (source: ClawHub release and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Evidence-first web and workspace search with bounded results, source labels, and machine-readable provenance. Use for research questions, current facts, or finding content in local memory and skills. Skill: Unified Web Search Owner: iyeque Summary: Evidence-first web and workspace search with bounded results, source labels, and machine-readable provenance. Use for research questions, current facts, or finding content in local memory and skills. Tags: latest:1.3.2 Version history: v1.3.2 | 2026-10-10T00:01:52.714Z | user Added explicit examples, GitHub source link, and security/support guidance. v1.3.1 | 2026-10-0","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":924,"uniquenessScore":53,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T14:07:45.536Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T14:07:45.536Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T17:44:47.220Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}