用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/TashanGKD/tashan-research-skills --skill sci-employee-deep-research命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | sci-employee-deep-research |
| description | 调用或模拟 Deep Research 流程,把论文检索、关键词拆解、候选证据和最终 answer 组织成可核验研究报告。适用于赛题讲解、开题调研、方案依据整理。 |
用户已经有研究问题,需要形成一份有结构、有引用、有证据边界的研究报告时使用。
不要直接替代论文检索。先用 paper-search 找候选或确认检索口径,再进入 Deep Research。
Deep Research 接口:
POST http://123.56.218.60:18000/api/research/ask
请求体核心字段:
{
"prompt": "研究主题或问题",
"model": "qwen-deep-research",
"keyword_model": "qwen-plus",
"page_num": 1,
"page_size": 5,
"endpoint_names": [
"searchArticlesByQuery1",
"searchArxivByTitle",
"searchArxivByAbstract",
"searchArxivByArxivNo1",
"searchArxiv"
],
"include_raw": false
}
响应是 text/event-stream。必须持续消费事件并拼接最终报告,不能在后端等完整 done 后一次性返回。
Deep Research 接口本身会中途返回 SSE。调用层必须把这些事件实时透出给用户,至少展示阶段、关键词、检索汇总、references 和 answer 生成片段。
推荐使用 scripts/stream_deep_research.py 消费 SSE 并输出 JSONL:
python scripts/stream_deep_research.py `
--prompt "large language models for scientific discovery survey"
每一行都是一个进度事件,可由服务端转成 SSE 或 WebSocket 消息:
| JSONL 事件 | 来源 SSE | 用户侧含义 |
|---|---|---|
stream_started | 本地包装器 | 请求已开始 |
phase | phase | 进入关键词规划、私有检索、写作等阶段 |
keywords_ready | keywords | 关键词已生成 |
private_search_hit | private_search_hit | 某个检索接口有命中或失败 |
private_search_summary | private_search_summary | 检索总命中、失败接口已汇总 |
references_ready | references | 候选 references 已可提前展示 |
answer_delta | delta | answer 正在生成,可逐步展示 |
done | done | 服务端完成 |
usage | usage | token/用量信息 |
stream_final | 本地包装器 | 本次流结束,给出 answer_status |
如果 30-45 秒内已收到 references_ready 但没收到 done,不要丢弃结果。UI 应展示 references,并把状态标为 incomplete 或“answer 生成中/未完成”。
做可用性探针或首屏体验测试时,可加 --max-events 8,让脚本在已有阶段/检索命中后优雅输出 stream_interrupted 和 stream_final,而不是等最终长答案。
如果通过 Nginx 或其他网关转发 SSE,必须关闭响应缓冲:
proxy_buffering off;
后端响应头建议包含:
Content-Type: text/event-stream
Cache-Control: no-cache
X-Accel-Buffering: no
2026-06-10 测试结果:
GET /health 返回 HTTP 200,ok: true。qwen-deep-research 和 qwen-deep-research-2025-12-15。POST /api/research/ask 能返回 SSE。KeywordPlanning、PrivateSearch、references、answer、done。totalResults=82,解析到 50 条 references,并开始生成 answer;但 45 秒限制内未等到 done,标为 references 已返回,answer 未完成。totalResults=31,解析到 31 条 references,并开始生成 answer;35 秒限制内未等到 done,标为 incomplete。更聚焦的问题减少了混杂,但摘要检索仍会引入弱相关论文。scripts/parse_deep_research_sse.py,可从 SSE 文本日志提取关键词、检索命中、references 数、answer 状态和前 10 条 references。scripts/stream_deep_research.py,可实时转发 SSE 事件为 JSONL,避免调用层等最终 answer。硬规则:
如果
references为空或private_search_summary.totalResults=0,不能把结果标为“研究报告”。只能标为“问题澄清”“检索失败记录”或“无证据初稿”。
如果 references 已返回但没有
done,不能丢弃结果。标为“answer 未完成”,保留 references、已生成片段和下一步继续等待/缩短问题/收窄候选。
paper-search 给出的候选论文交接合同;没有候选时,先收窄关键词再调用接口。KeywordPlanningPrivateSearchResearchPlanningWebResearchanswerKeepAliveDeep Research 接收的理想输入不是一句宽泛问题,而是 paper-search 交来的候选包:
{
"research_question": "需要回答的问题",
"candidate_papers": [],
"exclude": [],
"questions_to_answer": []
}
输出时必须补回:
{
"references_count": 0,
"answer_status": "complete/incomplete/clarification/no-evidence",
"evidence_used": [],
"claims_need_fulltext_check": [],
"retrieval_limits": []
}
研究问题:
边界:
关键词:
证据来源:
主要结论:
分论点:
引用与证据:
争议或不足:
可实操路线:
还需要核验:
paper-search 换词或扩源。searchArticlesByQuery1 返回 400:记录 endpoint、关键词和错误;不要重试刷接口,改用更短关键词或 arXiv/OpenAlex 回退。paper-search 做候选过滤,不要让 answer 引用不贴题论文。done:保留 references 和已生成片段,标为 incomplete,不要当最终报告。answer_status=incomplete 时,先展示已返回 references 和 answer 片段,并把用户动作设为继续等待、收窄问题或回到候选论文过滤;不要让用户长时间只看到加载中。健康检查:
请求主题:
请求字段:
观察到的 SSE 阶段:
关键词:
检索命中数:
失败 endpoint:
references 数量:
answer 类型:研究报告 / 澄清问题 / 无证据初稿
下一步:
保存 SSE 日志后运行:
python outputs\ai_scientist_open_source_research\deep_dive\scientific-digital-employee-skill-pack\deep-research\scripts\parse_deep_research_sse.py `
outputs\ai_scientist_open_source_research\deep_dive\api_tests\round4_deep_research_sse.txt `
--out outputs\ai_scientist_open_source_research\deep_dive\api_tests\round4_deep_research_summary.json
实时转发或回放 SSE 日志:
python scripts/stream_deep_research.py --from-log outputs\api_tests\round4_deep_research_sse.txt
输出字段:
phaseskeywordsprivate_search.totalResultsprivate_search.failuresreferences_countfirst_referencesanswer_statusanswer_charsanswer_preview进度事件脚本测试:
python -m pytest tests/test_stream_deep_research.py
answer_status 判定:
| 状态 | 含义 |
|---|---|
complete | 有 references 且收到 done |
incomplete | 有 references 和 answer 片段,但未收到 done |
references_only | 有 references,但 answer 未开始 |
clarification_or_no_evidence | 有 answer 但无 references |
no_evidence | totalResults=0 |
现场讲时强调: