feat(asl): Complete Deep Research V2.0 core development

Backend:
- Add SSE streaming client (unifuncsSseClient) replacing async polling
- Add paragraph-based reasoning parser with mergeConsecutiveThinking
- Add requirement expansion service (DeepSeek-V3 PICOS+MeSH)
- Add Word export service with Pandoc, inline hyperlinks, reference link expansion
- Add deep research V2 worker with 2s log flush and Chinese source prompt
- Add 5 curated data sources config (PubMed/ClinicalTrials/Cochrane/CNKI/MedJournals)
- Add 4 API endpoints (generate-requirement/tasks/task-status/export-word)
- Update Prisma schema with 6 new V2.0 fields on AslResearchTask
- Add DB migration for V2.0 fields
- Simplify ASL_DEEP_RESEARCH_EXPANSION prompt (remove strategy section)

Frontend:
- Add waterfall-flow DeepResearchPage (phase 0-4 progressive reveal)
- Add LandingView, SetupPanel, StrategyConfirm, AgentTerminal, ResultsView
- Add react-markdown + remark-gfm for report rendering
- Add custom link component showing visible URLs after references
- Add useDeepResearchTask polling hook
- Add deep research TypeScript types

Tests:
- Add E2E test, smoke test, and Chinese data source test scripts

Docs:
- Update ASL module status (v2.0 - core features complete)
- Update system status (v6.1 - ASL V2.0 milestone)
- Update Unifuncs DeepSearch API guide (v2.0 - SSE mode + Chinese source results)
- Update module auth specification (test script guidelines)
- Update V2.0 development plan

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-02-23 13:21:52 +08:00
parent b06daecacd
commit 8f06d4f929
39 changed files with 5605 additions and 417 deletions

View File

@@ -1,21 +1,23 @@
# Unifuncs DeepSearch API 使用指南
> **文档版本:** v1.0
> **文档版本:** v2.0
> **创建日期:** 2026-02-22
> **最后更新:** 2026-02-23
> **维护者:** 开发团队
> **文档目的:** 指导业务模块正确使用 Unifuncs DeepSearch API明确可用网站与最佳策略
> **文档目的:** 指导业务模块正确使用 Unifuncs DeepSearch API明确可用网站、调用模式与最佳策略
---
## 1. 概述
Unifuncs DeepSearch 是一个 AI 驱动的深度搜索引擎,可以在指定的网站范围内自动搜索、阅读和汇总信息。在本平台中,它作为**通用能力层**的一部分,为文献检索、临床试验查找等场景提供底层搜索能力。
Unifuncs DeepSearch 是一个 AI 驱动的深度搜索引擎,可以在指定的网站范围内自动搜索、阅读和汇总信息。在本平台中,它作为通用能力层的一部分,为文献检索、临床试验查找等场景提供底层搜索能力。
### 核心能力
- 自然语言输入 → AI 自动生成搜索策略
- 多轮迭代搜索(最大深度可配置)
- 自动阅读网页内容并提取关键信息
- 返回结构化结果 + 综合报告
- 支持 SSE 实时流式 + 异步轮询两种调用模式
### API 基础信息
@@ -28,108 +30,92 @@ Unifuncs DeepSearch 是一个 AI 驱动的深度搜索引擎,可以在指定
---
## 2. 网站覆盖能力2026-02-22 实测)
## 2. 两种调用模式
### 2.1 测试条件
### 2.1 SSE 流式模式V2.0 采用,推荐)
- **查询**他汀类药物预防心血管疾病的随机对照试验和Meta分析近5年高质量研究
- **配置**max_depth=5异步模式create_task + query_task
- **ClinicalTrials.gov 专项**4 种策略对比测试max_depth=5~15
### 2.2 可用性分级
#### 一级:确认可搜索(返回站内直接链接)
| 站点 | 域名 | 类型 | 站内链接数 | 搜索/阅读 | 最佳策略 |
|------|------|------|-----------|-----------|---------|
| **PubMed** | pubmed.ncbi.nlm.nih.gov | 英文 | 28 | 9/29 | 中/英文查询均可,效果最佳 |
| **NCBI/PMC** | www.ncbi.nlm.nih.gov | 英文 | 18 | 24/19 | 含 PMC 全文链接 |
| **ClinicalTrials.gov** | clinicaltrials.gov | 英文 | 38 | 6/24 | **必须英文查询**max_depth≥10 |
| **Google Scholar** | scholar.google.com | 英文 | 10 | 22/26 | 跨库聚合搜索 |
| **CBM/SinoMed** | www.sinomed.ac.cn | 中文 | 9 | 17/12 | 中文生物医学文献数据库 |
| **中国知网 CNKI** | www.cnki.net | 中文 | 7 | 40/6 | 中文核心期刊 |
| **GeenMedical** | www.geenmedical.com | 英文 | 5 | 38/3 | 医学搜索聚合引擎 |
| **Cochrane Library** | www.cochranelibrary.com | 英文 | 4 | 38/12 | 系统综述金标准 |
| **维普 VIP** | www.cqvip.com | 中文 | 1 | 33/3 | 可用但链接较少 |
#### 二级:可到达但链接间接(搜索到内容,但返回链接不指向该站点域名)
| 站点 | 域名 | 类型 | 其他链接数 | 说明 |
|------|------|------|-----------|------|
| 中华医学期刊网 | medjournals.cn | 中文 | 12 | 搜索活跃41次内容丰富但链接跳转 |
| 万方数据 | www.wanfangdata.com.cn | 中文 | 7 | 搜索活跃42次链接可能转跳 |
| 中国临床试验注册中心 | www.chictr.org.cn | 中文 | 7 | 有内容产出,链接指向其他站 |
| 中国中医药数据库 | cintmed.cintcm.cn | 中文 | 22 | 内容最丰富8631字链接非直达 |
| Scopus | www.scopus.com | 英文 | 15 | 付费墙限制,内容来自外部引用 |
| Embase | www.embase.com | 英文 | 14 | 需机构登录 |
| Web of Science | www.webofscience.com | 英文 | 6 | 付费墙限制 |
#### 三级:不可用或受限
| 站点 | 域名 | 说明 |
|------|------|------|
| Ovid | ovidsp.ovid.com | 仅搜索未读取内容,需机构登录 |
| NSTL | www.nstl.gov.cn | 搜索到但无有效内容和链接 |
### 2.3 关键发现
1. **付费库无法穿透**Unifuncs 只能访问公开可达的网页内容不支持传入用户名密码。Web of Science、Embase、Scopus、Ovid 等需要机构 IP 或账号登录的库无法直接搜索。
2. **ClinicalTrials.gov 必须用英文**:该站点为纯英文网站,中文查询效率极低。使用英文查询 + max_depth≥10 时,可稳定返回 30+ 个 NCT 编号和链接。
3. **中文库表现不一**CNKI 和 SinoMed 效果较好,能直接返回站内链接;万方和中华医学期刊网可到达但链接不直达。
---
## 3. 两种调用模式
### 3.1 OpenAI 兼容协议(流式,适合实时展示)
通过 OpenAI 兼容协议的 `POST /chat/completions` 端点,设置 `stream: true`,以 SSE 事件流实时返回 AI 思考过程和最终结果。
```typescript
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://api.unifuncs.com/deepsearch/v1',
apiKey: process.env.UNIFUNCS_API_KEY,
const response = await fetch('https://api.unifuncs.com/deepsearch/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${UNIFUNCS_API_KEY}`,
'Content-Type': 'application/json',
'Accept': 'text/event-stream',
},
body: JSON.stringify({
model: 's2',
messages: [{ role: 'user', content: query }],
stream: true,
introduction: '你是一名专业的临床研究文献检索专家',
max_depth: 25,
domain_scope: ['https://pubmed.ncbi.nlm.nih.gov/'],
reference_style: 'link',
output_prompt: '请输出结构化报告和文献列表',
}),
});
const stream = await client.chat.completions.create({
model: 's2',
messages: [{ role: 'user', content: query }],
stream: true,
introduction: '你是一名专业的临床研究文献检索专家',
max_depth: 15,
domain_scope: ['https://pubmed.ncbi.nlm.nih.gov/'],
domain_blacklist: [],
reference_style: 'link',
} as any);
// 解析 SSE 事件流
const reader = response.body.getReader();
const decoder = new TextDecoder();
let buffer = '';
for await (const chunk of stream) {
const delta = chunk.choices[0]?.delta;
if ((delta as any)?.reasoning_content) {
// AI 思考过程(逐字流式)
}
if (delta?.content) {
// 最终结果内容(逐字流式)
while (true) {
const { done, value } = await reader.read();
if (done) break;
buffer += decoder.decode(value, { stream: true });
const lines = buffer.split('\n');
buffer = lines.pop() || '';
for (const line of lines) {
const trimmed = line.trim();
if (trimmed.startsWith('data: ')) {
const data = trimmed.slice(6);
if (data === '[DONE]') return;
const json = JSON.parse(data);
const delta = json.choices?.[0]?.delta;
if (delta?.reasoning_content) {
// AI 思考过程(逐字流式,实时展示)
}
if (delta?.content) {
// 最终结果内容(逐字流式)
}
}
}
}
```
**优点:** 实时展示 AI 思考过程,用户体验好
**缺点:** 连接不稳定,离开页面任务丢失,长任务容易超时
**SSE 流的数据特征2026-02-23 实测):**
### 3.2 异步模式(推荐用于 V2.0
| 指标 | 典型值 |
|------|--------|
| reasoning chunks | 2000~4000+ 个(实时逐条返回) |
| content chunks | 500~1600+ 个 |
| reasoning 总字符数 | 10000~13000 字符 |
| content 总字符数 | 8000~14000 字符 |
| 总耗时 | 4~6 分钟max_depth=25 |
#### 创建任务
**优点:**
- reasoning_content 实时逐 chunk 返回,可立即展示 AI 思考过程
- 用户体验优秀:搜索、阅读、分析过程实时可见
- 无需轮询,数据推送式
**缺点:**
- 长连接可能因网络中断而失败
- 不返回 statisticsiterations、search_count 等)
### 2.2 异步模式V1.x 曾使用,仅用于备选)
#### 创建任务 POST /v1/create_task
```typescript
const payload = {
model: 's2',
messages: [{ role: 'user', content: query }],
introduction: '你是一名专业的临床研究文献检索专家',
max_depth: 15,
max_depth: 25,
domain_scope: ['https://pubmed.ncbi.nlm.nih.gov/'],
domain_blacklist: [],
reference_style: 'link',
generate_summary: true,
output_prompt: '请输出结构化报告和文献列表',
@@ -148,7 +134,7 @@ const { data } = await res.json();
// data.task_id → 保存到数据库
```
#### 轮询任务
#### 轮询任务 GET /v1/query_task
```typescript
const params = new URLSearchParams({ task_id: taskId });
@@ -158,15 +144,110 @@ const res = await fetch(
);
const { data } = await res.json();
// data.status: pending / processing / completed / failed
// data.status: pending / running / completed / failed
// data.result.content: 最终结果
// data.result.reasoning_content: AI 思考过程(增量
// data.result.reasoning_content: AI 思考过程(仅在接近完成时才有数据
// data.progress: { current, total, message }
// data.statistics: { iterations, search_count, read_count, token_usage }
```
**优点:** 任务持久化,离开页面不中断,可恢复,适合长任务
**缺点:** 非实时,需要轮询获取进度
**优点:** 任务持久化,离开页面不中断,返回 statistics
**缺点:** reasoning_content 不实时 — 实测中在 12 分钟内仅返回 25%/50%/90% 进度,最后才一次性返回全部思考内容,用户体验差
### 2.3 模式选择建议
| 场景 | 推荐模式 | 原因 |
|------|---------|------|
| 用户在线等待、需要实时反馈 | SSE 流式 | reasoning 实时展示 |
| 后台批量任务、无人值守 | 异步 | 任务持久化、可恢复 |
| V2.0 Deep Research | SSE 流式 | Worker 消费 SSE 流 + DB 持久化 |
---
## 3. 网站覆盖能力
### 3.1 V2.0 精选数据源(前端可选)
| 站点 | 域名 | 类型 | 默认 | 搜索效果 |
|------|------|------|------|----------|
| PubMed | pubmed.ncbi.nlm.nih.gov | 英文 | 默认勾选 | 效果最佳,核心数据源 |
| ClinicalTrials.gov | clinicaltrials.gov | 英文 | 可选 | 英文查询效果好 |
| Cochrane Library | www.cochranelibrary.com | 英文 | 可选 | 系统综述金标准 |
| 中国知网 CNKI | www.cnki.net | 中文 | 可选 | 中文核心期刊 |
| 中华医学期刊网 | medjournals.cn | 中文 | 可选 | 中文医学期刊,效果优秀 |
### 3.2 中文数据源专项测试2026-02-23 实测)
测试条件SSE 流式模式max_depth=10domain_scope 仅包含 CNKI + 中华医学期刊网
**测试 12型糖尿病患者SGLT2抑制剂的肾脏保护作用**
| 指标 | 结果 |
|------|------|
| 耗时 | 268.3s |
| reasoning chunks | 4071 个12555 字符) |
| content chunks | 1671 个8055 字符) |
| 中文字符数 | 2398 |
| 中华医学期刊网链接 | 46 个 |
| CNKI 链接 | 有 |
| PubMed 链接 | 0 个 |
**测试 2非小细胞肺癌免疫治疗的中国临床研究进展**
| 指标 | 结果 |
|------|------|
| 耗时 | 316.4s |
| reasoning chunks | 2675 个9985 字符) |
| content chunks | 3151 个14291 字符) |
| 中文字符数 | 3536 |
| 中华医学期刊网链接 | 94 个 |
| PubMed 链接 | 0 个 |
**测试 3他汀类药物一级预防混合源PubMed + CNKI + 中华医学期刊网)**
| 指标 | 结果 |
|------|------|
| 中文字符数 | 3676 |
| PubMed 链接 | 96 个 |
| 中文源链接 | 0 个 |
### 3.3 关键发现
1. 纯中文 domain_scope 效果好:当仅限定 CNKI + 中华医学期刊网时API 能有效检索中文文献,返回的链接全部指向中文站点。中华医学期刊网效果尤其突出。
2. 混合模式存在偏向性:同时包含 PubMed + 中文源时AI 明显倾向于 PubMed中文文献被忽略。如果用户需要中文文献建议仅选择中文数据库或在 Prompt 中强调中文检索需求。
3. 付费库无法穿透Unifuncs 只能访问公开可达的网页内容不支持传入用户名密码。Web of Science、Embase、Scopus 等需要机构登录的库无法直接搜索。
4. SSE 模式实时性优于异步模式SSE 流的 reasoning_content 真正逐 chunk 实时返回,而异步模式的 query_task 轮询中 reasoning_content 直到接近完成才有数据。
### 3.4 全站覆盖测试2026-02-22 实测,异步模式)
#### 一级:确认可搜索(返回站内直接链接)
| 站点 | 域名 | 类型 | 站内链接数 | 搜索/阅读 | 最佳策略 |
|------|------|------|-----------|-----------|---------|
| PubMed | pubmed.ncbi.nlm.nih.gov | 英文 | 28 | 9/29 | 中/英文查询均可 |
| NCBI/PMC | www.ncbi.nlm.nih.gov | 英文 | 18 | 24/19 | 含 PMC 全文链接 |
| ClinicalTrials.gov | clinicaltrials.gov | 英文 | 38 | 6/24 | 英文查询max_depth≥10 |
| Google Scholar | scholar.google.com | 英文 | 10 | 22/26 | 跨库聚合搜索 |
| CBM/SinoMed | www.sinomed.ac.cn | 中文 | 9 | 17/12 | 中文生物医学文献 |
| 中国知网 CNKI | www.cnki.net | 中文 | 7 | 40/6 | 中文核心期刊 |
| GeenMedical | www.geenmedical.com | 英文 | 5 | 38/3 | 医学搜索聚合引擎 |
| Cochrane Library | www.cochranelibrary.com | 英文 | 4 | 38/12 | 系统综述金标准 |
| 维普 VIP | www.cqvip.com | 中文 | 1 | 33/3 | 可用但链接较少 |
#### 二级:可到达但链接间接
| 站点 | 域名 | 类型 | 其他链接数 | 说明 |
|------|------|------|-----------|------|
| 中华医学期刊网 | medjournals.cn | 中文 | 12 | 搜索活跃,专项测试效果优秀 |
| 万方数据 | www.wanfangdata.com.cn | 中文 | 7 | 搜索活跃,链接可能转跳 |
| 中国临床试验注册中心 | www.chictr.org.cn | 中文 | 7 | 有内容产出 |
| 中国中医药数据库 | cintmed.cintcm.cn | 中文 | 22 | 内容丰富 |
| Scopus | www.scopus.com | 英文 | 15 | 付费墙限制 |
| Embase | www.embase.com | 英文 | 14 | 需机构登录 |
| Web of Science | www.webofscience.com | 英文 | 6 | 付费墙限制 |
---
@@ -175,92 +256,76 @@ const { data } = await res.json();
| 参数 | 类型 | 推荐值 | 说明 |
|------|------|--------|------|
| `model` | string | `"s2"` | 固定值 |
| `max_depth` | number | 10~25 | 搜索深度。测试用 5生产用 15~25。越大越全但越慢 |
| `domain_scope` | string[] | 按需配置 | 限定搜索范围。留空则不限 |
| `stream` | boolean | `true` | SSE 流式模式 |
| `max_depth` | number | 10~25 | 搜索深度。测试用 10生产用 25 |
| `domain_scope` | string[] | 按需配置 | 限定搜索范围,留空则不限 |
| `domain_blacklist` | string[] | `[]` | 排除特定站点 |
| `introduction` | string | 见下方 | 设定 AI 角色和搜索指导 |
| `reference_style` | string | `"link"` | 引用格式,`link``character` |
| `output_prompt` | string | 可选 | 自定义输出格式提示词 |
| `generate_summary` | boolean | `true` | 异步模式完成后自动生成摘要 |
| `generate_summary` | boolean | `true` | 异步模式有效 |
### 推荐的 introduction 模板
```
你是一名专业的临床研究文献检索专家。
请根据用户的研究需求,在指定数据库中系统性地检索相关文献
检索要求:
1. 优先检索高质量研究系统综述、Meta分析、RCT
2. 关注 PICOS 要素(人群、干预、对照、结局、研究设计)
3. 优先近 5 年的研究
4. 返回每篇文献的完整元数据(标题、作者、期刊、年份、链接)
输出要求:
1. 按研究类型分组
2. 每篇文献附带直接链接
3. 最后给出综合性研究概述
你是一名专业的临床研究文献检索专家,擅长从多个学术数据库中检索高质量的医学文献
请根据用户的检索需求,系统性地搜索并返回相关文献的详细信息
```
### domain_scope 使用策略
| 场景 | domain_scope 配置 | 说明 |
|------|-------------------|------|
| 英文文献检索 | `["https://pubmed.ncbi.nlm.nih.gov/"]` | 核心数据源 |
| 中文文献检索 | `["https://www.cnki.net/", "https://medjournals.cn/"]` | 仅中文源,避免被英文库稀释 |
| 临床试验检索 | `["https://clinicaltrials.gov/"]` | 必须英文查询 |
| 系统综述 | `["https://www.cochranelibrary.com/"]` | Cochrane 专用 |
| 全面检索 | `["https://pubmed.ncbi.nlm.nih.gov/", "https://www.cochranelibrary.com/"]` | 多英文源组合 |
注意:不建议中英文数据源混合,测试表明混合时 AI 偏向英文源,中文文献会被忽略。如需同时检索中英文,建议分两次独立搜索。
---
## 5. 最佳策略指南
### 5.1 针对不同站点的策略
| 目标站点 | 查询语言 | max_depth | 特殊说明 |
|---------|---------|-----------|---------|
| PubMed / NCBI | 中文或英文均可 | 15~25 | 效果最好,核心数据源 |
| ClinicalTrials.gov | **必须英文** | 10~15 | 中文查询极慢甚至超时 |
| Cochrane Library | 英文优先 | 10~15 | 系统综述专用 |
| Google Scholar | 中文或英文 | 10~15 | 跨库聚合,可能有重复 |
| CNKI / SinoMed | 中文 | 10~15 | 中文文献首选 |
| GeenMedical | 英文优先 | 5~10 | 聚合搜索,速度快 |
### 5.2 多站点组合搜索
```typescript
// V2.0 推荐:用户选择多个数据源,合并到 domain_scope
const domainScope = [
'https://pubmed.ncbi.nlm.nih.gov/',
'https://www.cochranelibrary.com/',
'https://scholar.google.com/',
];
// 如果包含 ClinicalTrials.gov需求扩写时自动翻译为英文
```
### 5.3 性能预期
## 5. 性能预期
| max_depth | 预计耗时 | 搜索/阅读量 | 适用场景 |
|-----------|---------|------------|---------|
| 5 | 1~3 分钟 | 10~40 / 0~20 | 快速探索 |
| 10 | 2~5 分钟 | 20~50 / 10~30 | 常规检索 |
| 10 | 2~5 分钟 | 20~50 / 10~30 | 常规检索、中文源测试 |
| 15 | 3~8 分钟 | 30~80 / 20~50 | 深度检索 |
| 25 | 5~15 分钟 | 50~150 / 30~80 | 全面研究 |
| 25 | 5~15 分钟 | 50~150 / 30~80 | 全面研究V2.0 生产配置) |
### 5.4 成本估算
### 成本估算
- 单次搜索 Token 消耗5万~30万 tokens取决于深度和站点数量
- 估算成本:约 ¥0.1~0.5/次(按 unifuncs 定价)
---
## 6. 平台集成方式
## 6. 平台集成架构
### 当前使用V1.x - ASL 模块
### V2.0 SSE + 异步 Worker 混合架构(当前
```
researchService.ts → OpenAI SDK → SSE 流式
researchWorker.ts → pg-boss → 异步执行
前端 DeepResearchPage
→ API: PUT /research/tasks/:taskId/execute
→ pg-boss Job Queue: asl_deep_research_v2
→ deepResearchV2Worker.ts
→ unifuncsSseClient.ts (SSE 流式)
→ 实时解析 reasoning_content → executionLogs → 写入 DB每2s刷写
→ 累积 content → 完成后解析为 synthesisReport + resultList
→ 前端 3s 轮询 DB → AgentTerminal 实时展示日志
```
### 计划升级V2.0 - ASL Deep Research
### 核心文件
```
requirementExpansionService.ts → DeepSeek-V3 需求扩写
unifuncsAsyncClient.ts → create_task / query_task 异步模式
deepResearchV2Worker.ts → pg-boss Worker → 轮询 + 日志解析
```
| 文件 | 说明 |
|------|------|
| `unifuncsSseClient.ts` | SSE 流式客户端AsyncGenerator 逐 chunk 返回 |
| `unifuncsAsyncClient.ts` | 异步客户端备选create_task / query_task |
| `deepResearchV2Worker.ts` | pg-boss Worker消费 SSE 流并实时写 DB |
| `reasoningParser.ts` | 将 reasoning_content 文本解析为结构化日志 |
| `resultParser.ts` | 将 content 解析为 synthesisReport + resultList |
### 其他模块可复用场景
@@ -275,21 +340,28 @@ deepResearchV2Worker.ts → pg-boss Worker → 轮询 + 日志解析
## 7. 测试脚本
项目中已提供两个测试脚本:
| 脚本 | 路径 | 用途 |
|------|------|------|
| 中文数据源专项测试 | `backend/src/modules/asl/__tests__/deep-research-chinese-sources.ts` | SSE 流式模式测试 CNKI + 中华医学期刊网 |
| 全站覆盖测试 | `backend/scripts/test-unifuncs-site-coverage.ts` | 并行测试 18 个医学网站的搜索能力 |
| ClinicalTrials 专项 | `backend/scripts/test-unifuncs-clinicaltrials.ts` | 4 种策略对比测试 ClinicalTrials.gov |
| 快速验证 | `backend/scripts/test-unifuncs-deepsearch.ts` | 单站点 SSE 流式快速测试 |
| E2E 集成测试 | `backend/src/modules/asl/__tests__/deep-research-v2-e2e.ts` | V2.0 全流程端到端测试 |
| Smoke 测试 | `backend/src/modules/asl/__tests__/deep-research-v2-smoke.ts` | V2.0 API 连通性快速验证 |
```bash
# 中文数据源专项测试SSE 流式,约 10~15 分钟)
cd backend
npx tsx src/modules/asl/__tests__/deep-research-chinese-sources.ts
# 全站覆盖测试
npx tsx scripts/test-unifuncs-site-coverage.ts
npx tsx scripts/test-unifuncs-clinicaltrials.ts
# E2E 集成测试(需先启动后端服务)
npx tsx src/modules/asl/__tests__/deep-research-v2-e2e.ts
```
---
**维护者:** 开发团队
**最后更新:** 2026-02-22
**最后更新:** 2026-02-23