跨体系对照

逐条比对 12 Factor App 与 12 Factor Agent 的方法原则,映射经由 10 个桥接主题。

← 返回视图入口

关系类型:变体 variant 依赖关联 dependency 差异根源取自对应桥接主题 difference 字段。

App 12 条对应桥接主题Agent 12 条关系类型差异根源(一句话)
app-admin
管理进程
人为交互边界ag-human前置依赖经桥接主题 人为交互边界 映射App 侧人是运维执行者(运行迁移/脚本);Agent 侧人是自动决策节点(批准/提供信息) App 管理任务手动触发一次性运行;Agent 审批自动等待循环内工具 App admin 进程独立于 process formation;Agent 审批是循环内的工具调用 App 人机边界在部署管线外;Agent 人机边界在推理循环内 差异根源:App 人类执行事后维护、Agent 人类参与事前决策
app-backing
后端服务
—ag-tools依赖关联工具是 Agent 的外部后端服务工具是 Agent 的外部后端服务
app-build-run
构建·发布·运行
控制流与阶段治理ag-control变体阶段分离 ↔ 控制流所有权App 是部署管线的纵向流程(build→release→run);Agent 是运行循环的横向迭代(决策→执行→反馈) 前者治理「交付物怎么产生」;后者治理「行为怎么演进」 App 阶段分离面向不可变发布与回滚;Agent 循环面向可中断交互与审批 App 的控制点是每个发布周期;Agent 的控制点是每次循环迭代 差异根源:App 交付物是一次性产物、Agent 行为是持续运行过程
app-codebase
代码库
—ag-prompts依赖关联prompt 应像代码库一样管理prompt 应像代码库一样管理
app-concurrency
并发
规模化与单元粒度ag-small前置依赖经桥接主题 规模化与单元粒度 映射App 单元是同质进程副本;Agent 单元是异质能力的小 Agent App 扩展靠增加副本数(水平分区);Agent 扩展靠能力组合(DAG 编排) App 单元由系统进程管理器调度;Agent 单元由确定性编排器调度 App 规模化面向吞吐;Agent 规模化面向任务复杂度 差异根源:App 资源瓶颈是计算/内存;Agent 瓶颈是上下文/注意力
app-config
配置
配置与可变性外置ag-prompts变体环境配置 ↔ prompt 管理App 外置的是运行时值(句柄/凭据/每部署数据);Agent 外置的是指令与策略(prompt) App 外置物是纯数据,由环境注入;Agent 外置物本身是代码,可测试可回滚 差异根源:App 配置决定连接哪,Agent 配置决定怎么做 App 靠 ENV 正交管理;Agent 靠 prompt 版本化管理 Agent 的配置面更接近「行为契约」而非「参数表」,因此需要代码级治理
app-deps
依赖
依赖与工具显式化ag-tools变体依赖清单 ↔ 工具定义App 显式化对象是库与包(代码依赖);Agent 显式化对象是行为能力与副作用(工具调用) App 用 manifest+bundler 隔离运行时;Agent 用 schema+生成客户端契约化决策面 Agent 的工具声明还隐含授权边界:工具即权限,需额外关注安全 App 依赖在构建期解析;Agent 工具在运行循环中按 intent 实时分派 差异根源:App 依赖静态引入、Agent 工具动态选择,后者需结合控制流治理
app-dev-prod
开发/线上等价
环境一致性ag-prompts前置依赖经桥接主题 环境一致性 映射App 靠环境等价(同构运行环境);Agent 靠可复现性(版本化可回放) App 关注运行环境一致;Agent 关注推理输入(prompt/上下文)一致 App 外置的是环境变量值一致;Agent 外置的是指令与上下文一致 从同构环境演进到同构行为:App 复制环境、Agent 复制决策输入 差异根源:App 的可变面是运行时配置、Agent 的可变面是模型输入
app-disposability
可处置性
生命周期与可处置性ag-pause变体可处置性 ↔ 暂停恢复App 是可处置进程:进程级、秒级、由进程管理器自动管理;Agent 是可暂停工作流:任务级、分钟级、需显式持久化 App 恢复单位是单个进程/请求;Agent 恢复单位是整条 thread/对话工作流 App 生命周期由 SIGTERM 信号驱动;Agent 生命周期由 intent/事件(done_for_now/approval)驱动 粒度从进程升到工作流:App 丢弃进程,Agent 保留线程并在暂停点接续 App 可处置面向无状态副本的弹性伸缩;Agent 暂停恢复面向有状态任务的人工介入与长程执行
app-logs
日志
可观测性与错误可见性ag-errors变体日志流 ↔ 错误压缩App 观测消费者是人类(事后排障/审计);Agent 观测消费者是 LLM(实时决策输入) App 事件流是外部化、单向、存档导向;Agent 错误事件是内部化、循环参与、自愈导向 可观测性从辅助分析工具升级为 Agent 的运行机制:无错误可见即无自愈 App 日志写 stdout 交给环境负责;Agent 错误写回自身上下文由模型消费 差异根源:App 的人类读者在循环外,Agent 的 LLM 读者在循环内
app-port
端口绑定
自含入口与触达ag-trigger变体端口自含 ↔ 随处触发App 入口是单一技术端口(TCP/HTTP);Agent 入口是多业务渠道(slack/email/sms/webhook) App 面向服务导出与流量路由;Agent 面向对话触达与事件驱动 App 从端口自含扩展自包含;Agent 从随处触发扩展到用户触达 App 的消费方是另一个程序(routing layer);Agent 的消费方是用户所在的业务系统 差异根源:App 服务抽象是端口、Agent 服务抽象是渠道与会话
app-processes
进程
无状态性ag-reducer变体无状态进程 ↔ 无状态 reducerApp 是物理外置:状态落盘到外部存储服务(数据库/缓存);Agent 是逻辑外置:状态编码为事件流 App 无状态单元是同质进程副本;Agent 无状态单元是带 thread 状态的具体会话实例 易失状态变可重建数据:App 靠重启后从存储重读,Agent 靠 reload thread 事件重放 App 强调运行时共享数据外置(多进程间);Agent 强调决策上下文可回放(多轮推理间) 粒度差异:App 以请求/作业为单位无状态;Agent 以整条工作流/thread 为单位 恢复机制不同:App 进程崩溃即放弃缓存重新拉取;Agent 保留事件序列支持断点续跑