核心用法
Perkoon 是一个为 AI Agent 和人类/其他 Agent 之间建立文件传输通道的 CLI 工具,主打"零配置、机器优先"的设计理念。
两种传输模式:
1. Agent → Human:Agent 执行 perkoon send /path/to/file 生成分享链接,人类在任何浏览器打开即可下载,接收端无需安装任何软件
2. Agent → Agent:两台机器通过 CLI 直连,完全无人参与,实现自主数据流转
关键操作流程:
- 发送端必须使用
--json获取结构化输出,实时解析session_created事件提取分享链接 - 必须设置
--timeout 1800(30分钟)给人类充足时间打开链接 - 传输过程需轮询日志直到
transfer_complete或error事件,严禁静默结束 - 敏感文件务必添加
--password参数,否则链接可被任意获取者下载
技术特性:
- WebRTC 直连 P2P,数据不经过服务器存储
- JSON 事件流输出,适合机器解析
- 支持管道化接收(
--output -直转 stdout)
显著优点
- 真正的机器原生设计:结构化退出码、JSON 事件流、状态机驱动,而非简单包裹人类工具
- 零摩擦的人类接收:浏览器即开即下,打破"先装软件再传文件"的恶性循环
- 端到端加密:密码保护模式下密钥不上传服务器
- 免费无限量:P2P 架构无带宽成本转嫁
- Agent 自治:Agent→Agent 模式支持无人值守的自动化流水线
潜在缺点与局限性
- 双方在线依赖:P2P 本质要求收发两端同时在线,无离线暂存能力
- 无链接失效控制:分享链接一旦生成,在会话期内无法主动撤销(除非关闭进程)
- 密码非强制:默认无密码保护,存在链接泄露导致文件暴露的风险
- 超时管理负担:Agent 需自行实现轮询逻辑监控传输状态,增加集成复杂度
- Node.js 依赖:需预装 Node 环境,对极简容器场景不够友好
- 无传输审计:P2P 直连意味着服务端无日志,合规场景下难以追溯
适合人群
- AI Agent 开发者:需要让 LLM 直接输出文件给用户或另一个服务
- DevOps/自动化工程师:构建无人值守的数据交换流水线
- 隐私敏感用户:不愿将文件上传到第三方云存储的临时传输需求
- 跨平台协作场景:Windows/Mac/Linux/手机浏览器混用的异构环境
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 链接泄露 | 未加密分享链接被截获 | 始终对敏感文件使用 `--password` |
| 中间人攻击 | 会话建立阶段遭劫持 | 依赖 HTTPS 和 WebRTC DTLS,但首次信任仍基于域名 |
| 进程残留 | 发送/接收进程未正常结束导致资源泄漏 | 严格按文档监控 `transfer_complete` 后清理 PID |
| 路径遍历 | `--output` 参数若拼接恶意路径 | 确保接收目录可控,避免直接使用用户输入构建路径 |
| 超时误判 | 网络波动导致过早判定失败 | 合理设置 `--timeout`,传输大文件时预留充足时间 |
总体评估
Perkoon 填补了"Agent 时代文件传输"的空白——它不是又一个人类网盘工具,而是真正为机器交互设计的协议。对于需要 AI 自主完成端到端工作流的场景(生成报告→自动发送→另一服务接收处理),这是目前最干净的解决方案。但需注意其"简单即代价"的设计哲学:无服务端中转意味着失去离线弹性和审计能力,需根据场景权衡。