AI 辅助完成的开源工程范本 —— Orion 项目背后的 vibe coding 实践(老拐版)
[
]
一、为什么要写这篇文章
过去几年里,AI 编程工具层出不穷。刚开始的时候,大家还在尝试让 AI 写几行代码、帮忙改个 bug,更多是“玩具式”的使用。
但在 2025 年,我真正用 AI(Codex、Claude 等)搭建了一个完整的工程:Orion,一个统一通知网关。
它几乎所有代码都由 AI 生成,我本人主要做的是 glue(拼合、调整)和规范制定。
这件事让我意识到:
👉 如果 AI 能批量写代码,而人类负责写规范、制定工程规则、审计开发过程 —— 我们是不是能进入一种新的工程范式?
这就是我所说的 vibe coding。
二、过程:AI 生成 vs 人的 glue
- AI 的部分:
- 一次性写出后端 FastAPI + SQLAlchemy 的骨架,带上 Alembic 迁移。
- 前端用 Next.js + Tailwind,页面和 API 调用 scaffold 都生成得挺完整。
- Docker Compose 一键起,甚至连基础配置都补齐了。
- 我的部分(glue):
- 我写了
AGENTS.md,作为单一真源(Single Source of Truth),明确规定目录结构、提交规范、分支策略。 - 我把每次和 AI 的对话存到
agents_chat/,保证过程可追溯。 - 我审计 AI 的产出,把风格不一致的地方修补掉。
- 我写了
换句话说:AI 是施工队,我是总工 + 质检员。
三、工程规范:从“能跑”到“能运”
很多人觉得 AI 写出来的东西只能跑个 Demo,上不了生产。但 Orion 的经验是:只要配合规范,AI 写的代码一样能走向生产。
- AGENTS.md:
- 这是项目的“宪法”。所有其他 agent 文件(Claude、Gemini、Cursor 规则等)都只是它的 symlink。
- 它定义了:后端分层(core/api/domain/adapters/repository/services)、前端分层(app/components/lib)、commit message 的风格、CI 流程。
- 它还规定:文档优先,改代码前必须先改文档。
- agents_chat/:
- 每次代码提交,都必须有一份 Markdown 记录,内容包括需求、背景、改动、结果、TODO、关联 commit。
- 命名必须是
YYYY-MM-DDTHH-MM-SSZ-topic.md,前面还有 YAML frontmatter。 - CI 会强制检查,凡是改动核心目录的 commit,如果没带
agents_chat,直接不让过。
这种设计,让 AI 生成的过程 可审计、可复现、可学习,而不是一堆“黑箱产物”。
四、提交路径:一条金线
我在 Orion 上总结了一条很有价值的路径,分享给大家:
- 文档先行:先写设计文档、接口草案。
- 竖切 MVP:从 API → 单一适配器(比如飞书)→ 存储 → 简单可观测。
- 可靠性基线:幂等键、重试退避、死信队列、限流、熔断。
- 安全加固:敏感配置加密、审计日志、RBAC。
- 可观测 & 运维:投递生命周期追踪、Grafana 仪表盘、失败告警。
- 生态扩展:新增适配器、SDK、多语言模板、工作流编排。
AI 负责 1-2 的大头,我负责把 3-5 强制落实。这样,项目就不是“能跑的玩具”,而是“能运的系统”。
五、和人工写项目的对比
- 速度:AI scaffold 的效率无人能敌。
- 一致性:如果没有规范,AI 的输出会飘。但有了
AGENTS.md+ CI 强制,风格就能统一。 - 质量差距:AI 擅长把功能写出来,但可靠性(幂等、熔断、退避)、安全性(加密、权限)、可观测性(追踪、告警)需要人来补。
换句话说,AI 给了速度,人补上深度。
六、对开源和教育的启发
- 开源:以前开源的是代码,现在开源的是 开发过程。
- 通过
agents_chat,大家能看到完整的“需求 → Prompt → AI 输出 → Commit → 审计”。
- 通过
- 教育:这比任何教程都更直观。学生不仅能学会“怎么写”,还能看到“为什么这么写”。
- 未来:如果更多项目采用 vibe coding 模式,我们就能构建一个“代码 + 过程”双轨的开源生态。
七、总结与思考
Orion 给出的答案是:
- AI 可以写完整工程。
- 人要写规则、做审计。
- 过程要强制沉淀(agents_chat)。
- 提交路径要从能跑到能运。
这就是 vibe coding 的生产落地范本。
📌 老拐的思考:
我不是在证明 AI 有多强,而是在证明 —— 如果把 AI 当作“参与者”,我们能不能创造出一种 可控、可学、可持续 的新型工程范式?
Orion 只是开始,但它已经让我确信:答案是 可以的。
关于老拐瘦
中年争取不油不丧积极向上的码农一名
咖啡,摄影,骑行,音乐
样样通,样样松
喜欢可以关注一下公众号 IT老拐瘦

目前个人博客长驻: yfge.github.io