← 返回 Skills 市场
eplt

Local Deep Research

作者 Edward Tsang · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ✓ 安全检测通过
297
总下载
0
收藏
1
当前安装
3
版本数
在 OpenClaw 中安装
/install local-deep-research
功能描述
Performs multi-cycle, iterative deep research on complex topics using a local LDR service, providing detailed reports with citations and source tracking.
使用说明 (SKILL.md)

Local Deep Research Skill

This skill interfaces with a locally-hosted LDR (Local Deep Research) service to perform multi-cycle, iterative research with full citations and source tracking.

What to consider before installing

  • LDR service: The script talks only to the URL in LDR_BASE_URL (default http://127.0.0.1:5000). Only point it at an LDR instance you control. Do not set it to an unknown or untrusted remote host.
  • Required binaries: Ensure curl and jq are installed on the host where the skill runs.
  • Credentials: If your LDR instance requires login, set LDR_SERVICE_USER and LDR_SERVICE_PASSWORD (or LDR_USERNAME/LDR_PASSWORD) via environment variables or a local .env file only. Use a dedicated, low-privilege LDR account (e.g. openclaw_service). Do not store secrets in committed config or in the skill directory.
  • Sourced .env: The script optionally sources ~/.config/local_deep_research/config/.env if that file exists. That file may expose any variables it contains to the script. Verify the contents of that path before use; do not place unrelated secrets there.
  • Review the script: The script performs form-based session+CSRF login and uses an ephemeral cookie jar. It does not send data to any endpoint other than the configured LDR service. You can review scripts/ldr-research.sh before use. For higher assurance, run it in an isolated environment (e.g. container or VM) with network restricted to your LDR host.

Configuration

Credentials (local-only, never transmitted)

LDR uses session-cookie auth with CSRF protection (not HTTP Basic Auth). The skill script performs a proper login flow: GET login page → obtain session cookie and CSRF token → POST credentials + CSRF → reuse session cookie (and CSRF for POSTs) for all API calls. Username and password are used only to create a session with your local LDR instance; they are never sent to ClawHub, GitHub, or any other server.

Do not put credentials in skill config or committed files. Use environment variables or a local .env file only (e.g. LDR_SERVICE_USER, LDR_SERVICE_PASSWORD, or LDR_USERNAME/LDR_PASSWORD). Optional: LDR’s ~/.config/local_deep_research/config/.env is sourced by the script if present. Use a dedicated LDR user (e.g. openclaw_service) for this skill.

All configuration options

  • LDR_BASE_URL — LDR service URL (default: http://127.0.0.1:5000)
  • LDR_LOGIN_URL — Login page URL for session + CSRF (default: $LDR_BASE_URL/auth/login)
  • LDR_SERVICE_USER or LDR_USERNAME — LDR account username (local auth only)
  • LDR_SERVICE_PASSWORD or LDR_PASSWORD — LDR account password (local auth only)
  • LDR_DEFAULT_MODE — Default research mode: quick (Quick Summary) or detailed (Detailed Report) (default: detailed)
  • LDR_DEFAULT_LANGUAGE — Default output language code for report/summary (e.g. en, es, fr, de, zh, ja); empty = LDR default
  • LDR_DEFAULT_SEARCH_TOOL — Default search tool: searxng, auto, local_all (default: auto)

Research modes (Quick Summary vs Detailed Report)

  • quickQuick Summary: fewer cycles, shorter output, faster. Use when the user wants a concise summary or a quick overview.
  • detailedDetailed Report: full multi-cycle research, full markdown report, full citations and sources. Use when the user wants comprehensive analysis, literature review, or in-depth coverage.

Actions

start_research

Fire-and-forget: submit a query to LDR and return a research ID immediately.

Inputs:

  • query (required) — The research question or topic
  • mode (optional) — quick (Quick Summary) or detailed (Detailed Report) (default from config)
  • language (optional) — Output language for the report/summary, e.g. en, es, fr, de, zh, ja (default from config or LDR default)
  • search_tool (optional) — searxng, auto, local_all (default from config)
  • iterations (optional) — Number of research cycles (default: LDR's default)
  • questions_per_iteration (optional) — Questions to generate per cycle

Returns:

{
  "research_id": "uuid-string",
  "mode": "detailed",
  "search_tool": "auto",
  "submitted_at": "2026-03-10T08:00:00Z",
  "status": "queued"
}

Usage:

# Quick Summary (faster, shorter)
scripts/ldr-research.sh start_research --query "Solid-state battery advances" --mode quick

# Detailed Report with output in Spanish
scripts/ldr-research.sh start_research \
  --query "What are the latest developments in solid-state batteries?" \
  --mode detailed \
  --language es \
  --search_tool searxng

get_status

Check the status of a research job.

Inputs:

  • research_id (required) — The research job ID from start_research

Returns:

{
  "research_id": "uuid-string",
  "state": "pending|running|completed|failed|timeout",
  "progress": 45,
  "message": "Synthesizing sources from iteration 2...",
  "last_milestone": "Generated 12 questions from 8 sources"
}

Usage:

scripts/ldr-research.sh get_status --research_id \x3Cuuid>

get_result

Fetch the complete research report once finished.

Inputs:

  • research_id (required) — The research job ID

Returns:

{
  "research_id": "uuid-string",
  "query": "original query",
  "mode": "detailed",
  "summary": "executive summary text",
  "report_markdown": "full markdown report",
  "sources": [
    {
      "id": 1,
      "title": "Source Title",
      "url": "https://example.com",
      "snippet": "relevant excerpt",
      "type": "web|local_doc"
    }
  ],
  "iterations": 3,
  "created_at": "2026-03-10T08:00:00Z",
  "completed_at": "2026-03-10T08:15:00Z"
}

Usage:

scripts/ldr-research.sh get_result --research_id \x3Cuuid>

Orchestration Pattern

One-shot (wait for completion)

For interactive sessions where the user can wait:

  1. Call start_research
  2. Poll get_status every 10-30 seconds
  3. When state == "completed", call get_result
  4. Present the report to the user

Async (fire-and-forget with follow-up)

For background processing:

  1. Call start_research, return the research_id to the user
  2. User can check status later with get_status --research_id \x3Cid>
  3. When ready, call get_result to fetch the complete report

Chained workflows

After research completes:

  1. Call get_result to get sources
  2. Pass sources to other skills (e.g., markdown-converter, summarize)
  3. Build RAG indexes or knowledge bases from the sources

Error Handling

start_research failures

  • HTTP/network errors — Retry with exponential backoff (3 attempts)
  • LDR validation errors — Return error to user (bad query, invalid params)
  • Auth failures — Check credentials, return clear error

get_status / get_result failures

  • Temporarily unavailable — Retry 2-3 times before surfacing error
  • Research not found — Return "unknown research_id" error
  • Timeout — Return state with timeout reason

Timeouts

  • Per HTTP request — 30-60 seconds (configurable)
  • Total research duration — No client-side limit (LDR manages this)
  • Status polling interval — 10-30 seconds recommended

Example Session

User: "Research the latest developments in quantum computing"

Assistant: Starting deep research with LDR...
→ start_research(query="latest developments in quantum computing", mode="detailed")
→ Returns: research_id="abc-123", status="queued"

Assistant: Research started (ID: abc-123). This will take ~5-10 minutes.
I'll check the progress and let you know when it's complete.

[After polling...]

Assistant: Research complete! Here's what I found:

## Summary
[summary from get_result]

## Full Report
[report_markdown from get_result]

## Sources (12 found)
1. [Source 1 title](url)
2. [Source 2 title](url)
...

Related Skills

  • academic-deep-research — Alternative for academic-focused research with APA 7th citations
  • deep-research-pro — Web-based deep research (no local LDR required)
  • tavily / searxng — Simple web search for quick lookups
  • summarize — Process LDR output for additional summarization

Troubleshooting

LDR service not responding

  1. Check LDR_BASE_URL is correct
  2. Verify LDR service is running: curl http://127.0.0.1:5000/health
  3. Check LDR logs for errors

Authentication failures

  1. Ensure credentials are set via env or local .env only (e.g. LDR_SERVICE_USER, LDR_SERVICE_PASSWORD), not in committed config.
  2. LDR uses session + CSRF (not Basic Auth). The script GETs the login page, extracts the CSRF token, then POSTs the login form. If LDR uses a different login path or field names, set LDR_LOGIN_URL or see the script’s login section.
  3. Test: run the script with credentials set and check for "Login successful"; or open LDR_LOGIN_URL in a browser and sign in there to verify LDR is up.

Research stuck in "running" state

  1. Check LDR service health
  2. Review LDR logs for stuck jobs
  3. Consider timeout and restart if >30 minutes with no progress
安全使用建议
This skill appears coherent and implements only the local interactions it claims. Before installing: ensure LDR_BASE_URL points to a service you control (localhost or a trusted host), use a dedicated low-privilege LDR account for LDR_SERVICE_USER/LDR_SERVICE_PASSWORD, and verify the contents of ~/.config/local_deep_research/config/.env (or any .env you use) so it does not contain unrelated secrets. Review scripts/ldr-research.sh yourself if you're unsure, and consider running the skill in a container or VM with network access limited to your LDR host. Note: registry metadata lacked a homepage but SKILL.md references a GitHub repo; this is a minor metadata inconsistency to be aware of.
功能分析
Type: OpenClaw Skill Name: local-deep-research Version: 1.0.2 The skill provides a CLI interface for a locally-hosted research service (LDR). The primary script, scripts/ldr-research.sh, implements a standard session-based authentication flow involving CSRF tokens and cookie management to interact with the user-configured LDR_BASE_URL. While the script sources a local configuration file (~/.config/local_deep_research/config/.env) and handles credentials, the documentation (README.md and SKILL.md) provides clear warnings against pointing the service to untrusted remote hosts and emphasizes local-only credential usage. The code logic is transparent, lacks obfuscation, and is strictly aligned with the stated purpose of performing iterative research.
能力评估
Purpose & Capability
The name/description (local multi-cycle research via an LDR service) matches the required items: curl/jq and LDR-specific env vars (LDR_BASE_URL, username/password). No unrelated credentials, binaries, or weird installs are requested. The presence of a script to call a local API is appropriate for this purpose.
Instruction Scope
SKILL.md and the script limit network I/O to the configured LDR_BASE_URL (default localhost) and describe a session+CSRF login flow; that is within scope. However, the script will optionally source ~/.config/local_deep_research/config/.env if that file exists, which can expose any variables placed there to the skill process; SKILL.md warns about this but sourcing is automatic when present and may surprise less technical users.
Install Mechanism
There is no install spec (instruction-only skill) and included code is a small shell script; nothing is downloaded from external URLs or installed automatically. This is low-risk from an install mechanism perspective.
Credentials
Requested env vars (LDR_BASE_URL and credentials) are proportional to the stated task. The script accepts multiple fallback variable names and will load a local .env; that flexibility is useful but increases the chance of unintentionally exposing other local secrets if the .env contains unrelated variables.
Persistence & Privilege
The skill is not always-enabled and does not request system-wide changes or modify other skills. It creates a temporary cookie jar and cleans it up on exit. Autonomous invocation is allowed (normal default) but not combined with elevated privileges.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install local-deep-research
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /local-deep-research 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.2
- Added pre-installation considerations highlighting security, binary, and environment variable requirements. - Updated metadata to explicitly list required environment variables (`LDR_BASE_URL`, `LDR_SERVICE_USER`, `LDR_SERVICE_PASSWORD`). - Clarified sourcing of `.env` file and potential exposure of its contents. - Improved installation and configuration guidance for increased transparency and safer operation. - No logic or behavioral changes to actions or APIs.
v1.0.1
## local-deep-research 1.0.1 - Added sample environment configuration file: `env.example` - Expanded SKILL.md skill triggers list and metadata section - No breaking changes to functionality or interfaces
v1.0.0
- Initial release of the local-deep-research skill, enabling multi-cycle deep research via a locally-hosted LDR (Local Deep Research) service. - Supports comprehensive research actions: start, status polling, and retrieval of detailed reports with full citations. - Offers both quick and detailed research modes, with configurable language and search tools. - Secure, local-only authentication using session-cookie and CSRF-protected login flow; credentials never transmitted externally. - Clear orchestration guidance for synchronous and asynchronous workflows, plus robust error handling and troubleshooting documentation.
元数据
Slug local-deep-research
版本 1.0.2
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 3
常见问题

Local Deep Research 是什么?

Performs multi-cycle, iterative deep research on complex topics using a local LDR service, providing detailed reports with citations and source tracking. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 297 次。

如何安装 Local Deep Research?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install local-deep-research」即可一键安装,无需额外配置。

Local Deep Research 是免费的吗?

是的,Local Deep Research 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Local Deep Research 支持哪些平台?

Local Deep Research 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Local Deep Research?

由 Edward Tsang(@eplt)开发并维护,当前版本 v1.0.2。

💬 留言讨论