让AI Agent读懂你的代码库:zvec-grep接入Claude Code、Codex与Cursor完整教程
【免费下载链接】zvec-grepLocal-first search across your workspace, built for humans and AI agents.项目地址: https://gitcode.com/gh_mirrors/zv/zvec-grep
zvec-grep(zg)是一个本地优先的代码库语义检索工具,专为人类和 AI Agent 设计。它把 ripgrep、BM25 与向量检索统一在一个入口,让 Claude Code、Codex、Cursor 等 AI 编程助手按“语义”读懂你的工作区——不再只会逐文件盲扫。本文将带你完成从安装、建索引到三大 Agent 一键接入的完整配置。
为什么 AI Agent 需要本地语义检索?
用 AI Agent 做代码分析时,你大概率遇到过这类问题:
- 只知道概念、不知道位置:问“主题偏好在哪里恢复?”,Agent 只能靠关键词逐个文件翻找;
- 工具调用多、Token 消耗大:宽泛的 grep + 反复读文件,上下文越滚越长;
- 跨文件推理困难:调用链、数据流、架构设计类问题,单靠精确文本搜索拼不出全貌。
zvec-grep 的思路是:先按语义发现内容、按相关性排序,再用精确文本验证。Agent 只需一次zvec_grep_search调用,就能拿到带文件位置和行号的排名结果,显著减少工具调用次数。
快速安装:两步获得代码库检索能力
前置要求:Node.js 22 或更新版本。
第一步:全局安装
npm install -g @zvec/zvec-grep也可以克隆源码体验:git clone https://gitcode.com/gh_mirrors/zv/zvec-grep
第二步:为你的项目建立索引
cd /path/to/your/project zg index --embedding local/potion-retrieval-32m索引会保存在项目根目录的.zvec-grep/下。之后在终端里就能直接搜:
zg query --human "哪里处理了主题切换的持久化?" --limit 3如果命令失败,加上--debug重跑即可获取诊断信息。
一键接入:zg --install 是怎么工作的
zvec-grep 通过本地 MCP 服务器与 Agent 通信,docs/01-agents.md 是官方接入指南。交互式安装器会列出它检测到的 Agent:
zg --install脚本化或批量配置时,用--target明确指定目标:
zg --install --target claude --target codex --target cursor --yes安装器会自动完成四件事:写入受管 MCP 配置、追加搜索使用指南、配置工具审批规则,并在可行时启动本地 zvec-grep 服务器。写入的内容都包裹在ZVEC_GREP_START/ZVEC_GREP_END标记块中,不会破坏你已有的其他 MCP 配置。
安装器逻辑实现在 src/cli/install.ts,工具集与使用引导定义在 src/mcp/tools.ts。
Claude Code 接入:配置 ~/.claude 三件套
zg --install --target claude --yes安装器会同时管理三个文件:~/.claude.json(MCP 服务器注册)、~/.claude/settings.json(本地 MCP 工具审批)和~/.claude/CLAUDE.md(搜索行为引导)。重启 Claude Code 后,新会话中即可看到zvec_grep_search工具,无需在提示词中点名——Claude 会按需要自行调用。
Codex 接入:配置 ~/.codex 目录
zg --install --target codex --yes受管文件为~/.codex/config.toml与~/.codex/AGENTS.md,同样自动完成 MCP 注册与工具审批。官方基准测试中 SWE-QA-Bench 正是使用 Claude Code + zg 的组合,效果见下文。
Cursor 接入:写入 ~/.cursor/mcp.json
zg --install --target cursor --yesCursor 的受管文件是~/.cursor/mcp.json,安装器会保留其中已存在的其他 MCP 服务器条目。重启 Cursor 后,zvec_grep服务器及其工具即出现在 MCP 列表中。
除以上三者,zvec-grep 还原生支持 Qwen Code、Qoder、GitHub Copilot、VS Code、OpenCode,一条--target all全部搞定:
| Agent | target 名称 | 受管配置文件 |
|---|---|---|
| Claude Code | claude | ~/.claude.json、~/.claude/settings.json、~/.claude/CLAUDE.md |
| Codex | codex | ~/.codex/config.toml、~/.codex/AGENTS.md |
| Cursor | cursor | ~/.cursor/mcp.json |
| GitHub Copilot | copilot | ~/.copilot/mcp-config.json、~/.copilot/copilot-instructions.md |
| VS Code | vscode | 各用户资料的mcp.json |
验证接入:确认 Agent 真的能搜到
先确认本地服务器就绪:
zg --server status --check-ready然后开一个新 Agent 会话,问一个“语义型”问题试试,比如:
“主题偏好设置是在哪里恢复的?给出文件与行号。”
如果 MCP 连接正常,Agent 会直接调用zvec_grep_search返回带file:line的排名证据。若 MCP 暂时不可用,也能在终端手动兜底:
zg "where theme preferences are restored" zg --rg -F "loadTheme" src详细的服务器生命周期、日志与鉴权见 docs/06-server.md。
理解 Agent 的检索决策:语义 vs 精确分工
zvec-grep 的默认工具集只暴露一个zvec_grep_search,精确查找交给 Agent 原生的 grep/rg,形成清晰分工(详见 docs/03-mcp.md):
| 你的问题类型 | Agent 的选择 |
|---|---|
| 已知精确词、配置键、文件名、正则 | 原生 grep / rg |
| 措辞或位置未知,需要语义、模糊、跨文件综合 | zvec_grep_search |
| 已知精确锚点但需要更大上下文 | 先zvec_grep_search,再原生 grep 验证 |
| 与本地代码无关的开放性问题 | 不用 zvec-grep |
一次典型调用只需给出工作区根路径和自然语言查询:
{ "root": "/absolute/path/to/workspace", "query": "decision history behind the launch date", "limit": 5 }返回结果是按文件分组的排名片段,附带行号与新鲜度状态,可直接喂给模型上下文。
真实效果:更少 Token、更少调用、更快更准
官方基准使用成对 A/B 对照(任务、模型、提示词完全一致,仅是否接入 zg 不同),完整数据见 benchmarks/README.md:
- 编码任务(SWE-QA-Bench,20 任务):Judge 得分 80.42 → 81.92,输入 Token 降 47.3%,工具调用降 58.6%,总耗时降 37.5%;
- 真实仓库问答:Pylint、Matplotlib、Django 三个架构类问题上,Judge 得分最高提升 15.67 分,Token 与工具调用节省均超过 45%。
规律很明显:证据跨文件、目标位置未知的问题(调用链、数据流、架构动机)受益最大。
卸载与常见问题
卸载集成(不删除索引和 npm 包):
zg --uninstall --target claude --yes zg --uninstall --target all --yesQ:索引会过期怎么办?A:搜索结果自带freshness新鲜度状态,服务端模式(见 docs/06-server.md)下可自动增量更新。
Q:数据安全吗?A:默认完全本地运行,文件、索引、本地模型都留在你的机器上;使用远程 Embedding 前会单独征求你的授权。服务器默认只监听回环地址,无外部暴露。
Q:装完 Agent 里看不到工具?A:确认服务器已启动(zg --server status --check-ready),然后重启 Agent 或开新会话即可。
现在,你的 Claude Code、Codex 和 Cursor 已经长出了“语义读代码”的能力。从安装到接入只需三条命令,建议先从一个小项目试起,感受一次zvec_grep_search带来的上下文瘦身效果。
【免费下载链接】zvec-grepLocal-first search across your workspace, built for humans and AI agents.项目地址: https://gitcode.com/gh_mirrors/zv/zvec-grep
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考