用 GPT Researcher 前,先验证“资料来源合同”

📅 2026/7/5 7:03:16
用 GPT Researcher 前,先验证“资料来源合同”
GPT Researcher 不应该被当成一个更会写的搜索框。更准确的用法是把它看成研究流水线从一个 query 出发拆子问题调用 retriever 找候选来源抓取网页或文档整理上下文再写出带引用的长报告。这条流水线有价值但前提是“资料来源合同”能被看见。信任报告之前我至少要知道用了哪个 retriever哪些 URL 进入了 context哪些关键句子真的有 citation 支撑抓取失败时系统怎么处理本地文件和 MCP 工具有没有进入这次运行。Doramagic 的 GPT Researcher 说明书有用的地方正是它没有把项目写成泛泛的 AI research 助手而是把 Python library、FastAPI backend、WebSocket、frontend、本地文档、retriever、scraper、MCP、多智能体工作流和安全边界放在同一张图里。2026-07-04 我复核的公开信息是上游仓库为assafelovic/gpt-researcherPython 项目Apache-2.0 协议未归档GitHub 约 28,058 stars、3,788 forks、198 open issues最近一次观测 push 为 2026-06-28。Doramagic 项目页最后验证时间为 2026-07-02并把它放在 MCP/tool integration 语境下但说明书能看出来它真正的执行面比 MCP 更宽。执行面越宽第一次试用越应该窄。它到底做了什么上游 README 对核心流程的描述很清楚根据研究问题创建 task-specific agent生成一组更客观的子问题通过 crawler / retriever 收集资料对资源做摘要和 source tracking过滤、聚合摘要生成最终报告输出 Markdown、PDF 或 DOCX。这些入口会直接影响采用风险本地安装要求 Python 3.11默认 quickstart 需要OPENAI_API_KEY和TAVILY_API_KEYFastAPI app 通过python -m uvicorn main:app --reload在 localhost 启动Python 包暴露GPTResearcher典型调用是conduct_research()和write_report()前端包括 FastAPI 静态版本和 NextJS 版本本地文档研究支持 PDF、text、CSV、Excel、Markdown、PowerPoint、WordMCP 可通过RETRIEVERtavily,mcp和 MCP configs 接入多智能体版本使用 LangGraph / AG2报告可能超过 2,000 字并聚合 20 来源。这些能力本身不是问题。问题在于把它们混成一个“开始研究”按钮。Web 检索、本地文件读取、WebSocket 入口、MCP 工具调用、报告导出是不同的信任边界。第一次运行我会怎么验第一次运行只做 web-only不碰本地文档也不启用 MCP。目标不是产出一份漂亮报告而是验证 citation contract。问题要窄最好选一个你已经有基本判断、能抓出明显错误的题目。不要第一天就让它写行业总览。先选一个答案应该能被少数高质量页面支撑的问题。生成报告前后记录这些东西原始 queryreport type 和输出格式retriever 设置model provider 和密钥边界local documents 是否关闭MCP 是否关闭进入 context 的 source URLs最终 report 文件或 URL抓取失败、空 context、降级重试等提示。报告写完后不按“读起来顺不顺”打分。抽查证据。从报告里挑 5 个影响结论的关键句逐条打开 citation。引用页面必须真的支撑那句话如果 citation 指向的页面没有这个结论这次运行失败。如果关键判断没有 citation这次运行失败。如果 context 很薄甚至为空但系统仍然写出很自信的报告这次运行也失败。这一步看起来慢但它把“AI 写了一篇报告”变成了“研究流水线保留了证据”。本地文档为什么要后置本地文档研究很有用但不适合放在第一轮验证里。只要DOC_PATH或 local file ingestion 进入运行问题就从“研究质量”变成了“数据边界”。启用本地文档前我会先建一个 disposable folder里面放两个无敏感文件一个相关一个不相关。期望结果不是“它用了相关文件”这么简单而是source list 能看出用了哪个文件不相关文件没有被硬塞进结论报告里没有泄露本地私有路径失败时能看见是文档解析失败、检索失败还是写作阶段补出来的幻觉。只有这一步过了才考虑真实 corpus而且服务进程应当只拿到最小必要的文件权限。MCP 为什么也要后置MCP 让 GPT Researcher 更有想象力因为它可以接 GitHub 仓库、数据库、自定义 API 或其他专用数据源。但 MCP 也会放大权限面。我不会在 web-only baseline 通过前启用RETRIEVERtavily,mcp。启用 MCP 后需要单独记录 tool ledger连接了哪个 MCP server允许调用哪些 toolserver 是本地还是远端实际传了哪些参数tool 返回的哪些数据进入 research contexttool 失败时最终报告如何表达失败。如果这些细节看不见MCP 增加的是触达范围不是可审计性。真正值得检查的风险面Doramagic 说明书里有几类风险适合直接转成操作检查。第一empty context 也可能生成流畅报告。说明书引用了 issue 证据相关 context 缺失时write_report仍可能继续生成看起来完整的内容。也就是说“报告生成成功”只是弱信号必须检查 context 和 citation。第二backend / WebSocket 必须有网络边界。说明书记录了关于 unauthenticatedsource_urls和 SSRF 风险的社区报告。如果 GPT Researcher backend 暴露给不可信客户端认证、URL 校验、egress 限制和部署隔离不是锦上添花而是基本边界。第三本地 PDF 处理要格外小心。说明书引用了.pdf条目、scraper 行为和本地文件读取相关 issue。它不代表每个部署都不可用但代表 document ingestion 不能裸奔要 allowlist、最小文件权限并验证任意本地路径不可读。这些不是“别用 GPT Researcher”的理由而是告诉我们它更像基础设施不像浏览器里随手打开的聊天页。什么时候适合用它适合想要可复用研究流程、愿意审核来源质量、并能把 retrieval 和 report generation 分开看的团队。尤其适合需要 citation、PDF/DOCX 导出、本地文档、MCP 数据源和多智能体研究流的场景。它不适合只想要快速答案、没法抽查 citation、或者准备把 backend 直接暴露给别人用但不做认证和 URL 控制的场景。它也不适合把“20 sources”当成质量保证。来源多可以降低盲区也可能放大重复页面、过时帖子和抓取噪声。我的最小采用路径如果今天要试 GPT Researcher我会这样做只跑一个 web-only query记录 retriever、provider、source URLs 和输出文件抽查 5 个关键结论是否被 citation 支撑遇到 empty context 或 unsupported claim 直接判失败用无敏感文件做一次 local document 测试baseline 通过后再启用 MCP并记录 tool-call ledger任何暴露的 backend 都必须放在认证、URL validation 和 egress controls 后面。这条路径通过后GPT Researcher 就不只是写作助手而是一个可以检查证据的研究系统候选。如果这条路径不过报告再顺也只是包装更好的风险。来源Doramagic 中文说明书https://doramagic.ai/zh/projects/gpt-researcher/manual/Doramagic 项目页https://doramagic.ai/zh/projects/gpt-researcher/上游仓库https://github.com/assafelovic/gpt-researcher说明本文是 Doramagic 的独立项目笔记不代表 GPT Researcher 官方声明。