mcpField
M
magents

magents

本地服务
abnegate.github.ioAI 与智能体154 天前更新

关于 magents

magents 是用于访问多个编码 Agent 会话的共享 API 和命令行工具。它帮助团队在现有聊天间传递上下文、向实时会话发送消息,或启动独立的持久化任务,免去手动复述背景。

主要功能

  1. 01发现实时和近期 Agent 会话
  2. 02读取、搜索并整理会话记录
  3. 03在现有聊天间交接任务
  4. 04向实时会话发送消息
  5. 05启动独立的持久化会话
  6. 06在 Agent 间共享笔记与记忆

适用场景

  1. 01切换编码 Agent 后继续原有任务
  2. 02请另一个 Agent 处理阻塞问题
  3. 03在独立工作目录中运行单独任务
  4. 04搜索过往会话中的决策与上下文

MCP 相关

magents 以 MCP 服务运行,并向支持的 Agent 主机注册工具。MCP 客户端可发现会话、读取记录、交接或发送聊天消息,以及启动会话。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"abnegate-magents": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/abnegate/magents:0.14.2"
]
}
}
}
启动命令docker run -i --rm ghcr.io/abnegate/magents:0.14.2

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/abnegate/magents:0.14.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

magents 在 Claude、Codex、Grok 和 Cursor 之间共享会话总线

HOL 信任度

Claude Code、Codex、Copilot、Cursor、Gemini、AGY、Grok 和 OpenCode 已经会将 对话记录保存在磁盘上。magents 是这些会话之上的共享 API——一个 MCP 服务加一个小型 CLI——让一个 Agent 可以从另一个 Agent 停下的地方继续, 无需你重述上下文;当你不在聊天窗口中时,也可以联系某个特定的在线聊天, 或者为完整任务启动一个独立的持久化聊天。

它不是历史记录的第二份副本,也不是发出指令后便不再过问的 Agent 议事会。现有 聊天仍是默认的工作单元;新聊天则用于适合拥有独立会话和工作目录的独立任务。

安装 · 插件 · 你可以做什么 · 快速开始 · 工具 · CLI · 版本发布

为什么

你已经在使用不止一个编码 Agent。痛点不是“模型不够多”,而是上下文困在另一个窗口里。

痛点magents 的作用
你在任务中途切换了宿主读取在线会话并在这里继续
Agent A 遇到的问题由 Agent B 负责解决直接向那个在线聊天注入消息,无需你传话
子任务可以独立运行启动一个无头持久化会话,提供完整的提示词和回复路径

你可以做什么

1. 无需开启新话题即可交接
你之前在 Claude 中处理灾难恢复分支,现在切到了 Grok。询问 Grok 刚才在做什么;它会读取在线会话并继续。无需复制粘贴,也不用“新开聊天并在这里补充上下文”。

2. 无需你传话即可发送消息
三个 Agent 正在运行。Claude 遇到的问题由 Codex 负责解决。Claude 向那个 Codex 话题注入消息并继续工作——特别适用于发送方已经掌握失败的查询、文件和限制条件,而这些信息本来需要你重新整理的情况。

3. 启动独立任务
任务可以独立推进时,启动一个新的无头持久化会话,提供完整的提示词;如果文件可能发生冲突,则使用隔离的工作目录,并要求通过 magents 回复。启动的 Agent 会保留宿主原有的审批策略——启动操作不会绕过审批。

安装

Homebrew(macOS / Linux)
brew install abnegate/tap/magents
magents install --all
APT(Debian / Ubuntu)
curl -fsSL https://abnegate.github.io/apt-repo/pubkey.gpg | sudo gpg --dearmor -o /usr/share/keyrings/abnegate.gpg
echo "deb [signed-by=/usr/share/keyrings/abnegate.gpg] https://abnegate.github.io/apt-repo stable main" | sudo tee /etc/apt/sources.list.d/abnegate.list
sudo apt update && sudo apt install magents
magents install --all
二进制文件

从 Releases 获取:

curl -LSsf -o magents \
  "https://github.com/abnegate/magents/releases/latest/download/magents-$(uname -m | sed 's/arm64/aarch64/')-$(uname -s | tr 'A-Z' 'a-z' | sed 's/darwin/apple-darwin/;s/linux/unknown-linux-musl/')"
chmod +x magents
./magents install --all

文件:magents-x86_64-unknown-linux-musl、magents-aarch64-unknown-linux-musl、 magents-aarch64-apple-darwin、magents-x86_64-apple-darwin。

容器
docker pull ghcr.io/abnegate/magents:latest
docker run --rm --user "$(id -u):$(id -g)" \
  -v "$HOME:$HOME" -e HOME \
  ghcr.io/abnegate/magents list --live
Cargo
cargo install magents --locked
magents install --all
从源代码构建
cargo install --path .
magents install --all

插件

宿主插件包含 magents 技能,以及一个用于运行 magents mcp 的 MCP 配置项。 请先安装 CLI(brew install abnegate/tap/magents),然后加载 plugins/ 下 对应的文件夹。

宿主路径
Claude Codeplugins/claude
Codexplugins/codex
Cursorplugins/cursor
Gemini CLI仓库根目录(gemini-extension.json)
AGY CLI / Antigravityplugins/agy

Gemini CLI 会直接从此仓库安装扩展:

gemini extensions install https://github.com/abnegate/magents

AGY CLI 会从 plugins/agy 安装插件(清单、MCP 和技能):

agy plugin install https://github.com/abnegate/magents/plugins/agy

详情和市场说明:plugins/README.md。

快速开始

magents install --all 会将 stdio MCP 服务注册到每个已安装的主机;如果主机缺少所需的二进制文件,则会跳过该主机:

  • Grok(grok mcp add magents -- magents mcp)
  • Claude Code(claude mcp add --scope user magents -- magents mcp)
  • Codex(codex mcp add magents -- magents mcp)
  • Cursor(~/.cursor/mcp.json)
  • OpenCode($XDG_CONFIG_HOME/opencode/opencode.json,默认路径为 ~/.config/opencode)
  • Gemini CLI(gemini mcp add -s user magents magents mcp)
  • GitHub Copilot CLI(copilot mcp add magents -- magents mcp)
  • AGY CLI(agy mcp add magents magents mcp)

它还会将 magents 和 learn 技能写入受支持主机的技能目录(~/.grok/skills/{magents,learn}、~/.claude/skills/{magents,learn}、~/.cursor/skills/{magents,learn},以及 OpenCode / Gemini / AGY / Copilot 对应的目录)。/learn 会读取每个本地 Agent 的会话,不仅限于 Grok。

仅针对 Grok 和 Codex,你需要自行配置主机指向该二进制文件:

[mcp_servers.magents]
command = "/path/to/magents"
args = ["mcp"]

对于 Cline,打开 MCP Servers → Configure MCP Servers,并将以下内容添加到 cline_mcp_settings.json:

{
  "mcpServers": {
    "magents": {
      "command": "magents",
      "args": ["mcp"]
    }
  }
}

重启 Agent 会话(或刷新 /mcps),工具便会显示。

试试:

magents list --live
magents digest grok:latest
magents handoff grok:latest --reason "continuing in grok"

工具

工具用途
list_sessions查看正在进行和近期的会话;按 cwd / branch 筛选
get_session按 id、标题、在线名称、pid 或 agent:ref 查找
read_transcript精简的非活动交接记录(最近请求、最近操作、近期轮次)
search_transcripts在这些记录中进行全文搜索
search_memories搜索 Claude / Codex / Grok 记忆 Markdown 文件中的短语
create_memory将备注写入 Claude / Codex / Grok 自带的记忆
spawn_session启动新的无头持久化会话以独立执行任务
send_message向现有聊天发送一轮用户消息
handoff精简当前会话并注入另一个在线聊天
inbox / ack / await_reply / reply用于跨会话回复的邮箱
session_digest精简的最近请求 / 操作 / cwd / branch / 截断后的轮次
files_touched查看其他会话编辑过的路径
stop_session停止由 magents 监管的会话启动或恢复操作
read_memory读取一个 Claude / Codex / Grok 记忆 Markdown 文件
get_note / put_noteMagents 管理的工作目录共享临时存储
whoami检测此连接;通过环境变量、套接字或唯一 cwd 解析会话
learn_collect从每个本地 Agent 的完整历史中收集供 /learn 使用的精简记录,或估算一次运行
learn_state读取或更新 /learn 状态、决策和废弃内容

引用可以添加前缀:claude:disaster recovery、grok:latest、codex:<uuid>、cursor:latest、opencode:<id>、gemini:latest、agy:<id>、copilot:<id>。

CLI

magents list --live
magents list --agent grok --query edge
magents get 'claude:disaster recovery'
magents read grok:latest -n 20
magents digest grok:latest
magents search "dedicated databases" --agent claude
magents spawn codex --prompt-file /path/to/task.md --cwd /path/to/isolated-worktree
magents send grok:latest "handoff: the DR runbook is in docs/RUNBOOK.md"
magents handoff grok:latest --reason "continuing in grok"
magents whoami
magents learn estimate
magents learn collect
magents learn plan
magents learn collect --since-last
magents learn state

任何命令都可以传入 --output json,以获取稳定的机器可读标准输出。

通过管道接收标准输入时,不带参数运行 magents 会启动 MCP 服务。

magents spawn 默认从标准输入读取完整任务(也支持 --prompt-file)。提示词文本绝不会作为进程参数传递。

会话如何交流

list_sessions / read_transcript / search_transcripts / search_memories 用于交接。create_memory 会将内容写入其他框架自带的记忆(Claude、Codex 或 Grok)。

根据工作应在哪个会话中进行,选择写入方式:

  • spawn_session - 启动新的无头持久化独立会话。提供完整任务、验证要求和通过 magents 回复的方式;如果编辑可能发生冲突,则使用隔离的 cwd。成功表示已接受启动请求(accepted: true、status: "starting"),不代表任务已完成。
  • send_message - 发送给现有会话。始终会记录邮箱邮件;在主机支持的情况下,会注入一轮在线用户消息。
  • handoff - 将当前会话精简后传递给现有在线会话,让该会话继续同一项工作。
传递方式(现有对话)

send_message 始终会将消息追加到邮箱,然后优先使用原生实时通道;否则启动受监管的无头恢复:

界面传递方式
Claude DesktopUDS 用户轮次(/tmp/cc-socks/<pid>.sock),然后使用 tmux 或受监管的 claude -p --verbose --resume <id>
Claude CLI可用时使用 UDS,然后使用 tmux 或受监管的恢复方式
Grok受监管的 grok --cwd <cwd> --resume <id> --output-format streaming-json --prompt-file /dev/stdin
Codex Desktop / VS Code在 ~/.codex/ipc/ipc.sock 上使用长度前缀 JSON-RPC,然后使用受监管的 codex exec ... resume
Codex CLI受监管的 codex exec --json -C <cwd> resume <id> -
Cursor受监管的 cursor-agent -p --output-format stream-json --resume <id> --workspace <cwd>
OpenCode受监管的 opencode run --format json --session <id>,在会话的 cwd 中启动(并设置 PWD)
Gemini CLI受监管的 gemini --resume <id> --output-format stream-json
AGY CLI / Antigravity受监管的 agy --input-format stream-json --output-format stream-json --conversation <id>
GitHub Copilot CLI受监管的 copilot --resume=<id> --output-format json

受监管的传递方式通过 stdin 传递用户轮次,不会在响应中暴露对话记录文本、令牌或原始主机输出。启动进程时绝不会添加绕过审批的选项(--dangerously-skip-permissions、--yolo、--full-auto 等)。

会话发现来源:Claude ~/.claude 和 ~/.claude-*(以及 Desktop 的 Claude / Claude-* 会话目录)、Grok ~/.grok/active_sessions.json、Codex sqlite + rollout JSONL、Cursor agent-transcripts、OpenCode SQLite(opencode.db 和频道数据库,v1 的 session 表以及 v2 的 session_v2 / session_message 表)、Gemini journals、AGY CLI conversations / brain 以及 Antigravity 桌面端的 conversation_summaries、Copilot session-state。Claude 会话若来自具名主目录(例如 ~/.claude-work 中的 work),则会包含 profile 字段。恢复和实时注入会使用该主目录的 CLAUDE_CONFIG_DIR。

测试

cargo test --locked --all-targets
cargo llvm-cov --locked --all-targets --ignore-filename-regex 'src/main.rs|/rustlib/' --fail-under-lines 98

CI 会运行格式检查、clippy(-D warnings)、完整测试套件以及 98% 行覆盖率门槛。

要求

  • Rust 1.97+
  • macOS 或 Linux(Claude UDS 注入仅支持 Unix)

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。