Agent 的虚拟文件系统
什么是 Agent 眼中的虚拟文件系统?
- 定义: Agent 访问的并非单一存储,而是一棵虚拟文件系统(virtual filesystem)——来源、生命周期与权限各异的存储被挂载(mount)到同一目录树下;
- 统一接口: Agent 通过
read_file/write_file/list_dir访问整棵树; - 底层实现: 可能是本地临时盘、持久对象存储、第三方云盘 API 或只读的系统资源包;
- 设计前提: 明确每一区域的可见性与生命周期,相当一部分并发冲突与信息泄露源于把本应隔离的区域混置;
- 类比: 这棵目录树相当于 Agent 的地址空间,四类区域就是权限各异的内存段——有的私有可写,有的多方共享,有的只读;
四类区域各自是什么?
- 一、Agent 专属工作区(Scratchpad): 每个 Agent 实例独享的私有目录,存放中间产物、临时文件、草稿与调试日志,生命周期与实例绑定,对其他 Agent 与用户不可见;
- Scratchpad 的双重作用: 避免多个 Agent 的临时文件相互覆盖,同时保持主 Agent 上下文精简——子 Agent 的试错留存于自身工作区,只把最终产物提交至共享空间;
- 二、多 Agent 共享空间(Shared Workspace): 多个 Agent 共同读写且用户可见的协作区域,是不共享上下文架构下交换产物的主要媒介;
- 共享空间实例: Glossary Agent 写入术语表、Translation Agent 从中读取;用户也可上传原始文件、下载最终交付物;生命周期与整个任务绑定,需要持久化;
- 共享空间风险: 作为多方并发读写区域,是并发冲突的高发处,乐观锁与工作副本隔离(worktree)均作用于此;
- 三、外部挂载资源(Mounted External Resources): 用户授权接入的第三方信息源——Google Drive、Notion、Dropbox、企业 Wiki 等,经适配器(adapter)映射为挂载点(如
/mnt/gdrive); - 四、系统内置资源(Built-in System Resources): 系统预置、对所有 Agent 只读共享的资源包,典型代表是 Skills——以文件形式组织的知识文档与脚本,挂载于
/skills等路径,按渐进式披露取用;还包括参考手册、模板库与共享工具定义;
外部挂载资源有哪三项特殊性质?
- 访问受外部权限约束: 用户在源系统中的权限决定 Agent 的可见范围;
- 延迟更高且一致性更弱: 每次读取是一次网络往返,数据可能已被外部修改,只能按最终一致性对待;
- 以按需只读为主: 写回外部源须谨慎,误写可能污染用户的真实数据;
- 设计含义: 统一文件接口让 Agent 无需为每个数据源定制专用工具,但也掩盖了性能与安全差异,因此需在挂载层面显式管理只读/可写、超时与凭证边界;
四类区域如何逐项对比?
表10-3 Agent 虚拟文件系统的四类区域
| 区域 | 可见性 | 生命周期 | 读写 | 并发控制 |
|---|---|---|---|---|
| Agent 专属工作区 | 仅该 Agent | 随 Agent 实例销毁 | 读写 | 不需要(私有) |
| 多 Agent 共享空间 | 所有协作 Agent + 用户 | 随任务持续,需持久化 | 读写 | 需要(乐观锁 / worktree) |
| 外部挂载资源 | 视外部授权而定 | 由外部源决定 | 多为只读,写需谨慎 | 由外部源负责 |
| 系统内置资源 | 所有 Agent | 跨会话稳定 | 只读 | 不需要(只读) |
为什么文件路径可以作为通用接口?
- 做法: Agent 间传递产物、主 Agent 向子 Agent 交接输入、乃至跨组织 A2A 协作交换产物,传递的都是轻量的路径字符串,而不是把内容载入上下文窗口;
- 收益: 上下文只保留索引,大产物留在文件系统,避免上下文膨胀;