{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openclaw-search-tool",
    "name": "Openclaw Research Tool",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/aaronn/openclaw-search-tool",
    "canonicalUrl": "https://clawhub.ai/aaronn/openclaw-search-tool",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/openclaw-search-tool",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-search-tool",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/openclaw-search-tool"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/openclaw-search-tool",
    "agentPageUrl": "https://openagent3.xyz/skills/openclaw-search-tool/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-search-tool/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-search-tool/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "OpenClaw Research Tool",
        "body": "Web search for OpenClaw agents, powered by OpenRouter. Ask questions in natural language, get accurate answers with cited sources. Defaults to GPT-5.2 which excels at documentation lookups and citation-heavy research.\n\nNote: Even low-effort queries may take 1 minute or more to complete. High/xhigh reasoning can take 10+ minutes depending on complexity. This is normal — the model is searching the web, reading pages, and synthesizing an answer.\nRecommended: Run research-tool in a sub-agent so your main session stays responsive:\nsessions_spawn task:\"research-tool 'your query here'\"\n\n⚠️ Never set a timeout on exec when running research-tool. Queries routinely take 1-10+ minutes. Use yieldMs to background it, then poll — but do NOT set timeout or the process will be killed mid-search.\n\nThe :online model suffix gives any model live web access — it searches the web, reads pages, cites URLs, and synthesizes an answer."
      },
      {
        "title": "Install",
        "body": "cargo install openclaw-search-tool\n\nRequires OPENROUTER_API_KEY env var. Get a key at https://openrouter.ai/keys"
      },
      {
        "title": "Quick start",
        "body": "research-tool \"What are the x.com API rate limits?\"\nresearch-tool \"How do I set reasoning effort parameters on OpenRouter?\""
      },
      {
        "title": "From an OpenClaw agent",
        "body": "# Best: run in a sub-agent (main session stays responsive)\nsessions_spawn task:\"research-tool 'your query here'\"\n\n# Or via exec — NEVER set timeout, use yieldMs to background:\nexec command:\"research-tool 'your query'\" yieldMs:5000\n# then poll the session until complete"
      },
      {
        "title": "--effort, -e (default: low)",
        "body": "Controls how much the model reasons before answering. Higher effort means better analysis but slower and more tokens.\n\nresearch-tool --effort low \"What year was Rust 1.0 released?\"\nresearch-tool --effort medium \"Explain how OpenRouter routes requests to different model providers\"\nresearch-tool --effort high \"Compare tradeoffs between Opus 4.6 and gpt-5.3-codex for programming\"\nresearch-tool --effort xhigh \"Deep analysis of React Server Components vs traditional SSR approaches\"\n\nLevelSpeedWhen to uselow~1-3 minQuick fact lookups, simple questionsmedium~2-5 minStandard research, moderate analysishigh~3-10 minDeep analysis with careful reasoningxhigh~5-20+ minMaximum reasoning, complex multi-source synthesis\n\nCan also be set via env var RESEARCH_EFFORT."
      },
      {
        "title": "--model, -m (default: openai/gpt-5.2:online)",
        "body": "Which model to use. Defaults to GPT-5.2 with the :online suffix because it excels at questions where citations and accurate documentation lookups matter. The :online suffix enables live web search and works with any model on OpenRouter.\n\n# Default: GPT-5.2 with web search (great for docs and cited answers)\nresearch-tool \"current weather in San Francisco\"\n\n# Claude with web search\nresearch-tool -m \"anthropic/claude-sonnet-4-20250514:online\" \"Summarize recent changes to the OpenAI API\"\n\n# GPT-5.2 without web search (training data only)\nresearch-tool -m \"openai/gpt-5.2\" \"Explain the React Server Components architecture\"\n\n# Any OpenRouter model\nresearch-tool -m \"google/gemini-2.5-pro:online\" \"Compare React vs Svelte in 2026\"\n\nCan also be set via env var RESEARCH_MODEL."
      },
      {
        "title": "--system, -s",
        "body": "Override the system prompt to give the model a specific persona or instructions.\n\nresearch-tool -s \"You are a senior infrastructure engineer\" \"Best practices for zero-downtime Kubernetes deployments\"\nresearch-tool -s \"You are a Rust systems programmer\" \"Best async patterns for WebSocket servers\""
      },
      {
        "title": "--stdin",
        "body": "Read the query from stdin. Useful for long or multiline queries.\n\necho \"Explain the OpenRouter model routing architecture\" | research-tool --stdin\ncat detailed-prompt.txt | research-tool --stdin"
      },
      {
        "title": "--max-tokens (default: 12800)",
        "body": "Maximum tokens in the response."
      },
      {
        "title": "--timeout (optional, no default)",
        "body": "No timeout by default — queries run until the model finishes. Set this only if you need a hard upper bound (e.g. --timeout 300)."
      },
      {
        "title": "Output format",
        "body": "stdout: Response text only (markdown with citations) — pipe-friendly\nstderr: Progress status, reasoning traces, and token usage\n\n🔍 Researching with openai/gpt-5.2:online (effort: high)...\n✅ Connected — waiting for response...\n\n[response text on stdout]\n\n📊 Tokens: 4470 prompt + 184 completion = 4654 total | ⏱ 5s"
      },
      {
        "title": "Status indicators",
        "body": "🔍 Researching... — request sent to OpenRouter\n✅ Connected — waiting for response... — server accepted the request, model is searching/thinking\n⏳ 15s... ⏳ 30s... — elapsed time ticks (only in interactive terminals, not in agent exec)\n❌ Connection to OpenRouter failed — couldn't reach OpenRouter (network issue)\n❌ Connection to OpenRouter lost — connection dropped while waiting. Retry?"
      },
      {
        "title": "Tips for better results",
        "body": "Write in natural language. \"What are the best practices for Rust error handling and when should you use anyhow vs thiserror?\" works better than keyword-style queries.\nProvide maximum context. The model starts from zero. Include background, what you already know, and all related sub-questions. Detailed prompts massively outperform vague ones.\nUse effort levels appropriately. low for quick facts, high for real research, xhigh only for complex multi-source analysis.\nUse -s for domain expertise. A specific persona produces noticeably better domain-specific answers."
      },
      {
        "title": "Cost",
        "body": "~$0.01–0.05 per query. Token usage is printed to stderr after each query."
      }
    ],
    "body": "OpenClaw Research Tool\n\nWeb search for OpenClaw agents, powered by OpenRouter. Ask questions in natural language, get accurate answers with cited sources. Defaults to GPT-5.2 which excels at documentation lookups and citation-heavy research.\n\nNote: Even low-effort queries may take 1 minute or more to complete. High/xhigh reasoning can take 10+ minutes depending on complexity. This is normal — the model is searching the web, reading pages, and synthesizing an answer.\n\nRecommended: Run research-tool in a sub-agent so your main session stays responsive:\n\nsessions_spawn task:\"research-tool 'your query here'\"\n\n\n⚠️ Never set a timeout on exec when running research-tool. Queries routinely take 1-10+ minutes. Use yieldMs to background it, then poll — but do NOT set timeout or the process will be killed mid-search.\n\nThe :online model suffix gives any model live web access — it searches the web, reads pages, cites URLs, and synthesizes an answer.\n\nInstall\ncargo install openclaw-search-tool\n\n\nRequires OPENROUTER_API_KEY env var. Get a key at https://openrouter.ai/keys\n\nQuick start\nresearch-tool \"What are the x.com API rate limits?\"\nresearch-tool \"How do I set reasoning effort parameters on OpenRouter?\"\n\nFrom an OpenClaw agent\n# Best: run in a sub-agent (main session stays responsive)\nsessions_spawn task:\"research-tool 'your query here'\"\n\n# Or via exec — NEVER set timeout, use yieldMs to background:\nexec command:\"research-tool 'your query'\" yieldMs:5000\n# then poll the session until complete\n\nFlags\n--effort, -e (default: low)\n\nControls how much the model reasons before answering. Higher effort means better analysis but slower and more tokens.\n\nresearch-tool --effort low \"What year was Rust 1.0 released?\"\nresearch-tool --effort medium \"Explain how OpenRouter routes requests to different model providers\"\nresearch-tool --effort high \"Compare tradeoffs between Opus 4.6 and gpt-5.3-codex for programming\"\nresearch-tool --effort xhigh \"Deep analysis of React Server Components vs traditional SSR approaches\"\n\nLevel\tSpeed\tWhen to use\nlow\t~1-3 min\tQuick fact lookups, simple questions\nmedium\t~2-5 min\tStandard research, moderate analysis\nhigh\t~3-10 min\tDeep analysis with careful reasoning\nxhigh\t~5-20+ min\tMaximum reasoning, complex multi-source synthesis\n\nCan also be set via env var RESEARCH_EFFORT.\n\n--model, -m (default: openai/gpt-5.2:online)\n\nWhich model to use. Defaults to GPT-5.2 with the :online suffix because it excels at questions where citations and accurate documentation lookups matter. The :online suffix enables live web search and works with any model on OpenRouter.\n\n# Default: GPT-5.2 with web search (great for docs and cited answers)\nresearch-tool \"current weather in San Francisco\"\n\n# Claude with web search\nresearch-tool -m \"anthropic/claude-sonnet-4-20250514:online\" \"Summarize recent changes to the OpenAI API\"\n\n# GPT-5.2 without web search (training data only)\nresearch-tool -m \"openai/gpt-5.2\" \"Explain the React Server Components architecture\"\n\n# Any OpenRouter model\nresearch-tool -m \"google/gemini-2.5-pro:online\" \"Compare React vs Svelte in 2026\"\n\n\nCan also be set via env var RESEARCH_MODEL.\n\n--system, -s\n\nOverride the system prompt to give the model a specific persona or instructions.\n\nresearch-tool -s \"You are a senior infrastructure engineer\" \"Best practices for zero-downtime Kubernetes deployments\"\nresearch-tool -s \"You are a Rust systems programmer\" \"Best async patterns for WebSocket servers\"\n\n--stdin\n\nRead the query from stdin. Useful for long or multiline queries.\n\necho \"Explain the OpenRouter model routing architecture\" | research-tool --stdin\ncat detailed-prompt.txt | research-tool --stdin\n\n--max-tokens (default: 12800)\n\nMaximum tokens in the response.\n\n--timeout (optional, no default)\n\nNo timeout by default — queries run until the model finishes. Set this only if you need a hard upper bound (e.g. --timeout 300).\n\nOutput format\nstdout: Response text only (markdown with citations) — pipe-friendly\nstderr: Progress status, reasoning traces, and token usage\n🔍 Researching with openai/gpt-5.2:online (effort: high)...\n✅ Connected — waiting for response...\n\n[response text on stdout]\n\n📊 Tokens: 4470 prompt + 184 completion = 4654 total | ⏱ 5s\n\nStatus indicators\n🔍 Researching... — request sent to OpenRouter\n✅ Connected — waiting for response... — server accepted the request, model is searching/thinking\n⏳ 15s... ⏳ 30s... — elapsed time ticks (only in interactive terminals, not in agent exec)\n❌ Connection to OpenRouter failed — couldn't reach OpenRouter (network issue)\n❌ Connection to OpenRouter lost — connection dropped while waiting. Retry?\nTips for better results\nWrite in natural language. \"What are the best practices for Rust error handling and when should you use anyhow vs thiserror?\" works better than keyword-style queries.\nProvide maximum context. The model starts from zero. Include background, what you already know, and all related sub-questions. Detailed prompts massively outperform vague ones.\nUse effort levels appropriately. low for quick facts, high for real research, xhigh only for complex multi-source analysis.\nUse -s for domain expertise. A specific persona produces noticeably better domain-specific answers.\nCost\n\n~$0.01–0.05 per query. Token usage is printed to stderr after each query."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/aaronn/openclaw-search-tool",
    "publisherUrl": "https://clawhub.ai/aaronn/openclaw-search-tool",
    "owner": "aaronn",
    "version": "0.1.5",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openclaw-search-tool",
    "downloadUrl": "https://openagent3.xyz/downloads/openclaw-search-tool",
    "agentUrl": "https://openagent3.xyz/skills/openclaw-search-tool/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-search-tool/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-search-tool/agent.md"
  }
}