{hint}
++ 输入一个研究课题,AI 将自动拆解子问题、搜集材料、筛选素材,并撰写一份带引用来源的研究报告。 +
+{session.query}
+ {session.error && ( +{session.query}
++ {session.status === "draft" + ? "确认课题后开始收集材料并生成研究报告。" + : "会基于当前课题新建一次研究任务,已有报告和来源不会被删除。"} +
++ 调整选择会立即限制后续“报告追问”的证据范围,不会重写已完成的报告;重新研究时会重新收集并筛选来源。 +
+ )} +仅依据本报告和已收集来源回答,不会自动发起新的信息搜集。
+Ctrl / ⌘ + Enter 发送
++ 多智能体将在您批准后,按以下分工收集材料、撰写报告并进行审阅。 +
+ {sections.length > 0 && ( +{source.snippet}
+ )} + {source.url && ( + +输入研究课题后,系统会沿用问答侧已接入的联网检索和技能检索能力,展示可观察的资料收集过程,并在右侧沙箱持续写入报告。
+ +{session.status === "draft" ? "研究尚未开始" : session.status === "failed" ? "这次研究未完成" : "研究已停止"}
{session.error || "可以在保留当前课题的前提下重新开始一次研究。"}
{content}
{detail}
拆分 {queryTotal} 个检索词 · 完成 {completedQueries}/{queryTotal} · 收集 {sourceTotal} 条资料{snapshot.selectedIds.size ? ` · 采纳 ${snapshot.selectedIds.size} 条` : ""}
{group.title}
{query.query}
{done ? `${resultCount} 条命中` : running ? "检索中" : "等待执行"}{source.title}
{source.url && 打开来源{source.sourceType}
{source.snippet &&{source.snippet}
}过程提示
{snapshot.warnings.map((warning) =>{warning}
)}实时连接提示:{error}。研究仍会继续,页面会从已保存的事件记录恢复。
} +研究报告已完成
已基于 {sourceCount || session.sourceCount} 条资料完成报告,并保留来源供后续追问。报告正文在右侧沙箱中打开。
请确认研究计划
{objective}
{isFollowUp ? "追问仅基于本报告及已选来源,不会自动发起新的联网检索。Enter 发送,Shift + Enter 换行。" : "Enter 发送,Shift + Enter 换行。资料收集沿用当前问答的联网检索和技能检索能力。"}
" if in_code else "") + continue + if in_code: + out.append(_html.escape(line)) + continue + image = _INLINE_REPORT_IMAGE_RE.fullmatch(line.strip()) + if image: + alt, name = image.groups() + data_uri = image_data_uris.get(name) + if data_uri: + out.append( + f'
{text}
" if text.strip() else "") + return "\n".join(out) diff --git a/offline-backend-20260512/backend/config.yaml b/offline-backend-20260512/backend/config.yaml index 12af3d5a..71f7ee48 100644 --- a/offline-backend-20260512/backend/config.yaml +++ b/offline-backend-20260512/backend/config.yaml @@ -91,6 +91,18 @@ models: temperature: 1.0 supports_vision: true supports_thinking: true +- name: qwen3.6-flash + display_name: qwen3.6-flash + use: langchain_openai:ChatOpenAI + model: qwen3.6-flash + api_key: sk-sp-H.XDIPL.Zgvs.MEQCIBasaS2RPHwgNUpGVfFJeRaTp5UgmZ4Y2rCVGNtpwfD1AiBTFg3S-uE_gqVDnHgdyEhDwcfaVRLi92xviye80AZnkg + base_url: https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1 + request_timeout: 30.0 + max_retries: 2 + stream_usage: true + supports_thinking: false + supports_reasoning_effort: false + supports_vision: false # - name: deepseek-v4-flash # display_name: DeepSeek V4 Flash # use: langchain_openai:ChatOpenAI @@ -182,6 +194,20 @@ vision: # prompt: 请详细描述这张图片的内容。 # max_tokens: 2048 +# 深度研究可选的报告配图。默认关闭;仅在部署方配置文生图模型后,前端才会展示开关。 +# 使用 OpenAI 兼容的 POST {base_url}/images/generations 协议,并强制要求 b64_json +# 返回,以便将图片保存为当前研究会话的受鉴权产物,而不是引用会过期的公网 URL。 +deep_research: + image_generation: + enabled: false + provider: openai_compatible + base_url: "" # 例如 https://api.openai.com/v1 + api_key: "" # 生产环境建议填 $DEEP_RESEARCH_IMAGE_API_KEY + model: "" # 例如 gpt-image-1 + size: 1024x1024 + # quality: standard + timeout_seconds: 120 + # browser_act 相关配置 browser_context: enabled: true diff --git a/offline-backend-20260512/backend/packages/harness/deerflow/agents/deep_research/UPSTREAM.md b/offline-backend-20260512/backend/packages/harness/deerflow/agents/deep_research/UPSTREAM.md new file mode 100644 index 00000000..7a31abaa --- /dev/null +++ b/offline-backend-20260512/backend/packages/harness/deerflow/agents/deep_research/UPSTREAM.md @@ -0,0 +1,56 @@ +# GPT Researcher adaptation manifest + +This directory implements Deep Research for DeerFlow. It is an **algorithmic +adaptation** of selected GPT Researcher control flows, not an import of the +upstream package at runtime. This boundary is intentional: GPT Researcher's +LLM providers, search/scrape stack, MCP setup, global configuration and +dependency graph must not bypass DeerFlow's model factory, material-security +policy, user context or durable-job lifecycle. + +## Fixed upstream baseline + +| Field | Value | +| --- | --- | +| Project | `assafelovic/gpt-researcher` | +| Local review checkout | `F:\react01\deeflow-code\gpt-researcher` | +| Commit | `5d84d2f5553e70a2765a8ff3a0d2672d60437ce8` | +| License | Apache License 2.0 (`F:\react01\deeflow-code\gpt-researcher\LICENSE`) | +| Upstream repository |