文档 · 资源库

资源库

magpie 的 资源库 把指令、MCP 服务器、技能、Hooks 和子代理放在一处,再把每一项写进你勾选的每个 Agent,用的是那个 Agent 自己的文件和格式。Agent 像平常一样读这些文件。magpie 不在 Agent 和这些内容之间加任何一层:什么时候用某个技能、某个 MCP 工具或某个子代理,由 Agent 自己决定。

页面有六个标签:指令、MCP 服务器、技能、Hooks、子代理 和 RTK。每一项下面有一排 Agent;勾上就给它,取消勾选就拿走。Agent 重启后读到改动。

存放位置

终端
magpie library          # 资源库给了每个 Agent 什么
magpie library sync     # 重新写进各个 Agent

指令

指令是 Agent 每次会话开头都会读到的文字,比如团队规则或代码风格。magpie 把自己的部分写在 Agent 指令文件里的两行标记之间:

CLAUDE.md、AGENTS.md…
<!-- magpie:begin · written by magpie from its Library -->
…资源库里的指令…
<!-- magpie:end -->

标记以外的内容都是你的,magpie 从不修改。你可以有多组命名的指令,各自给不同的 Agent;一组指令也可以放在你自己的文件里。

Agent文件
Claude Code~/.claude/CLAUDE.md
Codex~/.codex/AGENTS.md(用了 AGENTS.override.md 时写它)
Gemini CLI~/.gemini/GEMINI.md
Antigravity~/.gemini/config/GEMINI.md
OpenCode配置目录里的 AGENTS.md
Copilot CLI~/.copilot/copilot-instructions.md
Goose、Crush、Qwen Code、CodeBuddy.goosehints、CRUSH.md、QWEN.md、CODEBUDDY.md
Droid、Grok、dsh、omp各自目录里的 AGENTS.md
Pi、OmOAGENTS.md 和 CLAUDE.md 中先存在的那个

目录跟随 Agent 自己的设置:设置了 CLAUDE_CONFIG_DIR 或 CODEX_HOME 时,用它代替默认目录。

MCP 服务器

MCP 服务器要么是一条命令(Agent 启动的程序,比如 npx …),要么是一个 URL(HTTP 或 SSE)。magpie 在每个勾选的 Agent 的 MCP 配置里为每个服务器写一个条目,用那个 Agent 的格式,你在条目里自己加的字段会保留。

Agent文件
Claude Code~/.claude.json
Codex~/.codex/config.toml
Gemini CLI~/.gemini/settings.json
Antigravity~/.gemini/config/mcp_config.json
OpenCodeopencode.json
Cursor~/.cursor/mcp.json
Copilot CLI~/.copilot/mcp-config.json
Zed它的 settings.json 里的 context_servers

打开 MCP 路由 后,每个 Agent 只拿到一个名为 magpie 的服务器来代替这些条目,命令型服务器由 magpie 为所有 Agent 只运行一份。它默认关闭。

技能

一个技能(Skill)就是一个带 SKILL.md 的文件夹。Agent 先读每个技能的名字和描述,任务用得到时再读其余部分。可以从 GitHub、任意 git 仓库、本机文件夹,或 技能 标签里的市场添加。

Agent目录
Claude Code~/.claude/skills
Codex~/.codex/skills
Gemini CLI~/.gemini/skills
OpenCode配置目录里的 skills
Cursor~/.cursor/skills
Copilot CLI~/.copilot/skills
Goose~/.agents/skills

链接还是副本

Skills 启用方式 决定技能怎么到达 Agent,可以对所有 Agent 设置,也可以在 按 Agent 里单独设置:

你自己有同名的技能文件夹时,magpie 不会覆盖它:页面会问你用资源库的还是保留你的。

编辑和更新

子代理

子代理是主 Agent 可以把任务交给它的帮手,有名字、描述和提示词。magpie 把它写成一个文件,放进每个勾选的 Agent 的子代理目录。主 Agent 读每个子代理的 描述,自己决定什么时候调用,所以描述要直白地写清它做什么、什么时候该用它。

Agent文件技能、MCP 服务器
Claude Code~/.claude/agents/<name>.md你选的那些
Codex~/.codex/agents/<name>.toml该 Agent 的全部
OpenCode配置目录里的 agents/<name>.md该 Agent 的全部
Gemini CLI~/.gemini/agents/<name>.md该 Agent 的全部
Qwen Code其目录里的 agents/<name>.md该 Agent 的全部
Droid~/.factory/droids/<name>.md你选的 MCP 服务器;全部技能
Grok其目录里的 agents/<name>.md该 Agent 的全部
Cursor~/.cursor/agents/<name>.md该 Agent 的全部
Copilot CLI~/.copilot/agents/<name>.agent.md该 Agent 的全部

子代理的模型

子代理的 模型 只会写给 Codex。其他 Agent 的子代理都用 Agent 自己选的模型,页面上会注明。留空时显示 由 Agent 选择。

对 Codex,模型写进子代理的 .toml 文件。Codex 启动子代理时会叠上这个文件,所以请求带的就是这个模型,magpie 网关像路由其他请求一样路由它。可以选 Codex 列表里的任何模型、magpie 的 provider/model,或一个路由组(group/<id>)。

Agent 页面上 Codex 的子代理模型

Agent 页面上 Codex 那一行有一个自己的子代理模型设置,管 Codex 启动的所有子代理:

Agent 页面的设置优先。只要它不是 由主代理自选,网关就把 Codex 的每个子代理请求都发到它,资源库里子代理自己的模型也会被取代,资源库的编辑器里会注明这一点。在那里选定模型时,还会把 Codex 配置里的 default_subagent_model 去掉。

Codex 自己 config.toml 里的 [agents] default_subagent_model 是另一回事:它只是主 Agent 没指定模型时子代理起步用的模型。以上都有一个例外:ChatGPT 后端封装过的任务保持它要求的模型,除非这个设置本身就是某个 ChatGPT 账号的模型。

Claude Code 有自己的顺序:先看主 Agent 调用时指定的模型,再看子代理文件里的 model:,再看 CLAUDE_CODE_SUBAGENT_MODEL(Agent 页面上 Claude Code 那一行可以设置),最后是会话的模型。

Hooks

Hook 是 Agent 在一轮对话中某个时刻运行的命令:结束时发个通知,改完文件后跑格式化。选一个通用事件(一轮结束、工具之后、工具之前、收到提示词、会话开始),magpie 会按每个 Agent 自己对这个事件的叫法写入。只有 Claude Code、Codex、Gemini CLI、Cursor、Grok Build 和 Grok App 支持 Hooks。你改过的 Hook 条目就归你。

RTK

RTK 标签可以按 Agent 打开 RTK:Agent 的 shell 命令经过 RTK 运行,输出被压短以节省 token。magpie 可以帮你安装 RTK;RTK 卸掉后也能关闭。

magpie 会改什么

项目也可以拿到技能和 MCP 服务器,放在项目自己的目录里(比如 .claude/skills、.agents/skills、.mcp.json 或 .codex/config.toml)。