跳转到内容

面向 Zed 用户

Zed 很快。智能体照样得先找到代码。

Zed 智能体依据你打开的文件和你给的指令工作。Maguyva 索引整个仓库并通过 MCP 返回结果,于是智能体会直接询问某个符号在哪里,而不是靠猜。

Free 层级:3 个代码仓库, 最多 5 万行索引代码,无需信用卡。

一条 context_servers 条目:一个 URL,加一个 Authorization 请求头。

关于 Zed 需要知道的

四条 Zed 专属事实,没有一条难。

// 配置文件

settings.json

远程服务器放在 context_servers 下。用 zed: open settings file 打开文件,或在 Settings → AI → MCP Servers 中添加服务器。

// 传输方式

远程,按 URL 连接

Zed 通过 HTTP 直接连接 Maguyva 的远程端点。不需要本地进程,也不需要 Node.js。

// 密钥

直接写进请求头

本指南没有验证 Zed 请求头中的环境变量展开,所以密钥直接写进 Authorization 请求头。请把它放在用户设置里,而不是会提交的文件里。

// 审批

工具权限

Zed 默认在每次调用工具前询问。可在 agent.tool_permissions.tools 下用 mcp:maguyva:find_symbol 这样的键,逐个放行 Maguyva 的工具。

项目指令是一份工作约定,好好用它。

# .rules
- 宣布改动完成之前,先运行仓库的测试命令。
- 只在被要求修改的包内编辑。

Zed 只加载一个项目指令文件:在一个以 .rules 开头、包含 AGENTS.md 和 CLAUDE.md 的固定列表中,第一个匹配到的那个。个人指令放在 ~/.config/zed/AGENTS.md。适合写进去的有:

  • 构建、测试和 lint 命令。
  • 智能体总是弄错的约定。
  • 智能体不该碰的目录。

指令文件告诉智能体怎么工作。它没法告诉智能体,四千个文件里哪些在调用它正要修改的那个函数。

打开的缓冲区不够用的地方

Zed 智能体无法从眼前的文件里学到的三件事。

// 打开的文件不是整个仓库

智能体只看得到你打开的和它 grep 到的。另一个包里同名的辅助函数看起来一模一样,直到错的那个被发布上线。

// 调用方不在屏幕上

“改了这个签名会坏掉什么?”是一个图的问题。没有索引,智能体只能一个文件一个文件地读,直到轮次或上下文耗尽。

// 上下文有预算

智能体为摸清情况而打开的每个文件,都在消耗本可用于改动本身的 token。一个带 file:line 的排序答案,比十次试探性读取更省。

作为 Zed 上下文服务器的 Maguyva

一条 context_servers 条目让 Zed 智能体获得:

  • 面向已索引仓库的 11 个工具 语义、结构(AST)、图和文本搜索,外加符号查找、依赖方和文件检索。
  • 带文件路径和行号的答案 覆盖 285+ 种语言,智能体第一次就能打开正确的文件。
  • 始终最新的工具列表 服务器宣布有变化时,Zed 会重新加载该服务器的工具,无需重启。

Zed 给智能体一个快速的编辑器。

Maguyva 给智能体一张代码地图。

两种工作流

先问地图,再动手编辑。

// workflow 01

在智能体打开标签页之前找到实现

zed agent> 对外 Webhook 的重试策略在哪里?

find_symbol("retryPolicy")
  src/webhooks/dispatch.ts:41   retryPolicy()   ← 实现
  src/webhooks/__mocks__/dispatch.ts:9   ← mock

→ 智能体打开的是 dispatch.ts:41,而不是 mock。
[exit 0]

一次排序查询取代一轮 grep。答案以智能体可以直接打开的路径和行号返回。

// workflow 02

修改签名之前先查依赖方

zed agent> 给 fetchInvoice 加一个 timeout 参数

dependency_search("fetchInvoice", dependents)
  分布在 4 个包中的 7 个调用方

→ 智能体一次性更新全部七处调用。
[exit 0]

影响范围在第一次编辑之前就到手,而不是在构建失败之后。

在 Zed 中配置

三个步骤。Free 层级:3 个代码仓库, 最多 5 万行索引代码,无需信用卡。

  1. // step 01

    在 maguyva.ai 索引一个代码仓库

    挑一个你已经熟悉的,这样你能给答案打分。

  2. // step 02

    在 Zed 设置的 context_servers 中添加 Maguyva

    ~/.config/zed/settings.json

    {
      "context_servers": {
        "maguyva": {
          "url": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer mgv_xxxx"
          }
        }
      }
    }
  3. // step 03

    替换占位符,然后问一个问题

    把 mgv_xxxx 换成你的 API 密钥并保存。问智能体一个你已经知道答案的问题,然后打开它引用的文件。