AI Agent 之间如何传文件?AgentTransfer 给每个 Agent 一个专用文件收发通道
问题:Agent 之间的文件传输,比想象中复杂得多
当你用 Claude Code 写完代码、Codex 跑完训练、Pi 完成推理——这些 Agent 各自产出了结果文件,但想让它们之间互相传递文件时,你会发现现有的工具几乎都不好用:
- 邮件附件:Agent 没有邮箱,即使有也要人工配置 SMTP/IMAP
- S3 预签名链接:要额外管理密钥、过期时间、权限,整套操作假设你是人类管理员
- scp/rsync:需要双方互信 SSH 密钥和网络可达性,Agent 之间往往是隔离的
- MCP 内联文件内容:文件直接塞进模型上下文窗口,大文件就超出 token 限制了
这些方案每一套都假设有人在中间协调——要么是你在命令行粘贴链接,要么是你在 Slack 上喊对方接收。但 Agent 应该是自主工作的,它们不应该等人来帮忙传文件。
AgentTransfer:给每个 Agent 一个身份 + 一个收件箱
AgentTransfer(MIT 许可证,Go 语言,GitHub 44⭐)做了一个很直接的抽象:每个 Agent 注册后得到一个邮箱地址、一个专用文件夹、一个收件箱和一把 API 密钥。这就够了。
┌──────────────┐ upload ┌───────────────────────┐ inbox offer ┌──────────────┐
│ Agent A │ ──────────► │ AgentTransfer │ ────────────────► │ Agent B │
└──────────────┘ │ Instance │ └──────────────┘
│ │ ◄───────────────────┘
│ folder · links │ HTTPS download
│ receipts · apps │ + sha256 verify
└───────────────────────┘
核心思路是:文件传输不只是存储问题,而是身份 + 投递 + 收据的组合。AgentTransfer 用一个 Go 二进制就包含了服务端、CLI 和 MCP 桥接器。
30 秒跑起来:本地验证完整流程
不需要注册账号,不需要配网络,clone 下来就能跑端到端演示:
git clone https://github.com/shehryarsaroya/agenttransfer cd agenttransfer && go build -o agenttransfer . ./agenttransfer demo
demo 命令会在本地创建两个 Agent(alice 和 bob),传一个 1 MiB 文件,双向验证 SHA256 哈希,最后验证 ED25519 签名收据。全部在本地完成,不需要网络。
如果要运行真正的实例:
./agenttransfer serve # API + MCP 在 :8080 启动,首次启动打印管理员令牌
Agent 自己注册:四步完成文件交换
AgentTransfer 的一个关键设计是 Agent 可以自主注册——不需要人工审批。以下是在公开实例 agenttransfer.dev 上的完整流程:
1. 自注册
Agent 选个名字,调一次 API 就拿到身份:
curl -X POST https://agenttransfer.dev/v1/agents \
-d '{"name":"openclaw-dev"}'
返回结果包含邮箱(openclaw-dev@agenttransfer.dev)、API 密钥和初始配额(400 MB 可达空间)。密钥只显示一次。
2. 上传文件
curl -T ./weights.tar.gz "https://agenttransfer.dev/v1/files/weights.tar.gz" \ -H "Authorization: Bearer "$AGENT_KEY""
3. 发送给另一个 Agent
通过收件箱投递,不需要邮件系统参与:
curl -X POST https://agenttransfer.dev/v1/send \
-H "Authorization: Bearer "$AGENT_KEY"" \
-d '{"to":["codex-bot@agenttransfer.dev"],"file":"weights.tar.gz","note":"训练集 v3"}'
4. 接收方拉取
对方轮询收件箱、下载文件、校验哈希:
curl "https://agenttransfer.dev/v1/inbox/wait?timeout=60" -H "Authorization: Bearer "$AGENT_KEY"" curl -L "?dl=1" -o weights.tar.gz && shasum -a 256 weights.tar.gz
MCP 桥接:直接集成到 Claude Code 和 Codex
AgentTransfer 内置了一个 MCP 服务器,这样你的 Agent 不需要通过 curl 手动操作——MCP 协议让它直接拥有文件上传、发送、收件箱查询的能力。
./agenttransfer mcp --host agenttransfer.dev --key "$AGENT_KEY"
MCP 桥接器作为一个独立进程运行,Agent(Claude Code、Codex 等)通过 MCP 协议与之通信。文件上传后,MCP 返回的是元数据(哈希、大小、链接),文件本身不会进入模型上下文——这是与内联 MCP 文件工具的关键区别。
信任层级:从免验证 App 到邮件验证生产环境
AgentTransfer 的信任模型是分层的,从低信任到高信任逐步解锁:
| 层级 | 要求 | 容量 | 功能 |
|---|---|---|---|
| 第 0 级 | 公开注册 | 400 MB/24h 过期 | 上传、发送、收件箱、发现同伴 |
| 第 1 级 | 邮件验证 | 20 GB/5 GB 单文件 | 持久文件夹、外发邮件、静态站点 |
| 第 2 级 | 管理员启用 | 可配置 | App 托管(容器) |
每个上传文件都会生成一个 ED25519 签名收据——谁传的、传给谁、文件哈希是什么,全部可独立验证。运营者可以导出整个实例的哈希链并发布公钥供外部验证。
自部署:一个二进制
export STORAGE_DIR=/data/agenttransfer export JWT_SECRET=$(openssl rand -hex 32) ./agenttransfer serve
自部署支持 SQLite 和 PostgreSQL 后端。公开 URL 需要一个域名或隧道(如 ngrok)。邮件集成需要配置 SMTP。完整的 Docker Compose 示例在项目的 docs/self-hosting.md。
安全模型
AgentTransfer 把安全放在设计核心而非事后补丁:
- 文件流式传输,不在服务端或上下文中缓存完整文件
- 每个请求签名,所有 API 调用需要
Authorization: Bearer头 - ED25519 收据链,单文件签名 → 实例全局哈希链,可独立验证
- 最小化 Docker 权限,App 运行器作为独立进程运行,不从公共服务端暴露 Docker socket
- 可选客户端加密,上传前用 AES-256-GCM 加密敏感文件
适用场景
- 多 Agent 协作:Claude Code 产出的代码传给 Codex 做测试,再发给 Pi 做审查
- CI/CD 管线:构建 Agent 产出二进制,传给部署 Agent 发布
- 数据管道:爬虫 Agent 收集数据,传给分析 Agent 处理
- 跨团队共享:不同项目组之间的 Agent 通过公开实例交换文件
总结
AgentTransfer 解决的痛点很明确:现有文件传输工具都是为人类设计的,不适合 Agent 自主工作。它给每个 Agent 一个明确身份(邮箱地址),用收件箱取代了人工中转,同时签名收据提供了可审计性。MIT 许可证、单二进制部署、MCP 集成,这些特性让它可以快速融入现有的 Agent 工作流。
相关链接