GitHub 是过去 20 年最好的产品之一。puppyone 自己就 host 在上面。我们不替代它。
我们想说的是:当你问"我的 Agent 在哪里读写所有不是应用代码的东西"时,答案不是 GitHub。这是我们眼睁睁看着很多团队碰墙之后才想明白的一句话。
GitHub 围绕一个特定的舞步做:人写代码,开 PR,另一个人 review,CI 跑,merge。所有产品面 —— protected branch、required review、status check、branch protection —— 都是为了让"人评审-再合并"这套舞跳得安全。
Agent 不这么跳。它 90 秒能写 200 个文件。它对同一个计划要试 14 次才对。这些写入大多数不该开 PR;有些该被静默覆盖;少数该开分支。把这些都放进 GitHub 要么是一墙没法 review 的 PR,要么是一堆没保护直接 push 到 main 的 commit。两个都不是 GitHub 的用途。
puppyone 就是为这个建的:一个 Git 形状的底座,Agent 是一等写入方,历史自动,人只 review 真正重要的切片。
| 维度 | GitHub | puppyone |
|---|---|---|
| 主要用户 | 写代码、评审代码的人 | 读写上下文的 Agent |
| 基本单位 | 仓库 + commit + PR | 工作空间 + commit(不强制 PR) |
| 写入模型 | author commit → push → 开 PR → review → merge | Agent 写 → 自动 commit → 继续(review 可选,事后做) |
| 身份 | per-user(GitHub 账号) | per-agent(带明确身份的 Access Point) |
| 权限 | 仓库级 / 组织级 / 分支保护 | per-agent 路径 scope(/research 读、/output 写) |
| 存什么好 | 代码、构建产物、release | markdown、JSON、CSV、生成报告、scratch、ingest 的 SaaS 数据 |
| 原生接口 | git CLI、Web、GitHub API | Bash、SSH、MCP server、REST API、sandbox 挂载 |
| diff / 历史 | per-file diff、commit log、blame | per-file diff、commit log、per-agent provenance、秒级回滚 |
| SaaS 接入 | 没有(它是 Git 托管) | 内置:Notion、Slack、Gmail、Postgres 等 |
| 能否自托管 | 能(GitHub Enterprise) | 能(开源、Docker) |
| 真正擅长 | 代码、release、人的评审 | Agent 上下文、多 Agent 协作、SaaS 形状的知识 |
让 GitHub 干它最强的活:上线前需要人评审的代码。
我们不替代这些。puppyone 没有 PR 流程。我们没有 CODEOWNERS。我们不是代码托管。
写入方是 Agent,内容不是应用代码的时候用 puppyone:
main。如果你一直在为"Agent 用"建私有 GitHub 仓库、然后看着它们变成不可评审 commit 的坟场 —— 你在重新实现错的原语。puppyone 才是那些仓库本来想成为的样子。
只要团队同时跑工程和 Agent,几乎都长这样:
干净的规则:代码走 GitHub PR;其他所有东西作为自动版本化的文件留在 puppyone 里。边界就是"上线前是不是要人 review"。
有人试过。三件事可预期地坏:
/specs 但不能读 /finance"。要么所有人看所有,要么拆成十几个仓库各自鉴权 —— 然后你的 Agent 要去玩 token 和 API 限流的杂技。git add / git commit / git push 要么很脆(一次网络抖动断链),要么很吵(你的 main 一天一千条 "wip" commit)。puppyone 在存储层默认就是"写即 commit",不需要胶水代码。你完全可以用 Git 仓库当"Agent 上下文存储"撑两周。通常在第三个 Agent 或者第二个集成的时候开始崩。
per-product 的 Agent 记忆在那个产品内很好用。它不是共享底座。
会撞上的问题:
puppyone 在它们底下。同一个工作空间通过 MCP 暴露给 Cursor、通过 MCP 暴露给 Claude Code、通过 REST 暴露给 n8n、通过 Bash/SSH 暴露给你的自建代码 —— 任何会用文件的东西。每个工具保留自己 product 级的记忆;puppyone 是跨 product、跨 Agent 那一层,让"共享上下文"真的等于共享。
不存在迁移。GitHub 不动。
/repos/your-app/、/specs。Researcher 读 /research 写 /research-notes。它们拿到正好需要的切片。一个月后你会看到:GitHub 装可评审的代码;puppyone 装宇宙剩下的部分;Agent 看到两边,你的 main 不再淹没在"wip from agent run #2,481"里。
puppyone 替代 GitHub 吗? 不。我们不 host 你的代码、不跑你的 CI、不替代你的 PR review。GitHub 干这个,干得很棒。我们存 Agent 可读、可写、不属于代码仓库的那层上下文。
puppyone 是基于 Git 的吗?
我们在存储层借用 Git 的思路(commit、diff、branch、回滚)。我们不是 Git 托管,也不 1:1 暴露 git 语义。重点是给 Agent Git 风格的保证,但不让它每次写都做 Git 仪式。
puppyone 能往 GitHub 开 PR 吗? 能 —— GitHub 连接器支持双向操作,包括从 Agent staged 改动开 PR。评审 gate 留在 GitHub。
AGENTS.md 应该放 puppyone 还是 GitHub? GitHub,跟它描述的代码挨着。puppyone 从那里读。AGENTS.md 是关于这个仓库的文档,应该跟仓库一起。
为什么不给每个 Agent 建一个 GitHub 仓库? 能。然后你会花大量时间管仓库的创建、删除、权限、token、限流、Agent 间隔离。puppyone 给你的是一个工作空间加 per-agent Access Point —— 没有仓库爆炸。
GitHub 给人评审的代码做版本控制。puppyone 给 Agent 读写的上下文做版本控制。同样的 Git 形状,不同的活。代码留 GitHub。Agent 碰的其他所有东西放 puppyone。在该有缝的地方接起来。
别再把私有 GitHub 仓库变成 Agent 的坟场。给它们一个真正的工作空间。Get started