通义千问开发者开源zg:融合正则、BM25与向量搜索的本地优先代码检索工具
通义千问开发者团队开源zg(zvec-grep),一款面向编程智能体与开发者的本地优先统一搜索工具,集成ripgrep、BM25与语义向量搜索。支持Node.js一键安装,无需GPU,Apache 2.0许可可商用。单索引支持四类查询路径,通过MCP协议对接主流AI编码助手,并在SWE-QA-Bench等基准测试中显著降低工具调用与Token消耗。
统一搜索层:解决编码智能体的检索效率瓶颈
编码智能体(coding agents)常将大量工具调用预算消耗在代码搜索上。当目标是已知符号(如函数名)时,ripgrep能精准匹配;但当目标是自然语言描述的行为(如‘找出所有处理超时重试的逻辑’)时,传统关键词匹配极易失效,迫使智能体反复猜测术语、全文件扫描、手动拼凑上下文——每一步都增加工具调用次数、Token消耗与时延。为应对这一痛点,通义千问(Qwen)开发者团队正式开源zg(zvec-grep),一个本地优先(local-first)、面向人与智能体双用户设计的统一搜索层。
开箱即用:轻量部署与灵活许可
zg以Apache 2.0许可证发布,代码托管于zvec-ai GitHub组织。当前版本已具备生产就绪能力:可通过npm安装(`@zvec/zvec-grep`),仅需Node.js 22+(支持macOS、Linux、Windows),默认模型完全运行于CPU,无需GPU;商业用途明确获许可。
单索引、四路径:兼顾精确性与语义性
zg对工作区仅需一次索引,即可提供四种检索模式:
- 默认混合模式:融合语义意图与词法锚点(lexical anchors);
- `--fts`:基于BM25算法的全文精确匹配排序;
- `--vector`:纯概念相似性检索,不依赖词法排名;
- `--rg`:调用原生ripgrep进行字面或正则穷举匹配——该路径完全绕过索引,适用于尚未建索引的新仓库。
索引默认存于工作区根目录下的`.zvec-grep/`子目录,自动排除`.git`、`.zvec-grep`及常见依赖、构建、缓存、日志目录,同时尊重项目级`.gitignore`规则。增量更新支持`zg index`重跑,而更换嵌入模型则需显式指定`--rebuild`(因不同模型生成的向量空间互不兼容)。
面向智能体的MCP集成设计
zg深度适配Model Context Protocol(MCP)标准:自动检测本地已安装的Codex、Claude Code、Cursor、OpenCode等AI编码助手,并为其注入两个核心工具——`zvec_grep_search`(意图明确但字符串未知时使用)与`zvec_grep_rg`(符号、路径或正则已知时使用)。服务端运行于仅限回环地址的HTTP流式接口(`http://127.0.0.1:7999/mcp`),支持可选Bearer认证。设计强调克制:索引生命周期(创建/删除/状态检查)严格保留在CLI层面;六工具扩展集(含`index create/drop/status`及`server status`)需显式启用(`zg server --mcp-toolset full`),且文档明确禁止智能体静默执行持久化索引操作。
输出精简与设备优先嵌入
结果按文件分组并标注行号范围,源码预览默认禁用(仅按需加载),以保障上下文经济性;同时屏蔽`--json`、`--count`等会破坏紧凑格式的ripgrep参数。嵌入模型默认全部本地运行:当前文档列出10款本地模型(如`local/potion-code-16m-v2`,256维静态查表模型,不受益于GPU)及3个远程Qwen端点(如`qwen/qwen3.7-text-embedding`,支持128K输入;及多模态`qwen/qwen3-vl-embedding`)。远程调用受严格管控——配置凭证不等于授权传输,须显式添加`--allow-remote`或通过`zg auth grant`签发可撤销的工作区授权。
基准测试表现:显著降本增效
官方评测显示,在固定Agent、模型、提示词与任务约束下(仅引入预建索引、MCP工具与使用指引),zg在两项基准中成效突出:
- SWE-QA-Bench(20题样本):工具调用减少超50%,输入Token下降近50%,裁判评分(Judge score)提升1.50分;
- BrowseComp-Plus(80题样本):准确率从98.67%升至99.00%,输入Token、工具调用、智能体耗时分别下降37.56%、43.52%、38.58%;
- 索引性能:Django仓库(3457文件)在Apple M4 Pro上建索引耗时<30秒。
需注意,当前评测数据均来自项目方自测,样本量有限,独立复现为必要后续验证步骤。