
前言:企业智能化的新机遇与挑战
随着人工智能的快速发展,尤其是大型语言模型的普及,企业正经历一场深刻的数字化与智能化变革。无论是IT运维、DevOps自动化,还是ERP和OA流程管理,LLM都在加速业务自动化与决策优化。
然而,在实践落地过程中,企业仍面临诸多严峻挑战:
- 不可控:LLM的输出具有不可预测性,尤其是在多步骤复杂决策中,一旦出错很难进行有效纠正。
- 不可恢复:任务执行过程中若发生中断,LLM通常无法自动保存状态或从中断点恢复执行。
- 不可扩展:单一、庞大的“全能型”Agent维护复杂度高,难以适应企业多业务线、多场景的部署需求。
- 高风险操作缺乏审计:当涉及资金流转、权限变更或关键业务流程时,现有方案往往难以满足企业严格的合规与审计要求。
为了解决上述核心问题,HumanLayer团队提出了 12-Factor Agents框架 。它并非一个具体的SDK,而是一套面向工程化的LLM Agent设计原则,其核心目标是将LLM从“实验性工具”提升为可控、可审计、可扩展、可恢复的企业级可靠助手。
12-Factor Agents 框架总览
12-Factor Agents是一套工程化设计方法论,旨在指导构建能够真正在企业环境中落地运行的LLM Agent系统。它的核心理念可以概括为以下几点:
- LLM应定位为推理与规划引擎,而非直接的执行者或状态管理中心。
- 上下文工程优先于单条Prompt,历史事件、知识库和提示模板必须进行结构化管理。
- 采用微代理化设计思想,使系统更易于维护和横向扩展。
- 通过事件日志与状态管理确保任务全程可追踪、可回放、可审计。
基于这些设计思路,12个核心原则(Factor)可归纳为四大类别:
| 类别 |
核心思想 |
对应 Factor |
| LLM 与工具交互 |
自然语言 → 结构化指令;Prompt 可控 |
1, 2, 4 |
| 状态与流程管理 |
上下文可控、事件可追踪、可暂停/恢复 |
3, 5, 6, 8, 12 |
| 人机协作 |
高风险操作必须引入人工参与 |
7, 11 |
| 生产与扩展 |
错误自修复;微代理化;多触发渠道 |
9, 10 |
技术解读与工程实践
接下来,我们将对这12个Factor进行逐一解析,从核心原理、工程实践到企业落地案例,提供详细的实施指南。

核心思想:LLM的输出应转化为结构化的指令,如JSON或特定的Action对象,而不是直接执行操作。这实现了决策与执行的解耦。
工程实践:
- 预先定义统一的工具调用Schema,并对LLM的输出进行严格格式校验。
- LLM仅负责生成可测试、可解析的“计划”,具体执行由后端系统可靠地完成。
企业案例:
- ITSM:自动解析用户描述,生成结构化工单创建指令。
- DevOps:根据需求描述,自动生成结构化的部署或回滚计划。
示例输出:
{
“action”: “create_ticket”,
“params”: {“system”: “email”, “severity”: “P1”}
}
Factor 2:Own Your Prompts

核心思想:提示词应被视为应用程序代码的一部分,需要进行版本控制、模块化管理和测试。
工程实践:
- 将Prompt模板化、参数化,与业务逻辑分离存放。
- 在CI/CD流水线中引入Prompt的测试用例,确保其修改不会引入回归问题。
企业案例:
- ERP:将不同的业务审批规则抽象为可配置的Prompt模板。
- OA:构建标准化的流程通知与询问模板库。
Factor 3:Own Your Context Window

核心思想:上下文是Agent的“工作记忆”,必须被精心设计和主动管理,而非被动接受所有历史信息。
工程实践:
- 动态筛选历史事件,只保留与当前任务最相关的信息,避免上下文污染。
- 集成动态检索能力,从知识库、文档中实时获取必要信息,提升推理效率与准确性。
企业案例:
- ITSM:在上下文中保留最近50条相关工单交互和SLA信息,而不是全部对话历史。
- DevOps:仅保留最近10次部署的关键日志和结果,用于本次部署的决策参考。

核心思想:工具调用应由系统执行层(Executor)处理,LLM仅负责规划“要做什么”,而不是“如何做”。
工程实践:
- 构建统一的Executor执行模块,专门处理从LLM接收到的JSON/Action指令。
- 明确分离“决策层”(LLM)与“执行层”(Executor),提升系统整体的可靠性与可控性。
企业案例:
- 将LLM输出的JSON指令,映射到具体的内部API或第三方服务API进行调用。
- 将工单处理指令,通过Executor可靠地更新到Jira、ServiceNow等ITSM系统中。
Factor 5:Unify Execution and Business State

核心思想:将事件日志作为系统的单一可信源,完整记录业务状态的变化轨迹,而非只记录最终状态。
工程实践:
- 采用Event Sourcing(事件溯源)模式或使用专门的状态数据库来存储状态变更事件序列。
- 基于完整的事件日志,可以轻松实现任务回放、审计追踪以及在异常崩溃后的状态恢复。
企业案例:
- ERP:完整记录一笔采购申请从提交、各级审批到最终执行的全过程事件。
- DevOps:记录一次应用部署过程中每一个步骤的执行结果和上下文,支持失败后精准回放分析。
Factor 6:Launch / Pause / Resume via API

核心思想:Agent应被设计为可通过API进行生命周期管理的服务,支持随时暂停与后续恢复。
工程实践:
- 对外暴露
start、pause、resume 等标准化的控制API。
- 设计支持长时间运行、异步任务的架构,并在暂停时将完整状态序列化持久化。
企业案例:
- 一个需要多天完成的复杂审批流程,可以在任意审批节点暂停,等待人工补充材料后恢复。
- 一个自动化部署任务可以在“预发布检查”阶段暂停,等待确认后再继续执行部署操作。

核心思想:对于高风险或关键决策点,必须通过结构化工具调用的方式引入人工审批或确认环节。
工程实践:
- 提供
request_human_approval 之类的工具,支持“是/否”或表单式的人工输入。
- Agent执行到此处时异步暂停,等待人工通过接口返回结果后,再继续执行后续流程。
企业案例:
- 超预算采购:当采购金额超过预设阈值时,自动触发向部门总监的审批请求。
- 高权限变更:执行服务器Root权限修改、数据库删库等危险操作前,必须经过二级人工确认。
Factor 8:Own Your Control Flow

核心思想:业务流程的控制逻辑(如条件判断、循环、重试)应由系统掌控,LLM仅作为决策建议的提供者。
工程实践:
- 使用编程语言中的条件、循环、状态机等结构来定义主干业务流程。
- LLM在流程的每个决策点上,只输出“下一步建议”,由系统逻辑决定是否采纳及如何跳转。
企业案例:
- ITSM:系统定义工单分类规则和分派策略,LLM负责建议具体的分类和负责人。
- CI/CD:系统定义部署失败后的重试逻辑(如间隔、次数),LLM负责分析失败原因并建议修复方案。
Factor 9:Compact Errors into Context Window

核心思想:当工具调用或执行步骤失败时,不应简单抛出异常终止,而应将错误信息摘要后反馈给LLM,使其有机会自我修复。
工程实践:
- 捕获执行失败异常,将其提炼成简明的自然语言描述。
- 将错误描述作为新输入的一部分,连同原有上下文再次提交给LLM,请求其生成修复方案或替代步骤。
企业案例:
- 部署失败:K8s部署命令失败,将错误日志摘要后让LLM分析原因,并生成相应的回滚或修正命令。
- 工单执行异常:更新CRM系统时API返回404,让LLM根据错误信息判断是重试、创建新记录还是转人工处理。
Factor 10:Small, Focused Agents

核心思想:设计多个小型、功能专注的Agent,每个只负责3-10个步骤的明确任务,避免构建单一、臃肿的“全能Agent”。
工程实践:
- 采用微代理化架构,每个Agent职责单一。
- 通过DAG工作流引擎将多个微代理组合起来,协作完成复杂的业务流程。
企业案例:
- ITSM流程:拆分为“工单分类Agent”、“工单分派Agent”、“SLA监控与升级Agent”。
- DevOps流程:拆分为“代码审查Agent”、“构建测试Agent”、“部署发布Agent”。
Factor 11:Trigger Anywhere, Meet Users Where They Are

核心思想:Agent应支持从企业内各种常用渠道被触发,并能通过用户习惯的渠道与之交互,实现“随处可用”。
工程实践:
- 集成Slack、Teams、电子邮件、Webhook、定时任务等多种触发源。
- 支持事件驱动和定时调度两种触发模式,适应不同业务场景。
企业案例:
- 员工在Slack频道中@机器人并描述问题,自动触发ITSM工单创建流程。
- 每天上午9点定时触发Agent,自动汇总前一天的系统运维报告并发送给相关负责人。
Factor 12:Stateless Reducer

核心思想:将Agent的核心逻辑设计为一个纯函数,输入是当前状态和请求,输出是新的状态和动作,自身不维护任何隐藏状态。
工程实践:
- 遵循函数式编程思想,Agent函数签名类似于
(state, input) -> (new_state, actions)。
- 所有状态的管理和持久化都由外部系统(如数据库)负责,Agent函数本身是无状态的。
企业案例:
- ERP审批Agent:每次调用只根据当前审批单状态和审批意见,输出下一步状态和动作(如通过、驳回、转交)。
- OA流程Agent:根据流程实例的当前节点和用户输入,决定流程如何流向下一个节点。
这种设计使得Agent易于测试、支持并行扩展,并且行为可预测。
企业级工程落地实践要点
将12-Factor Agents原则付诸实践,需要重点关注以下几个工程层面:
-
微代理化设计
- 采用DAG工作流组合多个单一职责的微代理。
- 好处是每个微代理更易开发、测试和独立升级。
-
上下文工程
- 系统化地管理历史事件精选、知识库检索和提示模板。
- 建立错误反馈闭环,使LLM能基于错误上下文进行自修复。
-
事件日志与状态管理
- 采用Event Sourcing或状态数据库记录完整的状态变迁。
- 为系统审计、问题回放和异常恢复提供坚实基础。
-
人机协作与审批
- 为高风险操作预设结构化的人工审批节点。
- 支持从多种渠道触发审批并异步等待结果。
-
工具执行与监控
- 构建统一的Executor模块来安全、可靠地执行所有工具调用。
- 对关键任务的执行过程进行全面监控和记录,确保可审计。
典型应用场景落地案例
| 场景 |
功能 |
LLM 输出 |
执行器操作 |
企业价值 |
| ITSM |
工单创建与分派 |
JSON格式的工单信息 |
调用ITSM系统(如Jira)API创建工单 |
自动分类、判断优先级、触发SLA升级,提升效率 |
| DevOps |
CI/CD 部署 |
结构化的部署或回滚计划 |
执行K8s或Pipeline相关命令 |
降低部署失败率,实现失败自修复,全程审计可回放 |
| ERP |
审批与预算控制 |
通过/驳回/转交等审批指令 |
调用ERP系统审批流API |
大幅降低审批流程延迟,自动拦截超预算申请 |
| OA |
日程/流程管理 |
日程安排或流程跳转建议 |
更新日历或工作流引擎状态 |
实现流程自动化,人机协作节点清晰,提升体验 |
总结
12-Factor Agents为企业构建LLM Agent系统提供了一套完整的工程化方法论。它通过以下核心价值点,解决了LLM落地的主要痛点:
- 可控:系统掌控主干流程,LLM专注于推理与规划,输出结构化。
- 可审计:结合上下文管理与事件日志,实现任务全过程可追溯。
- 可扩展:微代理与无状态设计,使系统能够轻松水平扩展。
- 自修复:将错误信息压缩并反馈至上下文,使Agent具备自动生成修复方案的能力。
- 人机协作:高风险操作通过结构化工具调用引入人工审批,并支持多渠道触发。
遵循12-Factor Agents的设计原则,企业能够构建起可信赖、可维护、可扩展、可审计的LLM Agent系统,从而真正推动数字化与智能化战略的扎实落地。
本文探讨的12-Factor Agents框架为人工智能应用的企业级工程化提供了宝贵思路。如果你想了解更多关于AI Agent、LLM应用架构的深度讨论或获取相关实践资源,欢迎访问云栈社区进行交流与探索。
项目地址:https://github.com/humanlayer/12-factor-agents/tree/main