argo

104Star6Fork9Issue0Watching

把 Argo 多语言搜索与证据核验 MCP 接入 DSH,模型获得 10 个联网搜索、抓取、深度研究工具。

语言
Python
License
MIT
分支
main
dsh-ecosystemdsh-plugin

安装

$ dsh plugin --profile web add github:taxueseek/argo

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

一句话定位

把 Argo 阿尔戈多语言搜索与证据核验 MCP 接入 DSH,让模型在对话里直接调用 10 个联网搜索、抓取、深度研究类工具,输出精简 JSON 而非长网页。

核心能力

  • 统一搜索:按语言、领域、意图自动选路,多引擎并行召回、RRF 融合,输出带权威性、证据密度、时效性打分的精简 JSON
  • 深度研究:把复杂问题拆成多个子问题,多源并行采集,给出还差什么证据的缺口提示
  • 智能抓取与站点爬取:HTTP 优先、反爬时升级浏览器;支持 BM25 聚焦提取、表格与 JSON-LD 结构化抽取
  • 文档与本地检索:把 PDF 转成 Markdown、把网页转成图片;非联网扫本机代码/笔记/技能库
  • 社交平台搜索:覆盖 Hacker News、知乎、B 站、V2EX 等,支持帖子列表与舆情聚合两种模式
  • 意图消歧:识别「苹果」「Python」等多义词,给出搜索策略建议

技术实现

  • 语言: Python 3.10+(核心)+ Node.js 18+(仅作 npx 启动壳)
  • 关键依赖: PyYAML(必需)、curl_cffi(可选)、pdfplumber 或 PyMuPDF(PDF 用)、Chrome / Playwright(截图与 JS 渲染页用)
  • 架构模式: DSH 通过 @deepseek-ai/dsh-mcp-client 以 stdio 方式拉起 npx -y github:taxueseek/argo,Node 壳 bin/argo.js 再 spawn 出 Python scripts/mcp_server.py,10 个工具的 schema 唯一真源在 scripts/mcp_tools.py
  • 入口文件: bin/argo.js(Node 启动器)/ scripts/mcp_server.py(MCP 协议聚合)/ packages/dsh-plugin/cordis.patch.yml(DSH bundle patch,唯一真源声明 10 个 mcp__argo__* 工具的注册 id mcp-argo

适用场景

在 DSH 里做研究、查行情、看学术论文、抓反爬站点、跨语言问答时,把这个插件打开就行。如果你希望模型不要每次都泛搜网页标题,而是直接拿到带可信度评分的精简结果、并且能按需拆分子问题做深度调研,这套能力正好对应。

前置依赖与兼容性

依赖最低版本说明
Node.js>=18npx 入口需要
Python>=3.10MCP 核心语言;macOS 自带 3.9 不可用时设 ARGO_PYTHON 指到 3.10+
PyYAML任意唯一硬依赖,安装脚本会自动装
平台macOS / Linuxpackage.json os 字段声明;Windows 通过 python 兜底可工作,可选浏览器能力需图形环境
原生模块不依赖 node-gyp 模块

安装方式

dsh plugin --profile web add github:taxueseek/argo

配置项

配置类型说明默认值
TAVILY_API_KEY环境变量启用 Tavily 引擎(国际/语义搜索),未配则跳过未设置
BOCHA_API_KEY环境变量启用博查引擎(中文 AI 搜索),未配则跳过未设置
METASO_API_KEY环境变量启用 Metaso 引擎(中文 AI 搜索),未配则跳过未设置
ZHIHU_ACCESS_SECRET环境变量启用知乎官方接口源,未配则走零密钥 fallback未设置
BRAVE_API_KEY / FELO_API_KEY / GITHUB_TOKEN / WEB_SEARCH_API_KEY / ANYSEARCH_API_KEY / OCTEN_API_KEY环境变量可选启用的额外引擎凭证未设置
ARGO_PYTHON环境变量自定义 Python 解释器路径(npx 入口读取)python3(Windows: python
预算模式 modefast / auto / deep / budgetfast 免费优先;auto 成本感知;deep 质量优先;budget 配额控制auto
搜索深度 depthfast / balanced / deep控制召回引擎数量与精排策略fast
时间窗 since / until字符串形如 7d2026-08-01,下推到支持时间窗的引擎
缓存路径cache.db_pathconfig.yamlSQLite 缓存位置~/.cache/unified-search/cache.db
高级浏览器工具 argo_fetchuse_browser布尔是否强制使用反检测浏览器,HTTP 失败时自动升级false

常见问题

Q: 安装后我能在 DSH 里看到什么?

A: 重启 dsh web 后,模型侧会多出 10 个以 mcp__argo__ 开头的能力,包括统一搜索、本地文件搜索、深度研究、可信度评估、意图消歧、页面抓取、站点爬取、页面截图、PDF 提取、社交平台搜索。

Q: 必须配置 API Key 才能用吗?

A: 不需要。Argo 内置大量免费与本地引擎,未配 Key 时自动走零成本路径;配了 Tavily、Bocha、Metaso 等 Key 后部分引擎结果质量更高。

Q: 它依赖 Python 吗?

A: 是的。Node 启动器只是个壳,真正跑逻辑的是 scripts/mcp_server.py 这个 Python 进程。本机需要 Python 3.10+ 并安装 PyYAML。macOS 自带 3.9 不可用时,用 ARGO_PYTHON 指向 3.10+ 解释器。

Q: 想用本地源码而不是从 GitHub 拉取,怎么做?

A: 在 profile 的 cordis.patch.yml 用户层用相同 id(mcp-argo)覆盖默认配置,把 commandnpx 换成 python3 并指向本地 scripts/mcp_server.py 路径即可,Cordis 同 id 最后写入者胜。

Q: 数据存哪?怎么清缓存?

A: 查询缓存写到 ~/.cache/unified-search/cache.db(SQLite),TTL 按域分级(金融 5 分钟、新闻 10-15 分钟、研究 2-24 小时)。登录态结果单独隔离不进公共缓存。删除该文件即可清空缓存。

Q: 社交平台搜索为什么有时返回空?

A: Hacker News / 知乎、B 站、V2EX 零密钥即可用;Twitter、Reddit、微博、小红书需要外部登录态或第三方 API,未配置时会回退为空。社交结果不进入公共缓存,避免污染主搜索。

Q: argo_fetch 和 argo_pdf 是同一回事吗?

A: 不是。argo_fetch 抓 HTML 页面(HTTP 优先,反爬时升级浏览器),遇到 PDF Content-Type 会直接返回「PDF not supported」;PDF 请走 argo_pdf,它走 pdfplumber 或 PyMuPDF 把 PDF 转成 Markdown。

Q: 这个插件支持哪些平台?

A: package.jsonos 字段声明了 darwin 和 linux;Windows 上 npx 入口会自动 fallback 到 python 命令,Python MCP 核心本身跨平台,但 Chrome 截图等可选能力依赖图形环境。

上手难度

入门 — 一行安装命令就能跑,免费引擎够日常使用;想进阶再去看预算模式、时间窗、深度研究、登录态子技能(ego-search,默认关闭)。

已知问题与限制

  • 轻量 HTTP 抓取器(scripts/fetch.py)遇到 PDF Content-Type 会直接返回 PDF not supported 错误;要处理 PDF 必须使用独立的 argo_pdf 工具
  • argo_social_search 中的 Twitter / Reddit / 微博 / 小红书依赖外部登录态或第三方 API,未配置时返回空;零密钥可用平台仅为 Hacker News、知乎、B 站、V2EX
  • package.jsonos 字段仅声明 macOS 与 linux;Windows 上 bin/argo.js 通过 process.platform === 'win32' 改用 python 命令兜底,但可选的浏览器抓取能力在无图形环境时不可用
  • argo_fetch 走反检测浏览器降级(Patchright/Cloudflare 绕过)时,依赖系统安装的 Chrome 或 Playwright;缺失时会从 HTTP 抓取失败回退为空
  • 源码中未发现 TODO / FIXME / HACK 注释;上述限制均来自 README、mcp_tools.py schema 说明与 package.json 字段声明