ZeeLin Deep Research 深度研究

ZeeLin Deep Research 深度研究是一款 AI 驱动的专业研究辅助平台,支持一句话生成与多步骤生成,提供深度、专家两大研究路径。从快速信息梳理、系统分析到超万字专家报告全流程覆盖,依托多轮推理与多源数据整合,高效完成企业分析、市场洞察、招商研究等复杂任务,一站式提升研究效率与决策质量。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ZeeLin Deep Research 深度研究" with this command: npx skills add zhushanwei/desearch

ZeeLin Deep Research 深度研究

ZeeLin Deep Research 深度研究是一款 AI 驱动的专业研究辅助平台,支持一句话生成与多步骤生成,提供深度、专家两大研究路径。从快速信息梳理、系统分析到超万字专家报告全流程覆盖,依托多轮推理与多源数据整合,高效完成企业分析、市场洞察、招商研究等复杂任务,一站式提升研究效率与决策质量。

没有 API Key 怎么办?

如果用户没有提供 api_key,提示用户前往 https://desearch.zeelin.cn/skill-activity 进行免费注册或登录,获取点数及 api_key

API 基础信息

  • Base URL: https://desearch.zeelin.cn
  • 认证方式: Header x-api-key
  • 接口: POST /api/conversation/anew

thinking 参数

  • deep - 深度思考模式 - 需要全面分析但不需要万字报告
  • major - 专家模式 - 需要深度系统性输出、万字报告

模式选择指南

使用深度模式 (deep) 的场景

  • 概念解释/知识梳理 — "什么是 XXX"、"XXX 的原理是什么"
  • 事件/趋势分析 — 某个热点事件的来龙去脉、发展趋势
  • 信息聚合 — 围绕某个话题汇总多方信息和观点
  • 快速调研 — 用户没有明确要求深度报告的一般性研究问题

使用专家模式 (major) 的场景

  • 行业/市场分析 — 涉及特定行业的全景分析、市场格局、竞争态势
  • 企业/公司研究 — 某个企业的财务分析、战略评估、业务拆解
  • 政策/法规研究 — 需要系统梳理政策影响、合规要求
  • 技术/产品深度对比 — 多维度的技术路线对比、产品竞品分析
  • 投资/商业决策 — 需要数据支撑的投资分析、可行性评估

如果不确定使用哪种模式:可以询问用户确认

使用示例

深度思考模式

API_KEY="${DESEARCH_API_KEY}"
curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ${API_KEY}" \
  -d '{
    "sessionId": "",
    "content": "你的问题",
    "thinking": "deep",
    "workflow": "",
    "needEditChapter": 0,
    "moreSettings": {}
  }'

专家模式

API_KEY="${DESEARCH_API_KEY}"
curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ${API_KEY}" \
  -d '{
    "sessionId": "",
    "content": "你的问题",
    "thinking": "major",
    "workflow": "",
    "needEditChapter": 0,
    "moreSettings": {}
  }'

多轮对话

第一轮返回的 sessionId 可以用于后续对话:

API_KEY="${DESEARCH_API_KEY}"
curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ${API_KEY}" \
  -d '{
    "sessionId": "上一轮的sessionId",
    "content": "追问内容",
    "thinking": "deep",
    "workflow": "",
    "moreSettings": {}
  }'

快速调用

用户 API key 从环境变量 DESEARCH_API_KEY 读取。

设置方式:

export DESEARCH_API_KEY="你的API Key"

深度模式调用示例

API_KEY="${DESEARCH_API_KEY}"
curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ${API_KEY}" \
  -d '{
    "sessionId": "",
    "content": "调研一下汽车产业规模",
    "thinking": "deep",
    "workflow": "",
    "moreSettings": {}
  }'

注意事项

  • sessionId 为空时创建新对话
  • thinking 参数决定推理深度
  • API 返回 JSON,包含回答内容

查询任务状态

任务提交后,需要轮询查询状态:

API_KEY="${DESEARCH_API_KEY}"
curl -s -X GET "https://desearch.zeelin.cn/api/conversation/status?sessionId={sessionId}" \
  -H "x-api-key: ${API_KEY}"

返回示例:

{
    "code": 200,
    "v": "v1.5.0",
    "msg": "成功",
    "data": {
        "status": 2,
        "thinking": "deep",
        "workflow": "",
        "message": "会话已生成",
        "content": "调研一下汽车产业规模",
        "time": "",
        "thinkingWorkflowName": "深度模式",
        "pptUrl": "",
        "wavUrl": "",
        "mdxUrl": "",
        "mdUrl": "",
        "htmlUrl": "",
        "wavScriptUrl": "",
        "isShare": 0,
        "isMine": 0,
        "title": "调研一下汽车产业规模",
        "short": "jVICQSS5",
        "questionId": 281697,
        "sessionId": "b9162dfdefa74461a764aebe51366d87",
        "useKnowledge": 0,
        "onlyKnowledge": 0,
        "searchRange": "web"
    }
}

状态码说明:

  • 1 = 进行中
  • 2 = 正常结束 ✅
  • 3 = 用户主动结束
  • 4 = 失败
  • 5 = 排队中

完整任务流程

  1. 创建任务 → POST /api/conversation/anew 获取 sessionId
  2. 轮询状态 → 每隔一段时间调用 /api/conversation/status?sessionId={id} 检查状态
  3. 状态 = 2 → 任务完成
  4. 获取 PDF 报告 → 调用 /api/conversation/to_report?sessionId={id}&reportType=pdf 获取 PDF 下载链接
  5. 下载 PDF → 从 data 字段获取 URL,下载 PDF 文件到本地
  6. 发送消息 → 使用 message 工具发送 PDF 文件到用户

错误处理

接口调用超限错误 (code=315)

当 API 返回 code=315 且 msg 包含"当前接口调用已超限"时,表示当前并发任务数已达到上限(max_limit_conversation),需要等待当前任务执行完成后再提交新任务:

# 检查返回码
RESULT=$(curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ${API_KEY}" \
  -d '{
    "sessionId": "",
    "content": "你的问题",
    "thinking": "deep",
    "workflow": "",
    "needEditChapter": 0,
    "moreSettings": {}
  }')

CODE=$(echo $RESULT | jq -r '.code')
MSG=$(echo $RESULT | jq -r '.msg')

if [ "$CODE" = "315" ] && echo "$MSG" | grep -q "当前接口调用已超限"; then
  # 发送提示给用户,等待当前任务完成
  message action=send target=用户ID message="⚠️ 当前接口调用已超限,请等待当前任务执行完成后再提交新任务。"
  exit 1
fi

返回示例:

{
  "code": 315,
  "v": "0.0.914",
  "msg": "当前接口调用已超限,请联系我们",
  "data": {
    "max_limit_conversation": 1,
    "now_conversation": 1
  }
}

试用超限错误 (code=315)

当 API 返回 code=315 且 msg 包含"试用已超限"时,需要引导用户充值:

# 检查返回码
RESULT=$(curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ${API_KEY}" \
  -d '{
    "sessionId": "",
    "content": "你的问题",
    "thinking": "deep",
    "workflow": "",
    "needEditChapter": 0,
    "moreSettings": {}
  }')

CODE=$(echo $RESULT | jq -r '.code')
MSG=$(echo $RESULT | jq -r '.msg')

if [ "$CODE" = "315" ] && echo "$MSG" | grep -q "试用已超限"; then
  # 发送充值提示给用户
  message action=send target=用户ID message="⚠️ 您的点数已超限,无法继续使用。请前往充值页面购买点数:https://desearch.zeelin.cn/skill-activity"
  exit 1
fi

充值地址: https://desearch.zeelin.cn/skill-activity

完整流程示例

# 1. 创建任务
API_KEY="${DESEARCH_API_KEY}"
RESULT=$(curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ${API_KEY}" \
  -d '{
    "sessionId": "",
    "content": "你的问题",
    "thinking": "deep",
    "workflow": "",
    "needEditChapter": 0,
    "moreSettings": {}
  }')

SESSION_ID=$(echo $RESULT | jq -r '.data.sessionId')
QUESTION_ID=$(echo $RESULT | jq -r '.data.id')

echo "Session ID: $SESSION_ID, Question ID: $QUESTION_ID"

# 2. 轮询状态直到完成
while true; do
  STATUS=$(curl -s -X GET "https://desearch.zeelin.cn/api/conversation/status?sessionId=${SESSION_ID}" \
    -H "x-api-key: ${API_KEY}" | jq -r '.data.status')
  
  if [ "$STATUS" = "2" ]; then
    echo "任务完成"
    break
  fi
  echo "状态: $STATUS, 等待中..."
  sleep 60  # 每分钟检查一次
done

# 3. 获取 PDF 报告链接
REPORT_RESULT=$(curl -s -X GET "https://desearch.zeelin.cn/api/conversation/to_report?sessionId=${SESSION_ID}&reportType=pdf" \
  -H "x-api-key: ${API_KEY}")

PDF_URL=$(echo $REPORT_RESULT | jq -r '.data')
echo "PDF URL: $PDF_URL"

# 4. 下载 PDF 文件
curl -s -o /tmp/research_result.pdf "$PDF_URL"

# 5. 发送 PDF 文件给用户
message action=send target=用户ID filePath=/tmp/research_result.pdf

实际调用命令(执行时替换对应变量)

# 1. 创建任务
API_KEY="${DESEARCH_API_KEY}"
curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ${API_KEY}" \
  -d '{
    "sessionId": "",
    "content": "你的问题",
    "thinking": "deep",
    "workflow": "",
    "needEditChapter": 0,
    "moreSettings": {}
  }'

轮询状态脚本

# 轮询直到任务完成 (status = 2)
API_KEY="${DESEARCH_API_KEY}"
SESSION_ID="替换为实际的sessionId"

while true; do
  STATUS_RESPONSE=$(curl -s -X GET "https://desearch.zeelin.cn/api/conversation/status?sessionId=${SESSION_ID}" \
    -H "x-api-key: ${API_KEY}")
  
  STATUS=$(echo $STATUS_RESPONSE | jq -r '.data.status')
  echo "当前状态: $STATUS"
  
  if [ "$STATUS" = "2" ]; then
    echo "任务完成!"
    break
  fi
  
  sleep 60  # 每分钟检查一次
done

# 获取 PDF 报告链接
REPORT_RESULT=$(curl -s -X GET "https://desearch.zeelin.cn/api/conversation/to_report?sessionId=${SESSION_ID}&reportType=pdf" \
  -H "x-api-key: ${API_KEY}")

PDF_URL=$(echo $REPORT_RESULT | jq -r '.data')

# 下载 PDF 文件
curl -s -o /tmp/research_result.pdf "$PDF_URL"

# 发送 PDF 文件给用户
message action=send target=用户ID filePath=/tmp/research_result.pdf

⚠️ 重要:必须保存文件再发送

❌ 禁止直接发送文字内容给用户 ✅ 必须:获取 PDF 链接 → 下载 PDF 文件 → 发送 PDF 文件给用户

正确流程示例(飞书文档)

# 1. 创建任务
API_KEY="${DESEARCH_API_KEY}"
RESULT=$(curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ${API_KEY}" \
  -d '{
    "sessionId": "",
    "content": "用户的问题",
    "thinking": "deep",
    "workflow": "",
    "needEditChapter": 0,
    "moreSettings": {}
  }')

SESSION_ID=$(echo $RESULT | jq -r '.data.sessionId')

# 2. 轮询状态直到完成 (status=2)
while true; do
  STATUS=$(curl -s "https://desearch.zeelin.cn/api/conversation/status?sessionId=${SESSION_ID}" \
    -H "x-api-key: ${API_KEY}" | jq -r '.data.status')
  [ "$STATUS" = "2" ] && break
  sleep 30
done

# 3. 获取 PDF 报告链接
REPORT_RESULT=$(curl -s -X GET "https://desearch.zeelin.cn/api/conversation/to_report?sessionId=${SESSION_ID}&reportType=pdf" \
  -H "x-api-key: ${API_KEY}")

PDF_URL=$(echo $REPORT_RESULT | jq -r '.data')

# 4. 下载 PDF 文件
curl -s -o /tmp/research_result.pdf "$PDF_URL"

# 5. 发送 PDF 文件给用户
message action=send target=用户ID filePath=/tmp/research_result.pdf

关键点

  • 任务完成后调用 /api/conversation/to_report?sessionId={id}&reportType=pdf 获取 PDF 下载链接
  • 从返回的 data 字段提取 PDF URL
  • 使用 curl 下载 PDF 文件到本地
  • 直接发送 PDF 文件给用户

后台执行与自动发送

确保任务完成后自动发送 PDF 的关键:

  1. 使用足够长的 timeout:设置 timeout=1200 或更长,确保 exec 命令等待任务完成
  2. 轮询循环内检查状态
    while true; do
      STATUS=$(curl -s "https://desearch.zeelin.cn/api/conversation/status?sessionId=${SESSION_ID}" \
        -H "x-api-key: ${API_KEY}" | jq -r '.data.status')
      [ "$STATUS" = "2" ] && break  # 任务完成后跳出循环
      [ "$STATUS" = "4" ] && exit 1 # 任务失败则退出
      sleep 30
    done
    
  3. 任务完成后立即发送:在轮询循环结束后,立即调用 message 工具发送 PDF
    # 下载 PDF 后立即发送
    curl -s -o /tmp/research_result.pdf "$PDF_URL"
    message action=send target=用户ID filePath=/tmp/research_result.pdf
    

❌ 错误做法:轮询后不等待结果就退出,或超时时间太短导致任务未完成就退出

✅ 正确做法:使用 while 循环 + 足够长的 timeout,任务完成后立即发送 PDF

后台执行(用户可同时做其他事情)

当用户希望任务在后台运行、同时可以让你执行其他任务时,使用 OpenClaw 的后台执行功能:

方式一:使用 background=true 参数

exec command="..." background=true timeout=1200

这样命令会在后台运行,不会阻塞当前会话,你可以继续给其他命令。

方式二:使用 exec + yieldMs 参数

exec command="..." yieldMs=10000

设置 yieldMs 让出控制权,命令在后台继续运行。

方式三:使用 process 工具管理后台任务

  1. 先启动后台任务:

    exec command="完整的轮询+发送脚本" timeout=1200
    
  2. 使用 process(action=poll) 轮询结果:

    process action=poll sessionId=<session_id> timeout=600000
    

后台任务完整示例:

# 1. 创建任务(立即返回)
API_KEY="${DESEARCH_API_KEY}"
RESULT=$(curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ${API_KEY}" \
  -d '{
    "sessionId": "",
    "content": "用户的研究问题",
    "thinking": "deep",
    "workflow": "",
    "needEditChapter": 0,
    "moreSettings": {}
  }')

SESSION_ID=$(echo "$RESULT" | jq -r '.data.sessionId')
echo "任务已创建: $SESSION_ID"

# 2. 后台轮询 + 下载 + 发送(设置长timeout)
exec command="
  SESSION_ID='$SESSION_ID'
  API_KEY='$API_KEY'
  
  # 轮询直到完成
  while true; do
    STATUS=\$(curl -s 'https://desearch.zeelin.cn/api/conversation/status?sessionId=\${SESSION_ID}' \\
      -H 'x-api-key: \${API_KEY}' | jq -r '.data.status')
    [ \"\$STATUS\" = \"2\" ] && break
    [ \"\$STATUS\" = \"4\" ] && exit 1
    sleep 30
  done
  
  # 获取并下载PDF
  PDF_URL=\$(curl -s 'https://desearch.zeelin.cn/api/conversation/to_report?sessionId=\${SESSION_ID}&reportType=pdf' \\
    -H 'x-api-key: \${API_KEY}' | jq -r '.data')
  curl -s -o /tmp/report.pdf \"\$PDF_URL\"
  
  # 发送PDF(替换为目标用户ID)
  message action=send target=用户ID filePath=/tmp/report.pdf
" timeout=1200

用户可以:

  • 随时查询任务状态
  • 在后台任务运行期间执行其他命令
  • 任务完成后自动收到 PDF

⚠️ 跨渠道发送文件注意事项

不同渠道的文件限制

渠道文件大小限制
钉钉20MB
飞书20MB
Telegram50MB
Discord8MB
WhatsApp16MB

⚠️ 飞书渠道:必须创建飞书文档发送

当用户渠道为飞书时,禁止直接发送 PDF 文件给用户,必须按以下流程操作:

飞书渠道完整流程

# 1. 创建任务
API_KEY="${DESEARCH_API_KEY}"
RESULT=$(curl -s -X POST "https://desearch.zeelin.cn/api/conversation/anew" \
  -H "Content-Type: application/json" \
  -H "x-api-key: ${API_KEY}" \
  -d '{
    "sessionId": "",
    "content": "用户的问题",
    "thinking": "deep",
    "workflow": "",
    "needEditChapter": 0,
    "moreSettings": {}
  }')

SESSION_ID=$(echo $RESULT | jq -r '.data.sessionId')
TITLE=$(echo $RESULT | jq -r '.data.title')

# 2. 轮询状态直到完成 (status=2)
while true; do
  STATUS=$(curl -s "https://desearch.zeelin.cn/api/conversation/status?sessionId=${SESSION_ID}" \
    -H "x-api-key: ${API_KEY}" | jq -r '.data.status')
  [ "$STATUS" = "2" ] && break
  sleep 30
done

# 3. 获取 Word 报告链接(Word 格式更容易提取文字内容)
REPORT_RESULT=$(curl -s -X GET "https://desearch.zeelin.cn/api/conversation/to_report?sessionId=${SESSION_ID}&reportType=word" \
  -H "x-api-key: ${API_KEY}")

WORD_URL=$(echo $REPORT_RESULT | jq -r '.data')

# 4. 下载 Word 文件
curl -s -o /tmp/research.docx "$WORD_URL"

# 5. 解压 Word 文件提取文字内容
unzip -q /tmp/research.docx -d /tmp/research_docx/
sed 's/<[^>]*>//g' /tmp/research_docx/word/document.xml | tr -s ' \n' > /tmp/research.txt

# 6. 创建飞书文档
DOC_RESULT=$(feishu_doc action=create title="调研报告:${TITLE}")

DOC_TOKEN=$(echo $DOC_RESULT | jq -r '.document_id')
DOC_URL=$(echo $DOC_RESULT | jq -r '.url')

# 7. 写入内容到飞书文档
feishu_doc action=write doc_token=${DOC_TOKEN} content=$(cat /tmp/research.txt)

# 8. 发送文档链接给用户
message action=send target=用户ID message="📄 调研报告已生成:${DOC_URL}"

飞书渠道检查清单

  • 渠道是飞书吗?
  • 是否已创建飞书文档?
  • 是否已将报告内容写入飞书文档?
  • 是否发送的是飞书文档链接而非 PDF?

飞书渠道 ❌ 禁止事项

  • ❌ 直接发送 PDF 文件(用户打不开)
  • ❌ 直接发送本地文件路径
  • ❌ 发送服务器目录

飞书渠道 ✅ 正确做法

  • ✅ 创建飞书文档 (feishu_doc action=create)
  • ✅ 写入内容 (feishu_doc action=write)
  • ✅ 发送文档链接 (message action=send 附带 URL)

确保发送成功的检查

# 检查文件是否存在且非空
if [ -f /tmp/research.md ] && [ -s /tmp/research.md ]; then
  # 发送文件
  message action=send target=用户ID filePath=/tmp/research.md
else
  echo "文件无效或为空"
fi

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Research

Arxiv Reader

Read and analyze arXiv papers by fetching LaTeX source, listing sections, or extracting abstracts

Registry SourceRecently Updated
Research

Competitive Intel Agent

Competitor monitoring, pricing analysis, market positioning, and SWOT generation. Use when you need to track competitor moves, benchmark pricing, analyze mar...

Registry SourceRecently Updated
Research

First-Principles-Deconstructor

Analyzes products by stripping marketing jargon to identify their fundamental physical laws, constraints, and optimal efficient designs from first principles.

Registry SourceRecently Updated