Skip to content
Back to skills

Echo Openclaw Perplexity Ultimate Async Deep Researcher

ASecurity

Perform deep, concurrent web research using the Perplexity Search API.

  • 16 stars
  • 0 votes
  • 0 copies
  • 7 views
  • Added June 7, 2026
researchpythonapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned June 7, 2026

npx -y skills add modbender/skill-library-mcp --skill echo-openclaw-perplexity-ultimate-async-deep-researcher --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Echo Openclaw Perplexity Ultimate Async Deep Researcher?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Echo Openclaw Perplexity Ultimate Async Deep Researcher
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/modbender-echo-openclaw-perplexity-ultimate-async-deep-resea/badge)](https://www.skillsdirectory.com/skills/modbender-echo-openclaw-perplexity-ultimate-async-deep-resea)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: echo-perplexity-ultimate-async-researcher
description: Perform deep, concurrent web research using the Perplexity Search API.
author: HolyGrass
version: 1.0.0
metadata: {"openclaw":{"requires":{"env":["PERPLEXITY_API_KEY"],"bins":["python3"]},"primaryEnv":"PERPLEXITY_API_KEY"}}
---

# Echo - OpenClaw Perplexity Ultimate Async Deep Researcher

You are an expert autonomous researcher. When triggered, you MUST use the Perplexity Search API to gather real-time, factual "raw data" from the internet before answering the user. Do not rely solely on your internal training data.

## Execution Workflow

You must strictly follow these 3 stages:

### Stage 1: Query Formulation
Analyze the user's research request.

Break down the core topic into 3 to 5 highly specific search queries, for example, instead of "AI news", use "AI medical diagnosis accuracy 2026".

### Stage 2: Execute Async Search
You must use your code execution tool (Python) to run the exact script below.

Instructions for Agent:
1. Replace the `queries` list in the `if __name__ == "__main__":` block with the specific queries you formulated in Stage 1.
2. Run the code and read the JSON output from stdout.

```python
import asyncio
import json
import sys
import subprocess
import os

# Auto-install dependency to ensure zero-setup for the user
try:
    from perplexity import AsyncPerplexity
except ImportError:
    print("Installing perplexityai...")
    subprocess.check_call([sys.executable, "-m", "pip", "install", "perplexityai", "-q"])
    from perplexity import AsyncPerplexity

async def fetch_results(queries):
    # Ensure API Key exists
    if not os.environ.get("PERPLEXITY_API_KEY"):
        print(json.dumps({"error": "PERPLEXITY_API_KEY environment variable is not set."}, ensure_ascii=False))
        return

    client = AsyncPerplexity(
        api_key=os.environ.get("PERPLEXITY_API_KEY"),
    )

    # Create async tasks for concurrent execution
    tasks = [
        client.search.create(query=q, max_results=5, max_tokens_per_page=2048)
        for q in queries
    ]

    responses = await asyncio.gather(*tasks, return_exceptions=True)

    output = {}
    for q, res in zip(queries, responses):
        if isinstance(res, Exception):
            output[q] = {"error": str(res)}
        else:
            # Extract only necessary raw data to save context window limits
            output[q] = [
                {"title": r.title, "url": r.url, "snippet": r.snippet}
                for r in res.results
            ]

    # Output strictly as JSON for the LLM to parse
    print(json.dumps(output, ensure_ascii=False, indent=2))

if __name__ == "__main__":
    # AGENT: Replace this list with your formulated queries
    queries = ["QUERY_1", "QUERY_2", "QUERY_3", "QUERY_4", "QUERY_5"]
    asyncio.run(fetch_results(queries))
```

### Stage 3: Synthesis and Citation
Read the JSON output generated by the python script.

Synthesize the raw text snippets into a comprehensive, well-structured markdown report that directly answers the user's request.

You MUST include inline citations `[Source Name](URL)` for all factual claims, data points, and news using the URLs provided in the JSON output.

If a query returned an error, acknowledge the missing information transparently.

Files in this skill

  • README.md2.6 KB
  • SKILL.md3.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.