关于这个项目
这个网站本身,是它讲述的事情的第一个证据。 它是用 4 个 AI Agent 协作搭建的全栈站,既是博客,也是作品集,也是 vibe-coding 协作流程本身的展示场。 我不写代码 —— 所有代码、文案、设计决策都由 AI 完成,我的角色是提需求 + 拍板 + 验收。
项目动机
- 求职:把自己应聘 vibe-coding 实习岗位的"简历附件作品"做出来,需要一个能讲故事 + 能跑起来的载体
- 方法论:验证"AI 协作能不能取代单人 vibe-coding"。一个人指挥 Claude 是 vibe-coding,4 个 Agent 互相派活、互相审,协作本身就成了产品
- 公开试验:整个开发过程会被写成 7 篇博客,部署稳定后写第 8 篇上线复盘
不做"关于我"页 —— 因为这个项目不该被任何"我个人是谁"的叙事盖过。它的可信度全部建立在 git history 和这套协作 MD 协议上。
4 个 Agent 的协作架构
每个角色都有一个私域 MD 卡片(协作/前端-Claude1.md / 协作/后端-Claude2.md / 协作/后端-Codex.md)和唯一的进度真源(协作/任务板.md)。
权限红线:通过 / 完成 / 合并 / STOP_NOW 只有 PM 能写。其它 Agent 越权写入视为无效,PM 下一次巡检时会撤销。
工程协议的核心 = 任务状态机
草稿 ──PM──▶ 待领取 ──Agent 领取──▶ 进行中 ──Agent──▶ 提交
│
PM 审核 ◀────┘
│ │
┌───────┘ └────────┐
▼ ▼
通过 打回(回到 进行中)
│
▼
完成
每个 Agent 只会扫"负责自己 + 状态 ∈ 打回"的第一条任务,改成 进行中,干完改成 提交。
PM 巡检时只看 提交 状态的任务,审核后改 通过 / 打回。状态机就是协作语言本身,不再依赖 prompt 调优。
不停止机制
Agent 启动后进入工作循环 —— 没活干就 sleep 60s,10 次后切到 300s。用户感知是"3 个 Agent 始终在线",实际上是 PM 在 invocation 自然结束后用 Agent 工具续命。 这一条让协作从"我喊一次它干一段"变成了可后台运行的小型软件团队。
技术栈
| 层 | 选型 | 注 |
|---|---|---|
| 前端框架 | Next.js 16.2.6 (App Router) + React 19 + TypeScript strict | Turbopack 默认 |
| 样式 | Tailwind v4 + shadcn/ui + framer-motion + next-themes | oklch token + 自定 --brand |
| 内容管线 | @next/mdx + remark-gfm + rehype-slug + rehype-pretty-code + Shiki 双主题 | Plugins 必须用字符串名(Turbopack 约束) |
| 后端 | Fastify 5 + Zod + helmet + rate-limit + pino | apps/api |
| ORM | Prisma 6 | apps/api/prisma/schema.prisma |
| DB | SQLite(dev / 起步) → 后期可选 PostgreSQL | dev.db |
| Monorepo | pnpm workspace | apps/web + apps/api |
| 部署 | 前端:Vercel / 后端:美国服务器 + Nginx + PM2 | 域名待定 |
数据流
正文(MDX 文件)在 build 时被 Turbopack 切成静态 chunk,部署后浏览器直接拿 HTML。
互动数据(浏览 / 点赞 / 评论 / 订阅)走 /api/* 到 Fastify,Prisma 落 SQLite。
这一拆分让前端可以 Vercel 极速分发,后端在自己服务器上可控,博客式 + 作品集式访问都能扛。
协作文档清单
如果你想看协作流程本身长什么样,真正的源在仓库里:
协作/协作总览.md— 项目级 ground truth(角色、状态机、不停止机制、产品规格)协作/任务板.md— 唯一的进度真源(每条任务的状态 + 备注 + 提交记录)协作/前端-Claude1.md— 前端 Agent 的角色卡 + 私域笔记协作/后端-Claude2.md— 后端 Tech Lead 的角色卡协作/后端-Codex.md— 后端编码 Agent 的角色卡进度/README.md— 项目级总览,任何 AI 接手只需要读这一份
这套方法适合谁
适合愿意把"AI 协作"当工程问题做的人:不依赖单次 prompt 灵光,把流程写到磁盘,把权限边界写成红线,把状态机当成 API。 不适合"我让 AI 一次写出整个 SaaS"的期望 —— 那是另一个项目的诉求。
想看具体怎么落地?去 /blog 读建站过程的实录,从 Hero 卡片到 MDX 管线到 SEO 一路写下来。