组目录:12 Factor App 体系12 Factor Agent 体系无状态性生命周期与可处置性配置与可变性外置可观测性与错误可见性依赖与工具显式化控制流与阶段治理自含入口与触达规模化与单元粒度人为交互边界环境一致性基础与运行时配置与交付交互与运维辅助工具集
组简介
本组 10 个节点,属于 横切·工程阶段 域,类型为 横切组,覆盖阶段 基础 / 进阶 / 高级。
组节点:代码库、依赖、后端服务、进程、端口绑定、并发、统一执行/业务状态、启动/暂停/恢复、无状态 Reducer、小而专注的 Agent
节点目录 (10 个)
| 节点 ID | 名称 | 来源 | 阶段 | 简介 |
|---|---|---|---|---|
| app-codebase | 代码库 | App | 基础 | 十二要素应用总是被版本控制系统(VCS)跟踪,例如 Git、Mercurial 或 Subversion;修订跟踪数据库的一份副本称为代码仓库,常简写为 code repo 或 repo。 |
| app-deps | 依赖 | App | 基础 | 多数编程语言提供打包系统分发支持库,如 Perl 的 CPAN、Ruby 的 Rubygems;经打包系统安装的库可装到系统全局(site packages)或限定到应用目录(vendoring/bundling)。 |
| app-backing | 后端服务 | App | 基础 | backing service 是应用在正常运行过程中经网络消费的任何服务,示例包括数据存储(MySQL、CouchDB)、消息/队列系统(RabbitMQ、Beanstalkd)。 |
| app-processes | 进程 | App | 基础 | 应用在运行环境中作为一个或多个进程执行;最简情形是独立脚本 + 本地笔记本运行时 + 命令行启动,如 python my_script.py。 |
| app-port | 端口绑定 | App | 基础 | web 应用有时在 webserver 容器内执行:PHP 应用作为 Apache HTTPD 内的模块运行,Java 应用跑在 Tomcat 内。 |
| app-concurrency | 并发 | App | 进阶 | 任何计算机程序一经运行即由一个或多个进程表示;web 应用进程执行形态多样:PHP 进程作为 Apache 子进程按需启动。 |
| ag-state | 统一执行/业务状态 | Agent | 进阶 | 在 AI 世界之外,许多基础设施系统也倾向于把『执行状态』与『业务状态』分开管理;对 AI 应用而言这可能需要跟踪当前步骤、下一步、等待状态、重试计数等。 |
| ag-pause | 启动/暂停/恢复 | Agent | 进阶 | Agent 只是程序,我们理应对它们如何被启动、查询、恢复、停止有明确预期——这就是 Launch/Pause/Resume 的诉求。 |
| ag-reducer | 无状态 Reducer | Agent | 高级 | 第 12 条:把 Agent 建模成无状态的归约器(stateless reducer)。原文自己承认:写到这已超 1000 行 markdown,这条主要是图个乐。 |
| ag-small | 小而专注的 Agent | Agent | 高级 | 与其构建想包办一切的单体 Agent,不如构建小而专注、一件事做到位的 Agent——Agent 只是更大的、基本确定性系统中的构件。 |
学习路径提示
本组内存在 5 条前置依赖边(prerequisite),推荐先掌握前置知识点,再进入依赖它的节点。
推荐阅读顺序(拓扑序)
- 进程 → 端口绑定无状态进程通过端口导出服务
- 进程 → 并发进程模型是并发的基座
- 统一执行/业务状态 → 启动/暂停/恢复统一状态支持暂停恢复
- 统一执行/业务状态 → 无状态 Reducer统一状态是无状态 reducer 基础
- 无状态 Reducer → 小而专注的 Agent无状态 reducer 使小 Agent 可行
入组前置依赖(组外节点 → 本组成员)
- 生命周期与可处置性 → 启动/暂停/恢复生命周期落到 Agent 暂停恢复
- 掌控控制流 → 无状态 Reducer确定性控制流保障 reducer 语义
- 无状态性 → 无状态 Reducer无状态性落到 Agent 的 reducer
- 规模化与单元粒度 → 小而专注的 Agent规模化落到小 Agent 组合