视频加载失败

选什么初始项目作为vibecodeing的初始化,最适用于AI全栈的开发框架one-is-all(二)

1639 字
8 分钟
选什么初始项目作为vibecodeing的初始化,最适用于AI全栈的开发框架one-is-all(二)
选什么初始项目作为vibecodeing的初始化,最适用于AI全栈的开发框架one-is-all(二)
选什么初始项目作为vibe-codeing的初始化,最适用于AI全栈的开发框架one-is-all(一)
2026-04-27全栈#one-is-all#fresh#deno#solo

在上一期中,我介绍了one-is-all的选型,以及初始化。中间各种事情穿插,也没有好好整理和发文,这一期,我将详细讲解一下

命名与形象#

oia,中文读作「咿呀」。名字取自希腊圣托里尼岛的伊亚镇(Oia)——那个悬崖边上看”全世界最美日落”的艺术家村落。而她的全称是 one is all,「一即是全」:希望她能直接作为模型实现所有程序的基座。声调”咿呀”像孩童学语,也预示着这个项目将蹒跚学步,随着模型与智能体一同前进。

一句话定义:oia 是一个面向 AI Agent 的全栈框架脚手架。它不是提供给人类开发者的,而是便于模型理解、修改、运行一个安全完整的程序——包含前后端,乃至跨平台。

当前版本基于 Deno + Fresh 2.3.3 + Preact + Vite,配套 npx @oia-ai/oia-skill 一键安装的 Claude Code skill。

选型#

有人会问:模型写 fresh/deno 的能力明明不如 next 和 node,为什么不直接用 next,反而要造轮子?

因为我看到的是另一个方向:deno 正在蓬勃地向 AI 靠拢,而 next/node 生态背着太多为”人类旧生态”设计的包袱。混乱的旧生态,有没有可能被一套原生适用于 AI 的新生态取代?oia 就是这个问题的实验田。

基于此,框架存在三条底层共识:

  1. 前后一体。前后端必须在一个目录里,对模型来说,一个仓库就是一份完整上下文,减少跨项目切换的认知成本。
  2. 选型最小化。依赖越少,模型越容易理解全貌,开发环境秒起,CI/CD 也快。
  3. 用 skill 和 spec 约束模型。不给模型自由发挥的空间,而是用规范收拢它。

设计#

落到架构上,oia 的核心是「可预测性」。

目录即文档。routes、islands、components、features、server——每个目录职责单一且高度可预测,模型看目录结构就能推断系统边界,不需要猜测。相同类型的问题永远用相同的解法:路由薄、用例编排、仓储隔离,route → service → repository 的调用链是一条直线。

交互局部化。Fresh 的 Islands 架构被放在首要位置:默认组件都是服务端渲染,只有真正需要浏览器交互的部分(输入框、拖拽、WebSocket)才做成 Island。目标是把 JavaScript 限制在真正需要交互的边界,SSR 优先,小 JS 优先。

最小化运行时。默认数据库是 SQLite——单文件、零运维、随部署走。Redis、消息队列、独立搜索服务这些中间件一概不默认引入,只在真实需求出现时才通过明确的接口边界接入。禁止”为了看起来像生产架构”而堆砌中间件。

约定优于魔法。这可能是最反直觉的一条:框架拒绝 BaseRepository、AbstractController 这类”为了架构感”的抽象。当一个实现看起来更工程化,却需要更多隐含上下文时,优先选择更简单、更显式的方案。

与 AI 协作:Rules 不等于 Skills#

讨论框架如何”深度结合 AI 开发”,我想先澄清一个很容易被搞混的概念:

Rules ≠ Skills。

Rules 是告诉 Agent「这个项目用 Deno、组件用函数式写法、不要直接修改生成文件、所有 API 必须有输入验证」——它是常驻上下文(Always-on Context),无论做什么任务都生效。

Skills 回答的则是另一类问题:「如何初始化一个项目」「如何设计一个 API」「如何做一次 code review」——它是按需加载的工作流(Workflow / Capability),只有相关任务出现时才被唤起。

这一区分正在被整个 Coding Agent 生态采纳:从最早一份 CLAUDE.md / AGENTS.md 包打天下,到独立的 Skills,再到把需求 → 计划 → 执行 → 验证 → Review 串成完整的 Agent Workflow,方向已经相当清晰。因此 oia 从第一天起就没打算把所有指令塞进一个巨大的规则文件,而是分成两层:宪法归宪法,技能归技能。

一部宪法,一套技能#

oia 仓库里最重要的一份文件不是代码,是 AGENTS.md——一部写给 Agent 的宪法。

它有近三千行,从最高优先级规则、推荐目录结构、路径职责表,到 Fresh 路由规范、错误处理分层、Deno 权限模型、AI Prompt 安全(区分 Instruction 与 Data,防注入)、测试最低标准,事无巨细。它甚至规定了 Agent 完成任务后的输出格式与检查清单。

Tip

此部分将在下个版本中重写,重写原因在该文章

‘认真思考后,我重构了oia的上下文管理,给oia增加渐进式披露’

宪法解决的是「永远不能违反什么」,而反复出现的具体工作流,则沉淀为 Skill。第一个落地的技能是 oia-skill:它把「检查 Deno 环境 → 执行 npx @oia-ai/oia-fresh init 脚手架 → 启动开发服务器 → 轮询 5173 端口验证」这套初始化流程完整封装,Agent 一句”帮我初始化一个 oia 项目”就能可靠跑完。它随 npm 包 @oia-ai/oia-skill 发布,一条命令即可安装:

Terminal window
npx @oia-ai/oia-skill # 安装到当前项目
npx @oia-ai/oia-skill --global # 安装到用户目录

下一步#

一部宪法加一个初始化技能,只是起点。我心目中的终局,是让 oia 覆盖完整的研发闭环:

需求 → 设计 → 开发 → 测试 → 部署 → 上线
↑ ↓
└────────── 经验沉淀为新 Skill ──────────┘

Agent 在项目里踩过的坑、验证过的最佳路径,应该能被识别、结构化、沉淀成下一次可复用的 Skill——让项目拥有自己的”长期记忆”。到那时,主题就不再是”AI 帮我写代码”,而是”项目本身拥有一套可持续运转的 AI 工程系统”。

全部信条收敛为一句:

这个项目不是为了让人类写出最多代码,而是为了让 Agent 用最少上下文写出正确代码。

Predictability > Cleverness,Explicitness > Magic。

咿呀学步,与模型同行。下一期,讲讲实际用 oia 跑通一个完整项目的开发实录。

Pankitgg
/
one-is-all
全栈框架路线的探索-从fresh2开始的大模型AI融合之路 Exploring the Full-Stack Framework Path: The Journey of Integrating Large-Scale AI Starting with Fresh2
—
—
no-license
JavaScript

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
选什么初始项目作为vibecodeing的初始化,最适用于AI全栈的开发框架one-is-all(二)
https://blog.ai-nous.com/posts/适用于ai全栈的开发框架one-is-all开发实录二/
作者
Pankitgg
发布于
2026-09-27
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Pankitgg
Hello, I'm Pankitgg.
公告
欢迎来到我的博客!长路漫漫,人间相遇便是缘。
分类
标签
最新动态
站点统计
文章
33
分类
4
标签
62
总字数
107,248
运行时长
0 天
最后活动
0 天前
文章目录