跳到主要内容

AgentFS 文件系统

AgentFS 就像每个智能体的"家"

如果把 DesireCore 比作一个社区,那么 AgentFS 就是每个智能体在这个社区中的"家"。这个家里有它的个人档案、工作手册、技能证书、记忆日志,还有每次工作的回执存档。

你可能会问:为什么不用数据库来存这些东西?

答案很简单:文件是最透明的数据形态。你可以直接打开文件看到智能体的一切 -- 它的性格、它学会的规则、它记住的事情。不需要写 SQL 查询,不需要专门的数据库管理工具。

设计灵感

AgentFS 的设计灵感来源于 Linux 操作系统的文件结构:

Linux 文件系统AgentFS类比说明
/usr/share/app/agents/<id>/软件本体,可共享
/home/user/users/<user_id>/用户私有数据
/var/run/runs/运行时临时文件
/var/cache/cache/可重建的缓存
/var/log/logs/日志记录

整体目录结构

~/.desirecore/
├── config/ # 全局配置(你的个人设置)

├── agents/ # 所有智能体的"家"
│ └── <agent_id>/
│ ├── agent.json # 身份证:基本信息和配置
│ ├── persona.md # 性格档案:沟通风格、决策偏好
│ ├── principles.md # 行为准则:规则、禁区、底线
│ ├── memory/ # 记忆库:它记住的事实和经验
│ ├── skills/ # 技能包:它学会的各种技能
│ ├── workflows/ # 工作流:复杂任务的执行计划
│ ├── tools/ # 工具箱:它能使用的外部工具
│ ├── heartbeat/ # 心跳:主动关注和监控的内容
│ ├── resources/ # 参考资料:文档、知识库
│ ├── assets/ # 静态资源:图片、模板
│ └── .git/ # 版本控制

├── users/ # 用户专属数据
│ └── <user_id>/
│ ├── profile.md # 你的个人画像
│ ├── preferences.md # 你的偏好设置
│ └── agents/ # 你与各智能体的"关系"
│ └── <agent_id>/
│ ├── relationship.md # 互动记录和关系
│ ├── memory/ # 你与这个智能体的专属记忆
│ └── preferences/ # 你对这个智能体的专属设置

├── runs/ # 运行记录(临时)
├── cache/ # 缓存(可重建)
└── logs/ # 日志

核心目录解析

agents/ -- 智能体本体

这是智能体的"灵魂"所在。每个智能体就是一个 Git 仓库,包含:

文件/目录用途类比
agent.json智能体的基本信息、版本号身份证
persona.md性格、语气、决策偏好性格特征
principles.md行为准则、红线、底线职业操守
memory/积累的知识和经验长期记忆
skills/学会的各种技能技能证书
tools/能使用的外部工具工具箱

users/ -- 用户私有数据

你的个人数据完全独立存放,与智能体本体严格隔离。即使你使用同一个智能体,你的数据也不会和其他人混在一起。

runs/ -- 运行记录

每次任务执行的详细过程,包括回执、会话记录等。这是"事后审计"的数据来源。

为什么用文件系统而非数据库

特性文件系统数据库
透明度直接打开文件就能看需要查询工具
版本控制Git 原生支持需要额外方案
可移植复制文件夹即可迁移需要导出/导入
可审计每次修改都有 Git 记录需要审计日志
AI 友好AI 直接读写文件需要 API 适配
离线可用本地文件随时可用可能依赖服务

文件驱动的好处

1. 智能体可以"自己改自己"

因为一切都是文件,智能体可以直接读写自己的文件来学习和进化。比如,当你教它一条新规则时,它会把规则写入 principles.md。这比通过 API 操作数据库要简单得多。

2. 人类可以轻松审阅

所有变更都是文件 diff。你可以像审查代码一样审查智能体的每次"学习成果"。删了什么、加了什么,一目了然。

3. 可以像软件一样分发

智能体本体是一个 Git 仓库,可以 clone、fork、发布到市场。你培养好的智能体,可以分享给其他人使用。

4. 天然支持回滚

做错了?git revert 就回去了。不满意最近的"进化"?回退到之前的版本即可。

分层加载

为了节省 AI 模型的 token 消耗,AgentFS 采用三级加载策略:

层级内容消耗用途
L0一句话摘要极少快速筛选、路由
L1核心信息 + 适用场景较少规划和决策
L2完整内容按需实际执行

这意味着智能体不需要每次都读取所有文件,而是按需加载,既节省成本又提高效率。

下一步

  • 想了解智能体的各种记忆类型?请前往用户指南中的记忆系统章节
  • 想了解文件的具体格式?请阅读文件格式说明
  • 想了解数据存储在哪里?请阅读数据存储位置