Releases: taxueseek/argo
Release list
Argo v2.8.0
Argo v2.8.0 发布说明
版本:2.8.0
定位:从「帮你搜到」升级为「帮你核到」。新增证据闭环、求职搜索 v3、天气双源、通用搜索增强。
这次更新有什么(通俗版)
1. 证据闭环:搜索完告诉你「哪些链接值得点开核实」
以前:搜索给一堆结果和评分,但哪个能直接当依据、哪个得点进去看正文,全靠自己猜。核实过的链接,下次搜到也不会记得。
现在:搜索输出会明确标记:
- 金融、医疗、法律这类「说错会出事」的问题,结果自带
fetch_required提示:先核验再下结论 - 每条结果标注
fetch_suggested:这个链接建议点开核实(已核实过的自动跳过) - 用
--verify一键核验:系统自动抓取正文、计算「核实前后的证据分变化」,告诉你哪些结果经得起推敲、哪些只是标题党 - 核实过的链接会记住(URL→证据分缓存),下次搜到同一链接自动回填核实结果,不用重复核
实测效果:搜「贵州茅台股价」→ 提示需要核验 → --verify 核验新浪财经页面 → 证据分从 0 提升到 0.42(正文里确实有数字)→ 下次再搜,系统直接显示已核实。
怎么用:
python3 scripts/search.py "贵州茅台股价" --verify 3
# [verify] 核验 3 条,improved=2 unchanged=1 degraded=0 mean_delta=0.18
python3 scripts/research.py "台积电估值分歧" --verify 32. 求职搜索 v3:找工作更结构化
以前:聚合搜索能搜到岗位,但信息散、重复多,追踪新岗位要手动反复查。
现在(argo job 升级到 v3):
- 结构化字段:岗位名称、公司、地点、薪资、发布时间统一字段,可直接喂给下游处理
- 增量监控:只关注新增岗位,重复的自动指纹去重
- 更多源:新增 Ashby ATS 免 key 后端(不少创业公司用它),补充应届生求职网与北京高校就业信息源
3. 天气双源并行:问天气更稳
以前:天气只有一个源,挂了就搜不到,而且不支持空气质量。
现在:wttr.in 和 Open-Meteo 双源并行,一个挂了另一个顶上;支持地理编码(说「上海」自动定位)和空气质量查询。任何时候问天气都有结果。
4. 通用搜索增强:多两个免 Key 可选引擎
- Parallel 搜索(
PARALLEL_API_KEY):官方推荐 objective + search_queries 组合,多路召回;deep 模式自动切高级档,结果自带长文摘录 - You.com 搜索(
YDC_API_KEY):网页 + 新闻合并,时效性强;发布时间按查询时效敏感度动态化
两个引擎都接入时间窗过滤,无 Key 时自动降级不报错。
5. 稳定性修复
health_check崩溃修复(之前偶发崩溃会中断健康检查)- 日韩股票查询错配修复(日韩语股票查询不再串到中文行情源)
验证
- 证据闭环:新增
tests/test_evidence_loop.py20 项全过(证据提取 / 缓存隔离 / 回填 / 高后果门控 / verify 模式 / MCP 集成 / 边界守卫) - parallel/you:新增注册与无 Key 降级测试
- 全量回归:810+ passed,18 skipped
兼容性
- 无破坏性变更,v2.7.x 配置与用法继续有效
- 新能力默认开启(证据闭环随搜索输出),
--verify为显式触发不阻塞日常搜索
Argo v2.7.3 — 引擎激活 + 体验修复
Argo v2.7.3
这版主要干了一件事:让 150 个引擎里那些「注册了但一直没被用起来」的,真正派上用场,顺手修了一批会让搜索结果变差的小毛病。
以前不行,现在能行
1. arxiv 这类「认生」的接口,以前经常超时白等
有些搜索源对请求方式很挑剔,以前用的是最朴素的抓取方式,arxiv 实测 5 秒超时后 0 条结果。现在请求统一走了增强层:换浏览器身份、自动重试、跟随跳转。实测 arxiv 从「5 秒空手而归」变成「2 秒内 10 条有效结果」。
2. 25 个垂直引擎以前永远选不中
marginalia(独立博客)、usda(营养成分)、gov_policy(国务院政策)、cnii(日本学术)这些引擎其实都配了识别文档,但路由规则只认正则,它们永远排不上号,只能手动指定。现在语义匹配分数高的垂直引擎能自动顶上:问「独立博客 长尾」走 marginalia,问「营养成分 热量」走 usda,问「国务院 政策」走 gov_policy,问「日本 学术论文」走 cnii。
3. 查英文宏观数据以前 0 条
worldbank 和 eurostat 的国家名、指标名只认中文,「China GDP」「US inflation」「Japan population」全都查不到。现在中英文都认(还防了「focus」这类词被误认成美国)。实测 China GDP 19.5 万亿美元、Japan population 1.23 亿人,都能直接给出数字。
4. 问「今日金价」以前缓存 1 小时
48 个搜索域没配缓存时长,全部按 1 小时缓存,金价、快讯这类实时内容会过期 55 分钟。现在按时效分类:金价/快讯/天气 15 分钟,行情 5 分钟,学术资料 2 小时,百科 24 小时。
5. 说「快讯」反而查不到快讯
财联社电报这类引擎会把查询词当关键词过滤,而快讯标题里不会出现「快讯」两个字,于是全量榜单被滤空。现在纯触发词(快讯/美股/资讯)直接放行全量,具体主题(美联储/AI)才做过滤。
6. 萌娘百科这类站,搜索跳转到词条页就查不到
百科类搜索有时直接跳到词条页而不是结果列表,原来的解析器只认列表结构,于是恒空。现在能识别词条页,直接返回标题和简介。实测「初音未来」「东方Project」都能查到。
新增依赖
相比 v2.7.2 只多了一个可选依赖:
- curl_cffi(可选):模拟浏览器 TLS 指纹用的。装了之后对反爬站(比如 Cloudflare 保护的页面)抓取成功率更高;不装完全不影响日常使用。安装:
pip install curl_cffi
其他依赖不变:PyYAML(必需)、ddgs CLI(本地搜索用)、Chrome(页面截图用,可选)。
怎么装
跟之前一样,任选一种:
# 一键安装
curl -fsSL https://raw.githubusercontent.com/taxueseek/argo/main/scripts/install.sh | bash
# MCP 方式
npx -y github:taxueseek/argo
# 源码
git clone https://github.com/taxueseek/argo.git技术细节(给想看的人)
- 引擎层 HttpClient 接入(UA 轮换/重试/重定向跟随),
ARGO_ENGINE_HTTP_CLIENT=0可回退 - TF-IDF 强语义注入(≥0.6 分),通用引擎黑名单,注入位置在 primary 扶正后
- env 占位缺失过滤(github 无 token 从 401 恢复匿名 API)
- 70 域 TTL 全覆盖
- 熔断 empty 语义修复、查询改写去重、慢源 6s 收紧、wave-2 提前终止
- 国际引擎中文 URL 编码修复(18 处)
- open_meteo geocode 加 language=zh(中文地名恢复)
- europeana 已禁用(上游 demo key 失效 401)
- 抓取链升级 fetch_v3(UA 轮换 + TLS 指纹 + Wayback 降级)
- 版本号统一 2.7.3
测试:740 passed, 18 skipped,无回归。
Argo v2.7.2
Argo v2.7.2 发布说明
版本:2.7.2
定位:在 2.7.1 基础上,新增「登录态专业搜索」子技能,并系统改进了搜索路由和服务层。
现在具备的几种搜索能力
1. 通用搜索 + 垂直搜索,双管齐下
日常问题走通用网页搜索;一问到行情、影视、体育、宏观这类「有标准答案」的问题,自动切到垂直源直接给答案,而不是扔给你一堆链接。目前约 120+ 个源、60+ 业务域。
2. 缓存:不重复花冤枉钱
时效性没那么强的内容(百科类、历史数据这类),第一次查完会进缓存,之后同样的查询直接命中,不再每次都走一遍 API。双层缓存(内存 + SQLite),热查询约 10ms 级返回。
3. 专为 Agent 设计,更省 Token
产出是「证据候选 + 可信度分解」的精简 JSON,不是长篇网页;MCP 响应可以按需裁剪,snippet 可控,不会撑爆 Agent 的上下文。比常规模型自带的搜索能力更专业、更省 Token。
4. 深度研究
把一个笼统的问题拆成多个子问题,多源并行采集,最后给出「还差什么证据」的缺口提示。适合综述、调研这类要全面、要扎实的场景。
5. 登录态专业搜索(专业模式,默认关闭)
知乎、小红书、公众号这类要登录才能看的内容,以及 JS 渲染页、反爬页,用真实浏览器配合登录态去搜。默认关闭,需要时开启,依赖 ego lite 和 WebBridge 两个东西,详见下文第 1 节。
这次更新有什么
1. 新增 ego-search:登录态专业搜索(默认关闭)
以前:知乎、小红书、微博、公众号这类需要登录才能看的内容,普通搜索拿不到正文;靠浏览器渲染的页面(JS 页面、反爬页、SPA)也经常抓不回来。
现在:新增 ego-search 子技能,用真实浏览器去搜这些内容。它能继承你的登录状态,抓到登录墙后面的正文;对渲染页、反爬页也能正常抓取;还能在已登录的站点里直接调它的接口拿数据(比如知乎搜索接口),比翻页面更干净。
注意:这个子技能默认是关闭的,因为要动真实浏览器和你的登录态。需要你明确要求开启后,运行下面这条命令(在 argo 目录下):
python3 sub-skills/ego-search/scripts/ego_search.py enable
开启之后,常用操作:
# 用浏览器去搜索(bing/baidu/google 三个搜索引擎可选)
python3 sub-skills/ego-search/scripts/ego_search.py search "AI agent 浏览器自动化" --engine bing --n 8
# 抓一个页面正文(登录墙、JS 渲染页都行)
python3 sub-skills/ego-search/scripts/ego_search.py fetch "https://example.com/article" --focus 关键词
# 调登录站点自己的接口拿数据
python3 sub-skills/ego-search/scripts/ego_search.py api "https://www.zhihu.com/api/v4/search_v3?t=general&q=AI代理&limit=5" --origin "https://www.zhihu.com"
查看状态:python3 sub-skills/ego-search/scripts/ego_search.py status;关闭:python3 sub-skills/ego-search/scripts/ego_search.py disable。
它依赖两个东西(装好其中一个就能用,两个都装更好):
| 依赖 | 是什么 | 什么时候用 |
|---|---|---|
| ego lite | 一个专门给 Agent 用的浏览器应用(仅 macOS),装好并完成一次初始化后会提供 ego-browser 命令 |
默认首选。它的优势是每个任务用独立空间,不抢你正在用的浏览器标签页 |
| WebBridge | 一个浏览器扩展桥,可以复用你 Chrome/Edge 里已经登录的会话 | ego lite 没装,或想直接沿用你日常浏览器的登录态时用 |
本机两个依赖都已装好:ego lite 的 ego-browser(版本 0.4.5.9)和 WebBridge 均在线,专业搜索模式默认关闭。
一个使用提醒:登录态搜到的结果不会写入公共搜索缓存(防止污染大家共享的缓存),需要时用专门的合并命令把常规结果和登录态结果放在一起分析。
2. 搜索兜底更稳了
以前:微信公众号、财联社、同花顺、知乎热榜、Stack Overflow、V2EX 等 16 个垂直源,主引擎故障时整次搜索跟着失败。
现在:主引擎出问题时,会自动切到通用的免费搜索源顶上,单个源故障不再拖垮整个查询。
3. 路由更聪明
- 多意图识别:一次查询可以同时判断是查定义、查事实、查新闻、做对比,还是看社交舆情,不同意图用不同的引擎数量和并发方式。
- 统一健康视图:所有引擎的健康状态汇总成一张统一视图;免费源作为单一真源统一管理;故障后的恢复手段分层次、更完整。
4. 多语言搜索更准
- 日文/韩文查询不再被中文引擎干扰:以前搜日文内容会混进博查、字节、搜狗等中文引擎,噪声很大;现在会自动剔除。
- 显式指定语言生效:说「用日文搜」「in English」这类话,会真的按那个语言去搜,而不是按默认语言处理。
- 语言参数有测试锁定:Bing 的 setlang、Google 的 hl 等 URL 语言参数全部有自动化测试守着,不会悄悄失效。
5. 服务层拆得更清爽
- MCP 服务文件从 970 行拆成「工具定义 / 执行逻辑 / 网络传输」三个模块,10 个工具一个不少、行为不变,只是结构更好维护。
- 启动预热覆盖到了本地文件搜索模块,首次调用更快。
6. 具备安全防护
- 登录态结果与公共缓存隔离:登录态搜到的内容不写入公共搜索缓存,防止污染大家共享的数据。
- 抓取前 URL 安全检查:ego-search 抓取前会做 URL 白名单与 IP 段校验,防止恶意链接诱导访问内网或云元数据地址。
- 异常只记本地日志:出异常时仅记录本地日志便于排查,可整体开关,不影响搜索本身。
验证
- 全量测试:497 passed,无失败。
- 10 个 MCP 工具与 2.7.1 完全一致,没有回退。
Argo v2.7.1
Argo v2.7.1 发布说明
版本:2.7.1
定位:— 安全加固与路由/研究准确性修复,以「重新定义问题」为纲的系统性加固版。在 v2.7.0(垂直模态卡)基础上,修复三层真实缺陷:SSRF 防护缺失、路由健康状态语义漂移、深度研究 local_first 浪费;并做配置/代码结构性清理。
一句话
v2.7.1 = 安全加固(SSRF 防护)+ 路由/研究准确性修复 + 配置易用性清理。全部修改以可量化测试锁定(新增 22 个测试,全量 363 passed)。
安全性
SSRF 防护(新)
问题:fetch/crawl/http_client 直接请求任意 URL 并跟随重定向,搜索结果或恶意页面链接可诱导抓取内网/云元数据地址(`xxx 等)。
修复:新增 scripts/url_safety.py 统一拦截,接入 fetch_v3 / fetch.py / http_client(含 curl fallback):
- scheme 白名单(仅 http/https)
- 主机名黑名单(localhost、裸单标签主机、
.local/.internal/.lan等) - DNS 解析后 IP 段检查(私有 / 环回 / 链路本地 / CGNAT / 保留段,IPv4+IPv6)
- curl fallback 重定向由 Python 侧逐跳安全跟随,curl 自身不跟随
- 显式放行:
ARGO_ALLOW_PRIVATE_URLS=1
测试:tests/test_url_safety.py(10 例:IP 段 / 主机名 / scheme / fetch 入口 / curl 入口)。
准确性
路由健康状态语义漂移(根因修复)
问题:sub-skills/local-search/health_check.py 与 scripts/health_check.py 顶层模块名冲突。任何一次 local_search 进程内调用(engines.py)或测试导入都会把 sub-skills/local-search 插入 sys.path[0],劫持 import health_check 解析。route 的健康过滤落到 fallback 分支,改用 health_probe.get_engine_status 过滤所有引擎——而 health.db 中 wikipedia 等 8 个非 local 引擎因 HEAD 探测失败被标记 unavailable,导致「What is the capital of France」这类查询静默丢失 wikipedia,combo 退化为 ['byted', 'local_openstreetmap']。
修复(三层):
sub-skills/local-search/health_check.py→local_health_check.py,消除顶层命名冲突route.py健康过滤 fallback 与主路径语义对齐:只对local_*引擎做健康判定,非 local 引擎无条件保留engines.py/mcp_server.py的sys.path.insert(0, ...)→append,sub-skills 模块不再劫持 scripts 同名模块
health_probe 只探测 local_*(消除慢源误报)
问题:health_probe 每 5 分钟对 120+ 引擎做 1.5s 超时 HEAD 探测,慢源(wikipedia/arxiv/bocha 等)连失败 9 次被标 unavailable,数据无消费者(route 只查 local_*)。
修复:probe_all_engines 只探测 local_* 子引擎;清理 health.db 中 11 条非 local 脏记录。测试:tests/test_health_probe_scope.py。
macro_data 国家分流修复
问题:非美国宏观查询(「中国GDP」「日本通胀」)时,worldbank 前置逻辑被后续的 primary 扶正覆盖,fred 仍居首位。fred 先跑 + early-stop 会用美国序列冒充「中国GDP」答案。
修复:route.py primary 扶正跳过「macro_data + 非美国国家词」场景。验证:中国GDP/日本通胀/欧元区失业率 → worldbank 优先;美国CPI → fred 优先。
路由效率与深度研究
local_first 决策树浪费修复
问题:research.py 的 _search_one 在 use_local_first 分支前先无条件跑一次全量搜索,结果被本地结果覆盖;本地结果不足时又跑第二次全量。每次子查询多花一次完整搜索的延迟与成本。
修复:先本地聚合,结果不足 3 条才升级全量;非 local_first 只跑一次。测试:tests/test_route_research_fixes.py::TestLocalFirstEfficiency(3 例,断言调用序列 ['local_search'] 或 ['local_search', 'auto'])。
配置易用性
config.py 复制粘贴合并
_load_external_engine_specs 中 engines/*.yaml 与 engines/specs/*.yaml 两段几乎相同的加载逻辑合并为 _load_dir,新增引擎目录只需一行。
单一真源清理
删除根目录 local-search/ 旧副本死代码(v2.2/v2.3 时代遗留,已无任何引用),已移入 .trash/argo/2026-08-06_local-search/(git 历史仍可恢复)。磁盘上唯一真源 = 本仓库。
engines_builders_data.py 拆分
3157 行按域拆分:宏观数据(FRED / 汇率 / 世界银行 / 国家统计局 / Eurostat,约 700 行数据表密集区)移至 engines_builders_data_macro.py,原文件降至 2458 行。路由层 is_foreign_macro_query import 同步更新。
验证
python3 -m pytest tests/ -q --ignore=tests/test_full.py --ignore=tests/test_integration.py
# 363 passed, 12 skipped
python3 -c "import sys; sys.path.insert(0,'scripts'); from route import route_query; print(route_query('中国GDP')['engines_combo'])"
# ['worldbank', 'fred']真实查询矩阵(live E2E,14 组多语 × 场景金标)
python3 scripts/matrix_search_eval.py --live(修复前 v2.7.0 与修复后对比):
| 指标 | 修复前 | 修复后 |
|---|---|---|
| live PASS | 12/13 | 13/13 |
| domain_acc(域命中) | 100% | 100% |
| engine_acc(主引擎命中) | 100% | 100% |
| selection_hit(金标命中) | 92.3% | 100% |
| pollute(垂直污染) | 0 | 0 |
唯一失败项 L_ja_gen(「アニメ おすすめ」)由 film_search 日文触发词误捕
(imdb 对动漫推荐无召回)导致。修复:从 film_search 日韩触发词移除纯题材词
「アニメ」「애니메이션」,保留「映画」「영화」等明确影视词。「アニメ おすすめ」
现路由至 general_search/local_bing(日文参数),金标「アニメ」命中。
离线矩阵同步:--offline 119 PASS / 0 FAIL。
遗留项(非阻塞):engines_builders_data.py(2458 行)仍可继续按域拆分;search.py(1686 行)编排层可进一步提取;decompose_query 的「和/与/及」对比拆分存在语义误伤(拆出子查询质量有限但原始查询不丢,成本低,暂不调整)。
Argo v2.6.0
Argo v2.6.0 发布说明
版本:2.6.0
仓库:taxueseek/argo
定位:给 Agent 用的统一搜索与证据核验——面向不同领域、不同语言、不同需求,尽量给出能核验、能吸收的材料。
一句话
搜索本来就该「问啥像啥、用啥语就懂啥语」。本版两件大事:多语言搜索从「中英优先」扩到真正多语可用;垂直领域继续补全(影视、体育、地理、组织、音乐等),并加上空结果恢复时的防污染门禁——查询越用越准,少被无关包管理器、快讯源带偏。
用大白话看本版
1. 多语言:不只中英文
以前路由和语言参数主要围着中英转,日文、韩文、俄语等要么被当成「英文网页问题」,要么误塞进中文专用源。
现在会先认你在用什么语言,再决定:
- 用哪套引擎语言参数(例如 Bing 的
setlang、Google 的hl) - 要不要补上本地多语言源(如
local_bing/local_google) - 中文专用源(知乎、微信搜狗、A 股快照等)别误伤非中文查询
- 搜不到时,可以按策略做跨语言回退(不是硬翻译整句,而是用通用源 + 偏好语言再试)
你用日文问推荐、用韩文问电影、用俄文问怎么写脚本,系统会尽量按「这门语言的用户」来选路,而不是一律按英文网页处理。
2. 垂直领域:问啥走啥专线
在金融、宏观、化学等答案源之外,本版把更多「一问就该有标准答案」的场景接上专线,例如:
| 你这样问 | 大致会怎样 |
|---|---|
| Inception 导演 / 肖申克的救赎 主演 | 影视域 → IMDb 等 |
| 梅西俱乐部 / 库里 球队 / Ronaldo club | 体育域 → TheSportsDB 等 |
| 埃菲尔铁塔在哪 / where is Eiffel Tower | 地理实体 → OpenStreetMap 等 |
| NASA founding year / 国务院职能 | 组织实体 → Wikidata 等 |
| 周杰伦 专辑 / Taylor Swift album | 媒体音乐 → iTunes 等 |
| 贵州茅台股价 / AAPL stock | 继续走行情专线(本版仍保留并加固) |
目标很简单:少在泛网页标题里碰运气,多直接打到能给答案的源。
3. 空结果也会「聪明地重试」,且不乱拉源
搜不到时会按成本从低到高试放宽、换引擎、跨语言。换引擎时只允许通用网页 / 百科,或同一能力族——不会因为兜底,突然从影视查询跳到 PyPI、npm、金十快讯这类无关垂直源。
4. 能力族与回归
搜索源按「能力族」归类(全网、学术、代码、行情、百科、体育…),同族可互换、测试可按族断言。配套多语言 × 场景矩阵测试与 P0/P1 回归,方便升级后自检有没有倒退。
为什么值得升级
| 你可能遇到的问题 | v2.6.0 怎么处理 |
|---|---|
| 日文 / 韩文 / 俄语查询总像「英中网页乱搜」 | 统一语言检测 + 引擎语言参数 + 语言补充源 |
| 非中文问题却出现知乎、搜狗微信 | 语言门禁:非中文主查询避开中文专用源 |
| 问电影 / 球星 / 地标 / 机构,却只得到泛网页 | 影视 / 体育 / 地理 / 组织 / 媒体域补全 |
| 恢复空结果时结果「串味」(包、快讯混进 unrelated 查询) | recovery L3 族门禁 + 查询信号过滤 |
| 不知道多语言有没有回归 | matrix_search_eval.py + regression_p0p1.py |
本版增量(按主题)
1. 多语言搜索
lang_detect:中 / 英 / 日 / 韩 / 拉丁变音 / 西里尔 / 泰 / 阿 / 希伯来 / 希腊 / 天城体等主语言判定;假名、谚文优先于纯汉字误判为中文(纯汉字日文人名等地名仍可能判中文,后续可继续收紧)- 路由:
primary_lang驱动语言补充源与 must_keep;日韩优先本地语言友好引擎 lang_pref:中英基线 + 系统 locale + 使用习惯,弱信号查询时决定引擎语言- recovery L4:跨语言 / 基线中文反向补源(
mode=fast可跳过以控延迟) - 引擎层:HTML 构建器动态覆盖
setlang等参数
2. 垂直域补全与质量
- 域:
film_search/sports_search/geo_places/org_entity/media_search等(配置真源仍在config.yaml) - 引擎:IMDb、TheSportsDB、iTunes(中文区与专辑实体等)、Wikidata、OpenStreetMap 等衔接
- 别名与解析:如「库里」→ Stephen Curry;世界杯年份正则修复等
- 空结果恢复:禁止 code / 快讯等无关族污染;结果需带查询信号才可吸收
3. 能力族与测试
engine_families:web_general / knowledge / sports / media_book / finance_* …- 回归:
scripts/regression_p0p1.py、scripts/matrix_search_eval.py(offline / live) - 报告基线:
tests/matrix_search_report.json等
4. 相对 v2.5.1 的延续
v2.5.1 的日常 combo 预算、答案域 early-stop、研究 boost 不锁死、金融 / 宏观 / 化学专线全部保留,本版是在之上加「语言维度」和「更多垂直场景」。
已知边界(诚实说明)
- 纯汉字日文(如仅「宮崎駿」、无假名)语言检测可能仍判中文。
- 日韩垂直关键词未完全对齐中英 pattern 时,可能落到通用
local_bing,而不是 IMDb / SportsDB——通用路径仍可用,专线覆盖会继续加。 - 个别 API(体育库限流、百科 SSL)偶发失败时,依赖 recovery + 通用源兜底。
安装(任选)
方式 A:一键脚本
curl -fsSL https://raw.githubusercontent.com/taxueseek/argo/main/scripts/install.sh | bash方式 B:npx 启动 MCP
# 需 Node.js 18+ 与 Python 3.10+,并 pip install pyyaml
npx -y github:taxueseek/argo方式 C:本 Release 源码包
tar -xzf argo-2.6.0.tar.gz
cd argo-2.6.0
pip3 install pyyaml
python3 scripts/search.py "Inception movie director" --json
python3 scripts/mcp_server.py验证
python3 --version # 3.10+
python3 -c "import yaml; print('PyYAML OK')"
python3 scripts/search.py --list-engines
python3 scripts/regression_p0p1.py --offline
python3 scripts/matrix_search_eval.py --offline
python3 -m pytest tests/test_multilingual.py tests/test_unit.py -q版本对照(简)
| 版本 | 侧重 |
|---|---|
| v2.6.0 | 多语言搜索;影视/体育/地理/组织/媒体等垂直补全;recovery 防污染;矩阵回归 |
| v2.5.1 | 金融/宏观/化学答案源加厚;日常 combo 预算;研究 boost |
| v2.5.0 | 安装与介绍页;查询改写;路由热缓存;MCP 紧凑响应 |
Argo v2.5.1
Argo v2.5.1 发布说明
版本:2.5.1
仓库:taxueseek/argo
定位:给 Agent 用的统一搜索与证据核验——不只返回链接,而是尽量给出能核验、能吸收的材料。
一句话
本版重点不是「再堆几个网页搜索」,而是让 各类搜索更对口、日常更快、深度研究更全:金融行情、宏观数据、化学物种等垂直源进日常路径;长尾源留给深度研究;策略收进统一的 engine_policy,减少越改越慢。
用大白话看本版
- 问股价更像查行情:A 股走新浪 / 腾讯等快照,美股走 Finviz 专线,够一条有用结果就停,不必先翻十页新闻。
- 问宏观更像查数据:CPI、GDP、汇率等走 FRED、世界银行、国统局、欧统、汇率源;中国 GDP 不会轻易被美国序列「抢答」。
- 问化合物更像查字典:分子式、CAS 等优先 PubChem,少被泛网页标题淹没。
- 日常少开引擎,研究再放宽:平时 combo 精简(省时间、少噪音);深度研究 / deep 才放开档案、研报类长尾源。
- 深度研究「抬」垂直源,不「锁」死:子查询用 boost 把金融 / 学术源顶到前面,失败时仍可走通用路由,避免整条空结果。
为什么值得升级
| 你可能遇到的问题 | v2.5.1 怎么处理 |
|---|---|
| 搜「茅台股价」又慢又杂 | 答案域 + early-stop + 短 combo,冷路径常见几百毫秒级 |
| 美股和 A 股搅在一起 | us_stock 与 stock_query 分流 |
| 宏观问句国家错位 | 国别词分流(如 worldbank 前置) |
| 引擎越加越多,日常反而变慢 | engine_policy:日常预算截断,研究全量 |
| 深度研究指定单一引擎,源挂了就空白 | boost 进 auto,不硬锁 |
| 不知道改完会不会又倒退 | scripts/regression_p0p1.py 离线 + 联网回归 |
本版增量(按主题)
1. 垂直搜索能力(金融 · 日常 · 数据)
在 v2.5.0 广义垂直源基础上继续加厚 答案型 源与域规则,例如:
| 方向 | 代表能力 | 典型问法 |
|---|---|---|
| A 股 / 港股行情 | 新浪行情、腾讯行情、东财资金流 | 「贵州茅台股价」「主力资金」 |
| 美股 | Finviz(日常);Seeking Alpha 等偏研究 | 「AAPL 盘前」 |
| 宏观与汇率 | FRED、世界银行、国统局、欧统、实时汇率 | 「US CPI」「中国 GDP」 |
| 化学 / 药学 | PubChem | 「阿司匹林 分子式」 |
| 生物物种 | GBIF | 学名 / 物种检索 |
| 互联网标准 | RFC Editor | 「RFC 9110」 |
| 图书与公告等 | 微信读书、豆瓣、巨潮等(按域启用) | 书名 / 公告类查询 |
路由仍以 config.yaml 的 domain 规则 + TF-IDF 为准;配置真源不变。
2. 引擎分层与 combo 预算(性能护栏)
新增 scripts/engine_policy.py,route_query / super_search 贯通 depth、context、engines_boost:
| 场景 | 行为(简) |
|---|---|
日常 depth=fast / `mode=fast |
budget` |
日常 auto + balanced |
最多约 3 个 |
context=research 或 depth/mode=deep |
不截断;可含研究专用源 |
| 地理类查询 | 预算后仍尽量保留 OpenStreetMap(must_keep) |
目标:防止「源越加越多 → 日常越来越慢」 再次发生。
3. 深度研究:vertical_engines + boost
- 选题 profile(如 finance / academic / ai)增加
vertical_engines。 collect_sources:始终 auto,用engines_boost抬垂直源,不再轮转锁死单引擎。- MCP
argo_search默认envelope=False,少造 candidates 开销;研究紧凑包可带 vertical 元数据。
4. 质量与回归
- 答案域
early_stop_min_results等与此前 P0 修复一并纳入本线。 - 回归:
python3 scripts/regression_p0p1.py --offline(无网)或--all(含联网)。 - 单测对齐「日常 budget 下 stock combo 不一定含 eastmoney;deep 路径仍含」等语义。
安装(任选)
方式 A:一键脚本
curl -fsSL https://raw.githubusercontent.com/taxueseek/argo/main/scripts/install.sh | bash方式 B:npx 启动 MCP
# 需 Node.js 18+ 与 Python 3.10+,并 pip install pyyaml
npx -y argo-search
# 若 npm 尚未同步最新,可用:
npx -y github:taxueseek/argo方式 C:源码 / 本包
# 解压本 Release 的 argo-2.5.1.tar.gz 或 zip 后:
cd argo-2.5.1
pip install pyyaml
python3 scripts/search.py "贵州茅台股价" --json
python3 scripts/mcp_server.py验证
python3 --version # 3.10+
python3 -c "import yaml; print('PyYAML OK')"
python3 scripts/search.py --list-engines
python3 scripts/regression_p0p1.py --offline
python3 -m pytest tests/test_unit.py tests/test_mcp_compact.py -q可选冷路径体感(需网络):
python3 scripts/search.py "贵州茅台股价" --no-cache --json
python3 scripts/search.py "阿司匹林 分子式" --no-cache --json升级注意
- 从 v2.5.0 升级:能力兼容;日常路由 combo 可能更短(有意为之)。若脚本曾断言「eastmoney 必在日常 combo」,请改为检查主源或
depth=deep。 - 从 v2.4.x 升级:建议整包替换后再挂 MCP / Skill 符号链接。
- API Key 仍全部可选;不配则走免费 / 本地引擎(如天气源无 key 会回退通用引擎)。
资源
| 资源 | 说明 |
|---|---|
| 源码包 | argo-2.5.1.tar.gz / argo-2.5.1.zip(本 Release Assets) |
| 说明文档 | 仓库 README |
| 上版说明 | v2.5.0 |
| 回归 | scripts/regression_p0p1.py |
版本线(简)
| 版本 | 要点 |
|---|---|
| v2.5.1 | 垂直答案源加厚;引擎分层 + combo 预算;研究 boost;约 110 源 |
| v2.5.0 | 安装双路径 + 介绍页;改写不污染路由;热路径缓存;模块拆分 |
| v2.4.1 | MCP 预热与紧凑回包;深度研究子技能;引擎生命周期 |
| v2.4.0 | 低分回退、熔断负缓存、柔性命中、engine_outcomes |
MIT License © 2026 taxueseek
Argo v2.5.0
Argo v2.5.0 发布说明
版本:2.5.0
仓库:taxueseek/argo
定位:给 Agent 用的统一搜索与证据核验——不只返回链接,而是尽量给出能核验、能吸收的材料。
一句话
本版在 v2.4.1「搜得快、回得省、研得深」之上,把装得上、用得稳、路由更准补齐:介绍页重写,安装脚本 + npx 双路径,查询改写与路由解耦,引擎与 MCP 模块拆分,配置单一真源。
用大白话看本版
- 更好装:一条
install.sh,或npx -y argo-search挂 MCP;Skill 用符号链接挂入口,不复制多份代码。 - 搜得更对路:口语可以改写再检索,但路由仍看原问题,减少「苹果股价却进购物站」这类误吸。
- 重复问更快:路由热路径可缓存;熔断 + 负缓存,挂掉的源不会一直拖后腿。
- Agent 更省上下文:MCP 紧凑回包(延续并强化 v2.4.1),snippet 可控。
- 代码更好维护:engines / MCP 大文件拆分;
config.yaml为引擎真源,backends 可派生。
为什么值得升级
| 你可能遇到的问题 | v2.5.0 怎么处理 |
|---|---|
| 介绍页还是早期版本,不知道怎么装 | README 重写:安装脚本 / npx / 克隆 / Skill 链接 |
| 只有 clone,没有一键或 npm 入口 | scripts/install.sh + npx -y argo-search |
| 查询改写把域路由带偏 | 改写只改检索串,路由永远用原始 query |
| 大文件难改、MCP 与引擎缠在一起 | engines_base / builders 拆分;mcp_tools / mcp_payload |
| 本机路径、Key 写进仓库 | 社交引擎改为仓库相对路径;installs.local.yaml gitignore |
本版增量(按主题)
1. 安装与介绍
- 新增
scripts/install.sh:克隆/更新到~/.local/share/argo(可改)、装 PyYAML、可选--link挂 Skill。 - npx:
package.json提供argo-search→bin/argo.js(自动找python3/ARGO_PYTHON)。 - README / SKILL 对齐约 88 源、16 MCP 与当前能力。
- Skill 入口推荐
link_source.py(符号链接,禁止 rsync 多副本)。
2. 路由、改写与性能
- 查询改写(v2.5 能力)与域匹配解耦。
- 路由热路径缓存(重复路由接近亚毫秒级)。
- 保留熔断、负缓存、柔性命中、
engine_outcomes(含 v2.4.x 基础)。
3. 架构与真源
- engines 拆为
engines.py门面 +engines_base+ builders。 - MCP 工具 schema / 紧凑序列化可拆分维护(与 v2.4.1 紧凑回包一致方向)。
config.yaml单一真源;sync_backends.py派生注册表。- 与 v2.4.1 合并:plan / archive / 深度研究选题、引擎生命周期等能力仍在。
4. 脱敏与发布卫生
- 配置中引擎命令改为仓库内相对路径(如
scripts/social_engines/...)。 - 文档示例使用
/path/to/argo、~/.local/share/argo等占位,不提交本机绝对路径与真实 Key。
安装(任选)
方式 A:一键脚本
curl -fsSL https://raw.githubusercontent.com/taxueseek/argo/main/scripts/install.sh | bash方式 B:npx 启动 MCP
# 需 Node.js 18+ 与 Python 3.10+,并 pip install pyyaml
npx -y argo-search
# 若 npm 尚未同步最新,可用:
npx -y github:taxueseek/argo客户端示例:
{
"mcpServers": {
"argo": {
"command": "npx",
"args": ["-y", "argo-search"]
}
}
}方式 C:源码 / 本包
# 解压本 Release 的 argo-2.5.0.tar.gz 或 zip 后:
cd argo-2.5.0
pip install pyyaml
python3 scripts/search.py "Python asyncio" --json
python3 scripts/mcp_server.py验证
python3 --version # 3.10+
python3 -c "import yaml; print('PyYAML OK')"
python3 scripts/search.py --list-engines
python3 -m pytest tests/test_unit.py tests/test_mcp_compact.py -q升级注意
- 从 v2.4.1 升级:能力兼容;建议重新拉代码或解压本包,再按 README 检查 MCP 路径。
- 若本机曾用 rsync 复制多份 argo,请改回一份真源 +
link_source.py。 - API Key 仍全部可选;不配则走免费 / 本地引擎。
资源
| 资源 | 说明 |
|---|---|
| 源码包 | argo-2.5.0.tar.gz / argo-2.5.0.zip(本 Release Assets) |
| 说明文档 | 仓库 README |
| 上版说明 | v2.4.1 |
版本线(简)
| 版本 | 要点 |
|---|---|
| v2.5.0 | 安装双路径 + 介绍页;改写不污染路由;热路径缓存;模块拆分;配置真源 |
| v2.4.1 | MCP 预热与紧凑回包;深度研究子技能;引擎生命周期;搜索体验标准化 |
| v2.4.0 | 低分回退、熔断负缓存、柔性命中、engine_outcomes |
| v2.2–v2.3 | 证据两阶段、中文信源、fetch 栈 |
MIT License © 2026 taxueseek
Argo v2.4.1
Argo v2.4.1 发布说明
版本:2.4.1(无后缀)
仓库:taxueseek/argo
定位:给 Agent 用的统一搜索与证据核验——不只返回链接,而是尽量给出能核验、能吸收的材料。
一句话
本版把「搜得快、回得省、分得清、研得深」串成一条可交付链路:MCP 更轻,日常搜索更像搜索引擎,深度研究成为 argo 内建的专业子技能,而不是另一套外挂流程。
用大白话看本版
- MCP 性能:启动后会在后台预热;默认回包变短,Agent 少吃上下文;社交多平台并行,少排队。
- 主技能 / 子技能斜杠:
/argo是总入口;搜一下用/argo-search;认真做研究用/argo-research//deep-research;科研、金融有专用斜杠。 - 深度研究在 argo 里面:不额外挂别的 skill;学术、金融等选题自带引擎组合和质量门禁。
- 搜的效果:性能优化不改「谁排前面」;变的是回包有多肥。需要长摘要就关
summary。
为什么值得升级
| 你可能遇到的问题 | v2.4.1 怎么处理 |
|---|---|
| MCP 首调慢、回包巨大、占满上下文 | 后台预热 + 紧凑 JSON + 默认精简摘要 |
| 日常问答和「做一份深度研究」混在一起 | 分层:日常 SERP vs research 子技能 |
| 研报/综述没有结构、容易编造 | academic / finance 等 profile + 质量门禁 |
| 引擎 Key 缺失、坏引擎拖垮路由 | 引擎生命周期:声明、env、准入、routable |
| 搜完不知道链接在哪 | 正文 [n],链接统一沉底「相关信源」 |
本版增量(按主题)
1. 性能与 MCP 接入
- 启动与首包:
initialize/tools/list后后台预热search与缓存,降低首次tools/call冷启动感。 - 回包体积:默认紧凑序列化(无缩进);
summary默认开启,截断过长 snippet、去掉 plan/candidates 等调试重字段。 - 并发:社交多平台搜索改为并行,减少串行等待。
- 模块缓存:进程内复用已加载模块,避免重复 import。
- 重要说明:上述优化主要发生在 MCP 封装与传输层,不改变多引擎召回、路由与 RRF 排序本身。若 Agent 需要更长摘要,调用时设置
summary: false。
2. 搜索体验标准化
- 日常搜索:默认不归档;人读输出「标题/摘要在上、链接在下」;JSON 提供
sources[]。 - 深度研究:默认归档(可退出);多跳发现包 + 引用与缺口;归档 ≠ 已核验正文。
- 输入分流:纯 URL / 已知链接优先 fetch 或 handoff,避免误走关键词热搜。
- 引擎治理:外置声明、环境变量注入、
engine_validate准入;自动路由只使用 routable 引擎。
3. 深度研究子技能(全部在 argo 内实现)
深度研究 不 在运行时调用其他 skill。科研/金融的方法已内化进选题配置:
| 选题 | 用途要点 |
|---|---|
academic |
文献/综述向;学术引擎优先;问题框架与局限;禁止编造 DOI/论文 |
finance |
IC 风格信息包;信源级别;盲区与风险;免责声明(非买卖建议) |
investment / ai / tech / tool / internet / social |
各域引擎组合、新鲜度与模板子查询 |
- 支持显式
--topic,也可按查询启发式自动推断。 - 输出可带:
quality_gates、report_sections、source_grades、disclaimer等,方便 Agent 自检与成文。
python3 scripts/research.py "CRISPR 脱靶综述" --topic academic --json
python3 scripts/research.py "台积电估值分歧" --topic finance --json
python3 scripts/research.py --topic help4. 主命令与子技能斜杠(Agent / 客户端侧)
| 斜杠 | 角色 |
|---|---|
/argo |
主入口,按子命令分流 |
/argo-search |
日常搜索 |
/argo-research · /deep-research |
深度研究 |
/argo-research-academic |
科研深度 |
/argo-research-finance |
金融深度 |
/argo-evidence · /argo-clarify · /argo-fetch |
核验 / 消歧 / 抓取 |
自然语言触发示例:「深度研究」「文献综述」「deep research」等 → 走 research,禁止用日常搜索冒充。
5. 其它工程能力(一并交付)
- 工作区搜索归档分层与索引(研究默认开、日常默认关)
- FxTwitter 等社交路径与打包能力的持续补强(以仓库代码为准)
- 单元测试覆盖选题 profile、MCP 压缩逻辑等
升级与安装
git clone https://github.com/taxueseek/argo.git
cd argo
# 或解压本 Release 附件 argo-2.4.1.zip
# CLI 示例
python3 scripts/search.py "你的查询"
python3 scripts/research.py "复杂议题" --json
# MCP:将 mcp_server.py 配置到客户端(Claude / Kimi / 等)
python3 scripts/mcp_server.py建议关注:环境变量中的引擎 Key、以及 python3 scripts/search.py --list-engines --detail 查看 routable 状态。
兼容性说明
- 公共版本号统一为 2.4.1(无 beta / rc 后缀)。
- 既有
argo_search/argo_research等工具名保持兼容;research 新增topic、summary等可选参数。 - 默认 MCP
summary=true可能使摘要更短,不影响排序结果列表;需要长摘要请显式关闭。
写在最后
好的搜索不是让你看得更多,而是让你更敢下结论——以及清楚什么时候还不该下结论。
v2.4.1 把「省上下文、分清日常与深度、把专业纪律写进工具」当作同一件事交付。欢迎 Issue / PR。
MIT License © 2026 taxueseek
Argo v2.4.0
Argo 阿尔戈 v2.4.0
统一搜索与证据核验:给 Agent 可吸收、可核验的材料,而不只是链接列表。
本版功能更新
产品与文档
- 首页 README 中文重写,对齐当前能力(证据两阶段、预算模式、MCP、社交等)
- 架构图 / 头图更新为 Argo 品牌与中文说明
- 主路径使用内嵌本地引擎,不再依赖外挂 SearXNG
路由与质量
- TF-IDF 低分回退通用引擎,避免误进垂直源
- 社交引擎误吸过滤
- SERP / 跳转壳识别加强(含 Bing / Google / 搜狗微信列表)
缓存与性能
- 缓存键区分 depth / mode;max_results 柔性命中
- 空结果短 TTL;单引擎缓存与 fetch URL 缓存
- 熔断与查询级负缓存,减少空转等待
- 热查询约 10ms 级(相对冷启动约两个数量级)
可观测
- engine_outcomes:区分 ok / no-results / timeout / 熔断跳过等
- RRF 保留 consensus_engines;fast 模式可跳过精排并回传状态
使用
git clone https://github.com/taxueseek/argo.git
cd argo
pip install pyyaml
python3 scripts/search.py "贵州茅台股价" --json
python3 -m pytest tests/test_unit.py tests/test_evidence_v22.py -q完整变更
含 v2.2/v2.3 证据栈、fetch、社交引擎,以及 P0/P1 路由与缓存加固。详见提交历史与 docs/OPTIMIZATION_ROADMAP_v2.4.md。