puppyone vs 本地文件 / VPS / VM:'就放硬盘上'什么时候撑不住 AI Agent

2026年4月23日puppyone team

TL;DR

  • 笔记本、Mac mini、VPS、VM 上的本地文件是最简单的 Agent 工作空间。零安装、零配置、完全控制。一个人做实验非常好。
  • puppyone 是你在"就放硬盘上"撑不住时会自己做出来的东西。 当你需要 per-agent 权限、自动版本历史、SaaS 接入、MCP 暴露、多 Agent 协作,或者任何另一个人或 Agent 要可靠地读到那里的内容。
  • 这不是劝你今天就迁。是诚实地标出哪些问题本地能解决、哪些不能、以及大概在第三个 Agent 或第二个同事的时候你会撞上什么。

老实话

很多人一开始就是给 Agent 一个笔记本上的文件夹。这是对的。第一天不要 over-engineer。

我们看着每个把 AI Agent 从 demo 推到生产的团队,几乎都按下面这个顺序碰墙:

  1. 第 1 天: Agent 写到 ~/projects/research/。神奇。
  2. 第 2 周: Agent 覆盖了昨天的活。你想给它接 Git。
  3. 第 4 周: 第二个 Agent 加入。两边都写同一个文件夹。冲突。
  4. 第 2 个月: 同事想看输出。你 SCP 给他。然后他改了。现在两份。
  5. 第 3 个月: Agent 要 Slack 线程 / Notion 规格 / Postgres 切片。你写了同步脚本。脚本崩了。你修。又崩。
  6. 第 4 个月: Agent 跑坏了一次,把一个文件夹清了。没历史。没回滚。你从昨天的 tarball 恢复,丢一天活。
  7. 第 5 个月: Agent 读了不该读的路径。权限是"谁跑的进程谁有"。
  8. 第 6 个月: 你要么自己重新做 puppyone,要么用 puppyone。

这不是吐槽本地。本地诚实、快、免费。问题是你接下来建的东西 —— Git、同步脚本、权限封装、备份 cron、MCP shim、多 Agent 路径约定 —— 正好是 puppyone 已经是的东西。

并排对比

维度本地文件(笔记本 / Mac mini / VPS / VM)puppyone
建设成本零,文件系统已经在那。安装(npm / Docker)然后 init 一个工作空间。
per-agent 权限没有。谁跑进程谁能读所有。per-agent Access Point,明确读写路径 scope。
版本历史手动 git,记得 commit 才有。自动 —— 每次写都是 commit,带 author / diff / 回滚。
多 Agent 协作自己搞,希望它们不互相覆盖。原生。路径 scope 防冲突,分支允许并行写。
SaaS 接入自己写脚本,永远自己维护。内置:Notion、Slack、Gmail、Postgres、GitHub 等。
MCP / Agent 友好访问自己写 MCP server。内置 —— 工作空间通过 MCP / Bash / REST / sandbox 挂载暴露。
审计没有,除非自己建。每次读写都按 Agent 身份记录。
回滚从备份恢复,希望够新。秒级 per-file / per-folder 回滚。
跟人 / 其他 Agent 共享SCP、同步脚本、口口相传。同一个工作空间,一个 URL/MCP endpoint,per-consumer scope。
自托管 / 数据主权顶级(就是你的硬盘)。顶级 —— 开源、Docker、跑在你 VPC 里。结果一样。
成本你已有的硬件。免费档 + 云 / 自托管。
真正擅长个人实验、单 Agent prototype、确定永远本地的东西。任何要超过 prototype 寿命的东西。

什么时候本地确实是对的答案

我们老实说。这些情况留在本地:

  • 个人实验 / prototype / 一次性脚本。 不需要权限、历史、共享。
  • Agent 只读你本地文件 —— 比如 Cursor 读你的仓库。Cursor 已经有文件系统,你不需要再叠一层。
  • 严格主权要求,自托管软件都不能满足(罕见;通常 puppyone 自托管 Docker 模式在这里就够,但本地是绝对底线)。
  • 个人 scratch,不指望别人读 —— 日常笔记、扔掉的转换。
  • 现在就是不想加新依赖。 行。需要更多的时候你会知道。

如果你的情况符合上面,你不需要 puppyone。我们不假装相反。

什么时候本地不再是对的答案

会有感觉。信号:

  • 你开始在 Agent 工作空间里 git init 因为你在丢写入。(你重做了 puppyone 5%。)
  • 你写了同步脚本 把 Slack / Notion / 一个数据库查询拉到文件夹。(再 10%。)
  • 第二个 Agent 加入 你开始用 agent_a/ agent_b/ 文件夹隔开。(per-agent 权限,差版。)
  • 同事想看 Agent 写了什么 你开始共享文件夹 / 配 SCP / 截图。(分发问题。)
  • Agent 把文件夹清了 你伸手要备份。(审计 + 回滚问题。)
  • 你开始在本地文件夹前面写 MCP server 让别的 IDE / Agent 能访问。(你重做了 puppyone 的前门。)

中两条以上,你正在自己掏 puppyone 的成本 —— 但没有得到 per-agent 身份、自动 commit-on-write、SaaS 接入。该换了。

什么时候两个一起用(比你想的常见)

本地和 puppyone 不是二选一:

  1. 快速 scratch 和个人脚本留在本地。 30 秒的实验,还不确定输出值不值得。
  2. 任何确实重要的东西提升到 puppyone。 一旦 Agent 输出会被另一个 Agent / 同事 / 未来的你读,它就属于一个带历史和 scope 的工作空间。
  3. 本地文件夹有用就挂进 puppyone。 puppyone 的连接器层能像拉 Notion / Postgres 一样从本地或 VPS 路径拉文件。
  4. 在你已经在用的同一台 VPS / Mac mini 上自托管 puppyone。 你不丢任何主权;你拿到版本历史、多 Agent 权限、MCP/REST 访问。

干净的规则:scratch 在本地;丢了会后悔的在 puppyone

"为什么不直接在 VPS 上自托管 Git?"

可以。有人在做。一个有自律的人能跑通。常见崩点:

  • Git 权限模型是仓库级。 没有 per-agent 路径 scope。(同我们在 puppyone vs GitHub 描述的问题。)
  • Agent 不能信任每次 git add / commit / push 都对。 push 失败、merge 冲突、写到一半 rebase —— 都吃 Agent 工作。
  • Git 没有 SaaS 连接器。 你又得回去写同步脚本。
  • Git 没有原生 MCP / Bash / REST Agent 表面。 你要建。

VPS 上自托管 Git 没问题。它只是和 puppyone 不是同一个产品,即便都借了 Git 的形状。

"Syncthing / Dropbox / iCloud 当 Agent 工作空间呢?"

同步产品解决"这个文件夹在多台机器上保持一致"。它们不解决:

  • 带 diff 和回滚的版本历史 —— 大多数同步产品有 30 天软回收站,仅此而已。
  • per-agent 权限 —— 同步是 per-account,不是 per-process。
  • MCP / Bash / REST 原生接口 —— 它们是文件树复制器,不是 Agent 表面。
  • SaaS 接入 —— Slack 线程不会出现在 Dropbox。
  • 审计 —— 谁、什么时候、从哪个 Agent 写的什么 —— 同步不记。

同步擅长跨设备保持文件夹一致。它不是 Agent 工作空间。

实际怎么"迁"

不存在大迁移。现实路径:

  1. 别删本地。本地留着。 它仍然是你快速实验的 scratch 表面。
  2. 起一个 puppyone(云端,或在你已有的 Mac mini / VPS 上 Docker 自托管)。
  3. puppyone init "your-project" 然后下一个持久产物开始写到这里,不是 ~/projects/research/
  4. 把你之前手动同步的 SaaS 或本地源接成连接器 —— Notion、Slack、Postgres,甚至本地文件夹路径。它们以文件出现在工作空间里。
  5. 每个 Agent 给一个 Access Point。 不再用 agent_a/ agent_b/ 文件夹 hack;per-agent scope 是一等公民。
  6. 通过 MCP / Bash / REST 把工作空间暴露给你在用的 IDE 和 Agent —— 同一个工作空间,多个前门。

一个月后本地还是它本来的样子 —— 你的 scratch 空间。puppyone 是你如果有时间就会自己做出来的那个东西。

FAQ

puppyone 要求我把笔记本上所有东西都搬走吗? 不。你可以把本地路径接成连接器,继续在本地工作。不主动提升的就留在本地。

puppyone 自托管的主权真的等同我自己的 VPS 吗? 是 —— 开源代码、Docker 部署、完全在你 VPC 里跑。没有任何东西离开你基础设施。和本地一样的数据主权,加上版本 / 权限 / 连接器层。

puppyone 能跑在 Mac mini / 树莓派 / 便宜 VPS 上吗? 能。资源占用小。很多团队就跑在办公室一台 Mac mini 或者 10 美元一月的 VPS 上。

能把 puppyone 同步回本地文件做离线访问吗? 连接器层是双向的 —— 你可以把 puppyone 工作空间的一部分镜像到本地文件夹,反之亦然。

我是单人开发者只有一个 Agent。需要 puppyone 吗? 大概率还不需要。继续本地。看到上面警告信号有两条的时候再回来。

再说一遍 TL;DR

本地是对的起点。对任何超过一个 Agent 或一个人的团队,它不是对的终点。puppyone 是你为了解决这个会建的东西 —— 已经建好、已经开源、可以跑在你同一台 VPS 上自托管。不需要的时候别迁。需要的时候你会知道。

本地撑不住的时候,直接拿到你本来要自己建的工作空间。Get started