# Send Langsearch to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- 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.
## Suggested prompts
### New install

```text
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.
```
### Upgrade existing

```text
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.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "langsearch",
    "name": "Langsearch",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/vaibhav1805/langsearch",
    "canonicalUrl": "https://clawhub.ai/vaibhav1805/langsearch",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/langsearch",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=langsearch",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "scripts/web_search_example.py",
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "langsearch",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-04T20:43:57.058Z",
      "expiresAt": "2026-05-11T20:43:57.058Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=langsearch",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=langsearch",
        "contentDisposition": "attachment; filename=\"langsearch-1.0.4.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "langsearch"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/langsearch"
    },
    "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."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/langsearch",
    "downloadUrl": "https://openagent3.xyz/downloads/langsearch",
    "agentUrl": "https://openagent3.xyz/skills/langsearch/agent",
    "manifestUrl": "https://openagent3.xyz/skills/langsearch/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/langsearch/agent.md"
  }
}
```
## Documentation

### ⚠️ Security & Credentials

Required Credentials:

LANGSEARCH_API_KEY - Your free LangSearch API key (required)

Security Best Practices:

Get a free API key - Sign up at langsearch.com/api-keys
Protect your API key - Never commit .env files containing LANGSEARCH_API_KEY to version control
Use environment variables - Store the key in .env or set via export LANGSEARCH_API_KEY="..."
Monitor usage - Check your API usage on the LangSearch dashboard
Code inspection - This tool only uses the official LangSearch API. All communication is via HTTPS to api.langsearch.com

Network Access:

Only connects to: https://api.langsearch.com (official LangSearch API)
No external data collection or telemetry
No tracking or logging sent elsewhere

### Overview

LangSearch provides free APIs for web search and semantic reranking. It combines keyword search precision with vector-based semantic matching, making it ideal for integrating current web information into LLM applications and building RAG systems.

### Prerequisites

Get a free API key at https://langsearch.com/api-keys
Set your API key as an environment variable: export LANGSEARCH_API_KEY="your-api-key"

### Basic Web Search

The simplest way to search the web using LangSearch:

import requests
import json
import os

api_key = os.getenv("LANGSEARCH_API_KEY")
headers = {
    "Authorization": f"Bearer {api_key}",
    "Content-Type": "application/json"
}

query = "latest AI developments 2025"
payload = {
    "query": query,
    "count": 5,
    "summary": True
}

response = requests.post(
    "https://api.langsearch.com/v1/web-search",
    headers=headers,
    json=payload
)

results = response.json()
print(json.dumps(results, indent=2))

Or using cURL:

curl -X POST https://api.langsearch.com/v1/web-search \\
  -H "Authorization: Bearer $LANGSEARCH_API_KEY" \\
  -H "Content-Type: application/json" \\
  -d '{
    "query": "latest AI developments 2025",
    "count": 5,
    "summary": true
  }'

### Web Search API

The web search endpoint retrieves information from billions of web documents using hybrid search (keyword + vector matching) with optional summaries.

### Endpoint

POST https://api.langsearch.com/v1/web-search

### Request Parameters

ParameterTypeRequiredDescriptionquerystringYesThe search querycountintegerNoNumber of results to return (default: 10, max: 100)summarybooleanNoInclude markdown summaries in results (default: false)freshnessstringNoFilter results by freshness (day, week, month, year)

### Response Structure

The API returns an array of search results with:

title - Result title
url - Result URL
snippet - Text excerpt from the page
summary - Markdown formatted summary (if summary: true in request)
score - Relevance score

### Example Use Cases

Current Information Retrieval
When your LLM needs up-to-date information:

# Search for recent developments
response = requests.post(
    "https://api.langsearch.com/v1/web-search",
    headers=headers,
    json={
        "query": "Python 3.14 release notes",
        "count": 3,
        "summary": True,
        "freshness": "week"
    }
)

Multi-Query Research
Build context from multiple searches:

queries = [
    "climate change mitigation strategies",
    "renewable energy trends 2025",
    "carbon capture technology"
]

all_results = []
for query in queries:
    response = requests.post(
        "https://api.langsearch.com/v1/web-search",
        headers=headers,
        json={"query": query, "count": 5, "summary": True}
    )
    all_results.extend(response.json())

### Semantic Reranking API

Improve search accuracy by reranking results based on semantic relevance to your query.

### Endpoint

POST https://api.langsearch.com/v1/rerank

### Request Parameters

ParameterTypeRequiredDescriptionquerystringYesThe search query for contextdocumentsarrayYesArray of documents to rerank (each with title, text, etc.)modelstringNoReranking model (default: langsearch-rerank-1)top_nintegerNoNumber of top results to return (default: 10)return_documentsbooleanNoInclude full documents in response (default: false)

### Example: Reranking Web Search Results

# Get initial search results
search_response = requests.post(
    "https://api.langsearch.com/v1/web-search",
    headers=headers,
    json={"query": "machine learning deployment best practices", "count": 10}
)

search_results = search_response.json()

# Prepare documents for reranking
documents = [
    {"title": r.get("title", ""), "text": r.get("snippet", "")}
    for r in search_results
]

# Rerank for better relevance
rerank_response = requests.post(
    "https://api.langsearch.com/v1/rerank",
    headers=headers,
    json={
        "query": "best practices for deploying ML models in production",
        "documents": documents,
        "top_n": 5
    }
)

reranked = rerank_response.json()

### Building RAG Applications

Combine web search with LLM context for better information retrieval and generation:

def rag_query(user_question):
    # Step 1: Search the web for relevant information
    search_response = requests.post(
        "https://api.langsearch.com/v1/web-search",
        headers=headers,
        json={
            "query": user_question,
            "count": 5,
            "summary": True
        }
    )

    search_results = search_response.json()

    # Step 2: Extract summaries and URLs for context
    context = "\\n".join([
        f"- {r['title']}: {r.get('summary', r.get('snippet', ''))}"
        for r in search_results
    ])

    # Step 3: Use with your LLM
    # This is where you'd call your LLM with the context
    rag_context = f"""
Based on recent web search results:

{context}

Answer the user's question: {user_question}
"""

    return rag_context, search_results

### Error Handling

Common HTTP status codes:

StatusMeaningAction200SuccessResults returned normally401UnauthorizedCheck API key is valid and set correctly429Rate limitedRetry with exponential backoff500Server errorRetry the request later

See scripts/web_search_example.py for a complete example with error handling.

### Resources

This skill includes example resource directories that demonstrate how to organize different types of bundled resources:

### scripts/

Executable code (Python/Bash/etc.) that can be run directly to perform specific operations.

Examples from other skills:

PDF skill: fill_fillable_fields.py, extract_form_field_info.py - utilities for PDF manipulation
DOCX skill: document.py, utilities.py - Python modules for document processing

Appropriate for: Python scripts, shell scripts, or any executable code that performs automation, data processing, or specific operations.

Note: Scripts may be executed without loading into context, but can still be read by Claude for patching or environment adjustments.

### references/

Documentation and reference material intended to be loaded into context to inform Claude's process and thinking.

Examples from other skills:

Product management: communication.md, context_building.md - detailed workflow guides
BigQuery: API reference documentation and query examples
Finance: Schema documentation, company policies

Appropriate for: In-depth documentation, API references, database schemas, comprehensive guides, or any detailed information that Claude should reference while working.

### assets/

Files not intended to be loaded into context, but rather used within the output Claude produces.

Examples from other skills:

Brand styling: PowerPoint template files (.pptx), logo files
Frontend builder: HTML/React boilerplate project directories
Typography: Font files (.ttf, .woff2)

Appropriate for: Templates, boilerplate code, document templates, images, icons, fonts, or any files meant to be copied or used in the final output.

Any unneeded directories can be deleted. Not every skill requires all three types of resources.
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: vaibhav1805
- Version: 1.0.4
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-04T20:43:57.058Z
- Expires at: 2026-05-11T20:43:57.058Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/langsearch)
- [Send to Agent page](https://openagent3.xyz/skills/langsearch/agent)
- [JSON manifest](https://openagent3.xyz/skills/langsearch/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/langsearch/agent.md)
- [Download page](https://openagent3.xyz/downloads/langsearch)