AHAX 公开知识库阶段 · 文章
02 AI 架构、工作流与受控 Agent
用确定性工作流约束模型的不确定性,把数据、模型、编排、工具、应用和治理连成可测试、可审批、可回退的企业 AI 系统。
企业常把“模型能回答”当成“系统能交付”。进入业务后,还要回答数据从哪里来、谁能调用工具、重复请求会不会重复写入、外部接口失败后怎么补、出了问题如何回放。
中国法规:如果流程处理个人信息、重要数据,或向公众提供生成式人工智能服务,要再根据实际角色和场景判断适用义务。本章不是合规意见。国际自愿框架:NIST、ISO 和 OWASP 提供治理或安全方法,不是中国法定义务,也不替代企业自己的风险判断。供应商能力:OpenAI、n8n 和 MCP 文档只证明相应产品或协议在特定版本下的能力,不证明接入后自动可靠、安全或合规。AHAX 判断:对多数中小企业,第一版应让确定性工作流包住模型;Agent 只在低风险、可回退、工具边界清楚的局部获得有限自主权。
管理者先看结论
Section titled “管理者先看结论”管理者先看结论:不要先采购一个“万能 Agent”,先把一个业务任务拆成确定步骤、概率判断和高风险动作。确定步骤交给工作流,概率判断交给模型,高风险动作交给规则和人。
生产流程至少回答六个问题:
- 数据从哪里来,谁负责准确性和权限?
- 模型做理解、抽取、归纳还是建议?什么不能由模型决定?
- 如何处理超时、重复、部分成功和重跑?
- Agent 能调用什么工具,参数、数据和写入对象如何限制?
- 什么动作必须审批,批准后如何防止内容被替换?
- 模型、提示词或工具变更后,用什么固定样本回归?
六层架构不是六套软件
Section titled “六层架构不是六套软件”| 层 | 主要职责 | 管理者要确认 | 不能误解为 |
|---|---|---|---|
| 数据层 | 业务数据、文档、主数据、权限标签、质量与保留 | 来源、所有者、口径、敏感级别 | “数据越多越好” |
| 模型层 | 分类、抽取、归纳、生成、推理和向量表示 | 用哪个模型、为何路由、失败如何降级 | 模型就是完整系统 |
| 编排层 | 触发、状态、分支、超时、重试、补偿、审批 | 每一步输入输出和失败状态 | 画出流程图就可靠 |
| 工具层 | 查询系统、创建草稿、发送消息、写入业务对象 | 白名单、参数、权限、额度和回滚 | 接口连通就可信 |
| 应用层 | 客服、销售、知识助手、报表、内容等用户入口 | 谁使用、如何接管、如何反馈 | 一个聊天框覆盖所有场景 |
| 治理层 | 身份、审计、评估、成本、版本、安全和变更 | 谁批准、谁复核、何时停用 | 上线前一次性检查 |
一条更稳妥的默认链路
Section titled “一条更稳妥的默认链路”AHAX 示例:事件触发 → 读取经授权数据 → 模型分类或抽取 → Schema 校验 → 业务规则校验 → 需要时人工审批 → 幂等写回 → 发送回执 → 记录日志与成本。
Schema 只验证字段、类型和枚举等“形状”。Schema 不等于事实正确:格式完全合法的客户编号、金额或政策仍可能是错的。之后还要做主数据、权限、阈值、状态机和来源校验。
适用与不适用
Section titled “适用与不适用”两者的区别不在于是否使用大模型,而在于能否提前确定步骤,以及错误是否容易发现和撤销。
| 任务特征 | 优先工作流 | 可考虑受控 Agent | 暂不自动执行 |
|---|---|---|---|
| 步骤固定、规则清楚 | 表单抽取、字段校验、通知、报表汇总 | 无需 Agent 自主规划 | — |
| 输入变化大、需要选择资料或工具 | 用工作流规定入口和出口 | 在白名单内选择查询顺序 | 不允许扩大工具范围 |
| 结果可复核、可撤销 | 生成草稿、归类、建议下一步 | 可多步检索和形成草稿 | 未复核不得外发或写主数据 |
| 金额、库存、权限、合同状态变化 | 由业务规则和状态机执行 | Agent 只能提出建议或准备材料 | 不让模型直接批准、付款、退款、删库 |
| 数据来源或权限不清 | 先治理数据和账号 | 不适用 | 不要用 Agent 掩盖基础问题 |
| 无固定样本和通过标准 | 先建评估集 | 不适用 | 不要凭演示决定上线 |
不适合直接交给 Agent 的场景
Section titled “不适合直接交给 Agent 的场景”- 自动决定价格、授信、赔付、退款、招聘淘汰或合同承诺。
- 让 Agent 持有管理员权限,再靠提示词要求“谨慎操作”。
- 让第三方工具读取整个客户库,却没有字段级用途和保留规则。
- 没有测试环境,直接用生产数据试工具调用。
- 外部接口不支持幂等或回查,却让 Agent 自动重试写入。
- 只记录最终回答,不记录模型、提示词、工具参数和审批过程。
AHAX 判断:错误会改变客户权益、资金、库存、权限或公开承诺时,模型只做“建议者”,最终动作交给确定规则和责任人。
固定工作流、混合编排与受控 Agent
Section titled “固定工作流、混合编排与受控 Agent”| 方案 | 步骤由谁决定 | 适合场景 | 优点 | 主要代价 | 默认权限 |
|---|---|---|---|---|---|
| 固定工作流 | 设计者预先定义 | 高频、稳定、可枚举流程 | 容易测试、审计和估算 | 对新情况适应弱 | 按步骤最小授权 |
| 混合编排 | 主流程固定,模型决定分类或有限分支 | 输入多变但出口可控 | 兼顾灵活与可控 | 需要更多失败分支和评估 | 查询 + 草稿,少量受限写入 |
| 受控 Agent | Agent 在目标和白名单内选择步骤 | 探索性检索、多工具资料整理 | 能处理路径不固定的任务 | 难预测、难回归、风险面大 | 默认只读,高风险逐次审批 |
| 高自主 Agent | Agent 自行规划并连续执行 | 极少数成熟、可沙箱、可回退任务 | 减少人工编排 | 工具滥用与错误放大风险最高 | 不作为中小企业第一阶段默认方案 |
对多数企业,混合编排更现实:工作流锁定触发、数据范围、审批、写回和告警;模型负责难以穷举的理解与生成;Agent 只在白名单工具中完成局部任务。
模型路由不是“越贵越好”
Section titled “模型路由不是“越贵越好””模型路由按任务风险和能力需求决定,不按品牌或排行榜决定。
| 路由维度 | 可选做法 | 必须保留的控制 |
|---|---|---|
| 任务类型 | 分类、抽取、生成、复杂推理分别路由 | 每类任务有固定评估集 |
| 数据敏感度 | 敏感数据走获批环境或先脱敏 | 数据去向、保留和访问记录 |
| 延迟与可用性 | 主模型超时后切备用模型或转人工 | 超时上限、降级状态、禁止重复写入 |
| 成本 | 简单任务用满足门槛的模型 | 单任务预算、调用上限、异常告警 |
| 版本 | 固定生产版本,变更走灰度和回归 | 模型、提示词、参数和日期可追踪 |
AHAX 判断:路由的终点是达到同一验收门槛。备用模型不达标时应转人工,而不是继续自动执行。
MCP、n8n 与模型工具调用各自解决什么
Section titled “MCP、n8n 与模型工具调用各自解决什么”| 能力 | 能解决什么 | 不能证明什么 |
|---|---|---|
| MCP | 统一 host、client、server 之间的上下文与能力连接方式,支持能力协商 | 第三方服务器可信、数据合规、权限最小、结果正确 |
| n8n | 编排触发、节点、分支和错误工作流;特定部署模式可扩展执行 | 自动具备业务幂等、补偿、审计或高可用 |
| OpenAI 工具/函数调用 | 让模型按声明的工具及参数 Schema 请求调用;strict 受支持范围约束 | 模型选对工具、参数事实正确、业务动作安全 |
三类能力可以组合,但不能互相替代。MCP 连接能力,n8n 组织流程,模型工具调用表达调用意图;执行前仍要验证身份、参数、权限、状态和风险。
实施从“一个任务、一个 owner、一条证据链”开始,不先搭通用 Agent 平台。
第一步:画任务边界
Section titled “第一步:画任务边界”选一个真实任务,写清触发、输入、输出、责任人和停止条件。把每个步骤标成三类:
D:确定性——数据库查询、字段校验、状态机、权限检查、通知和写回。P:概率性——意图识别、文本抽取、归纳、生成、相似度和建议。H:人工判断——例外批准、客户权益、公开承诺、高风险写入和不可逆动作。
一个步骤若同时包含 D、P、H,就继续拆。例如“AI 自动处理退款”应拆为:模型整理申请(P)→ 系统核对订单与规则(D)→ 负责人批准例外(H)→ 支付系统执行(D)。
第二步:定义结构化输出和业务校验
Section titled “第二步:定义结构化输出和业务校验”先定义最小输出 Schema,再逐项补业务规则。不要把整段自然语言直接写进业务系统。
| 校验层 | 示例 | 失败后动作 |
|---|---|---|
| 语法 / Schema | 字段存在、类型正确、枚举合法 | 拒绝写入,可有限重试 |
| 主数据 | 客户、产品、订单编号真实存在 | 回查或转人工,不让模型猜 |
| 权限 | 当前主体能否读取或修改对象 | 直接拒绝并记录 |
| 状态机 | 订单是否允许从当前状态进入目标状态 | 保持原状态,生成异常单 |
| 业务阈值 | 金额、数量、日期是否在规则范围 | 进入人工审批 |
| 来源与时效 | 结论是否引用批准来源,资料是否过期 | 拒答、提醒更新或转人工 |
第三步:把可靠性写进状态机
Section titled “第三步:把可靠性写进状态机”每次执行生成唯一 task_id,每个写入动作使用稳定幂等键。状态至少区分:已接收、处理中、待审批、已完成、可重试失败、需人工修复、已取消。只有“成功/失败”两个状态会掩盖部分成功。
- 超时:模型、工具和整条任务分别设上限;超时后标记状态,不能无限等待。
- 重试:只重试被判断为暂时性失败的步骤;重试前先回查是否已经成功。
- 幂等:同一业务请求重复到达时,不重复创建订单、扣减库存或发送消息。
- 补偿:多步骤任务部分成功时,执行明确的撤销动作,或形成待人工修复单。
- 失败队列:保留输入摘要、失败步骤、尝试次数、最后错误、责任人和下一动作。
- 审批:审批人看到的对象、版本、参数和风险必须冻结;批准后若内容变化,要重新审批。
AHAX 建议:重试次数、超时时间和补偿方式必须按接口和业务后果设置,本章不提供一个适用于所有项目的固定数字。
第四步:对工具分级授权
Section titled “第四步:对工具分级授权”工具权限不要只分“可用/不可用”。至少分四级,并把身份、对象和参数一起限制。
| 等级 | 典型动作 | 默认控制 | 示例 |
|---|---|---|---|
| L1 只读 | 查询公开或已授权数据 | 数据范围、字段脱敏、频率限制 | 查订单状态、读知识库 |
| L2 草稿 | 创建未生效内容 | 明确草稿标识、人工复核 | 回复草稿、报价草稿 |
| L3 受限写入 | 修改可撤销、低风险对象 | 参数白名单、幂等、审批或事后抽检 | 创建内部任务、更新非敏感标签 |
| L4 高风险 | 付款、退款、删除、外发、权限、合同承诺 | 默认禁用,逐次强审批,必要时双人复核 | 发营销消息、改价格、删客户数据 |
权限绑定服务身份,不让 Agent 继承管理员账号。工具只暴露最小参数,不提供“任意 SQL”“任意 URL 请求”或“执行任意命令”等宽接口。
第五步:隔离沙箱、密钥和环境
Section titled “第五步:隔离沙箱、密钥和环境”开发、测试、生产环境分开;Agent 在沙箱中使用脱敏样本和受限网络。第三方工具和 MCP server 逐个评估数据去向、认证、维护主体、更新和日志能力,连接成功后也不能自动进入生产白名单。
密钥放入受控密钥服务或环境配置,不进入提示词、知识库、日志、代码仓库和聊天记录。服务账号按用途拆分并定期轮换;调用日志不得回显完整密钥。对上传文件、网页内容和工具返回值都按“不可信输入”处理,防止提示注入诱导 Agent 泄露数据或扩大动作。
第六步:建立可观测性和变更门
Section titled “第六步:建立可观测性和变更门”一次任务至少记录以下信息:task_id、触发来源、输入数据版本、模型与参数、提示词版本、Schema 版本、工具名称与参数摘要、审批人、业务写入结果、耗时、成本、失败原因和最终状态。
日志不是越多越好。涉及个人信息或商业秘密时,应按用途最小化、限制访问、设置保留期并脱敏。可观测性要回答:为什么这样做、实际做了什么、如何复现。
任何模型、提示词、Schema、工具或规则变更,都先跑固定评估集,再灰度,再观察。未达到发布门槛时,保留旧版本或降级为人工流程。
Agent 的主要风险是错误通过工具变成真实动作。风险要同时写影响、信号、控制、责任和停止条件。
| 风险 | 影响 | 早期信号 | 预防与应对 | 责任人 | 停止 / 降级条件 |
|---|---|---|---|---|---|
| 提示注入改变任务 | 泄露资料、越权调用、错误外发 | 输入要求忽略规则或索取密钥 | 不可信内容隔离、工具白名单、输出校验 | 安全 + AI 负责人 | 出现未授权调用即停用对应工具 |
| Schema 合法但事实错误 | 错客户、错金额、错状态进入系统 | 格式通过但主数据查无此项 | 主数据、状态机、阈值和来源复核 | 业务 owner | 关键事实无法验证则转人工 |
| 重试造成重复写入 | 重复订单、消息或任务 | 同一业务键出现多个结果 | 幂等键、执行前回查、有限重试 | 技术负责人 | 无法证明幂等时关闭自动写入 |
| 部分成功无人处理 | 系统间状态不一致 | 工具 A 成功、工具 B 失败 | 补偿动作、失败队列、人工修复单 | 流程 owner | 无补偿或回查能力时缩短链路 |
| 工具权限过大 | 单次错误影响扩大 | 通用管理员令牌、任意参数接口 | 服务身份、最小权限、参数白名单 | 系统管理员 | 权限不能收敛则只保留只读 |
| 第三方 MCP/工具不可信 | 数据外传、供应链风险 | 无维护主体、无权限说明、更新异常 | 独立评估、沙箱、网络限制、版本固定 | 安全负责人 | 无法说明数据去向则不接入 |
| 模型或提示词漂移 | 同样输入得到不同质量 | 回归样本突然下降、拒答模式变化 | 版本锁定、评估集、灰度和回退 | AI 产品负责人 | 未达门槛回退旧版或转人工 |
| 成本或调用失控 | 预算不可控、服务拥塞 | 单任务调用轮次异常、失败循环 | 轮次、预算、并发与工具调用上限 | 产品 + 技术 | 达上限自动中止并告警 |
| 审批流于形式 | 人只点通过,不理解实际动作 | 审批页没有对象、参数或差异 | 风险摘要、差异展示、重新审批规则 | 业务负责人 | 审批证据不完整则禁止执行 |
| 日志含敏感信息 | 二次泄露、责任不清 | 日志出现密钥、完整身份证号 | 字段分级、脱敏、访问控制、保留期 | 安全 + 运维 | 泄露密钥立即轮换并调查 |
OWASP Agentic AI 指南可用于行为劫持、工具滥用、身份和权限的威胁建模;NIST AI RMF 可用于组织风险责任和评估。二者都是自愿方法,不能替代企业测试。
验收不能只看一次演示,要用正常、边界、恶意和故障样本验证并留证。
| 验收域 | 样本与操作 | 通过条件 | 停止条件 | 责任人 | 证据 |
|---|---|---|---|---|---|
| 结构化输出 | 缺字段、错类型、非法枚举、超长文本 | 非法输出不进入业务系统 | 绕过 Schema 仍写入 | AI/技术负责人 | 原始输出、校验结果、版本 |
| 事实与规则 | 不存在客户、过期政策、越界金额、错误状态 | 主数据和规则拒绝错误动作 | 关键事实无法回查 | 业务 owner | 查询、规则命中、拒绝记录 |
| 幂等与重试 | 同一事件重复提交、响应超时、成功后断连 | 业务结果唯一,状态可回查 | 出现重复写入 | 技术负责人 | task_id、幂等键、调用日志 |
| 部分成功 | 第一工具成功、第二工具失败 | 能补偿或进入责任明确的失败队列 | 失败被标成总成功 | 流程 owner | 步骤状态、补偿或修复单 |
| 工具权限 | 正常、越权、恶意参数、提示注入 | 只执行白名单内授权动作 | 未审批高风险动作被执行 | 安全 + 业务负责人 | 权限测试、拒绝与审批记录 |
| 人工审批 | 审批前后替换对象、参数或正文 | 内容变化触发重新审批 | 旧批准覆盖新内容 | 业务负责人 | 版本、差异、审批人和时间 |
| 沙箱与密钥 | 读取环境变量、访问未授权网络、日志查密钥 | 密钥不可见,网络和文件受限 | 凭据进入提示词或日志 | 安全负责人 | 沙箱策略、访问与脱敏记录 |
| 模型路由 | 主模型超时、备用模型不达门槛 | 正确降级,不重复业务动作 | 低质量备用结果自动写入 | AI 负责人 | 路由、评估和降级记录 |
| 回归与回退 | 更换模型、提示词、Schema 或工具版本 | 固定样本达到项目门槛,可回退旧版 | 无评估结果直接发布 | 产品 + 技术 | 版本化评估报告、发布单 |
| 可观测性 | 随机抽取一次成功和一次失败任务 | 能还原输入来源、决策、工具和结果 | 关键步骤无法解释或定位 | 运维负责人 | 完整执行链和告警记录 |
验收门槛怎么定
Section titled “验收门槛怎么定”本章不提供统一准确率、延迟或成本数字。企业应先建基线,再按错误后果设门槛:高风险动作看未授权执行,抽取任务看关键字段,草稿看引用、拒答和人工修改,流程看重复、超时和部分成功是否被正确处理。
验收要写环境、数据版本、样本口径、执行人、复核人和日期。样本至少包括正常、边界、缺失、冲突、恶意和故障六类。发布后的真实失败样本经脱敏审核后加入回归集。
这一章的学习目标不是记住 Agent 名词,而是完成一张可以用于权限评审、测试和接管的“受控工具地图”。
学习任务:做一张受控工具地图
Section titled “学习任务:做一张受控工具地图”| 字段 | 要写什么 | 常见错误 |
|---|---|---|
| 任务与 owner | 工具服务哪个任务,谁对结果负责 | 只写“AI 助手” |
| 工具与动作 | 查询、建草稿、写入、删除、外发等具体动作 | 只写 API 名称 |
| 输入参数 | 必填字段、枚举、长度、对象范围 | 暴露任意文本或任意 SQL |
| 数据范围 | 可读字段、敏感级别、来源、保留 | 默认访问整个数据库 |
| 执行身份 | 服务账号、租户、环境、凭据所有者 | 复用管理员个人账号 |
| 权限等级 | L1 只读、L2 草稿、L3 受限写、L4 高风险 | 只有“允许”与“禁止” |
| 审批 | 哪些条件触发、谁批准、何时重批 | 审批后内容仍可变化 |
| 幂等与补偿 | 业务键、回查、撤销、人工修复 | 只写“失败自动重试” |
| 证据 | task_id、参数摘要、结果、审批、成本、版本 | 只保留最后回答 |
| 停止条件 | 越权、重复、质量下降、成本上限等 | 没有自动中止和负责人 |
按下面顺序完成:
- 选一个真实流程,只画现在要上线的一个任务。
- 把步骤标成 D、P、H,拆开混合步骤。
- 列出每个工具和具体动作,按 L1–L4 分级。
- 为每个工具补身份、数据范围、参数、审批、幂等和补偿。
- 准备正常、边界、恶意和故障样本,逐项验证。
- 让业务 owner、安全/技术负责人和实际操作人共同评审。
最终交付物包括任务状态图、受控工具地图、故障与补偿表、版本化验收样本。若仍说不清“谁用什么身份,对哪个对象做什么动作,失败后谁收尾”,就不能进入 Agent 上线阶段。
以下来源用于确认治理框架、协议和产品能力,实施前应再次核验版本。
- NIST AI Risk Management Framework 1.0:以 Govern、Map、Measure、Manage 组织 AI 风险管理,属于自愿采用框架。
- NIST Generative AI Profile:AI RMF 的生成式 AI 配套资源,不规定统一产品配置。
- OWASP Agentic AI — Threats and Mitigations:用于 Agent 行为劫持、工具滥用、身份和权限等威胁建模,属于社区安全指南。
- OWASP Top 10 for Agentic Applications 2026:版本性风险清单,不等于完整安全认证。
- Model Context Protocol Architecture(2025-06-18):说明 host-client-server 架构、能力协商与边界;不能证明第三方 server 可信。
- OpenAI Chat Completions API Reference:用于核对工具/函数参数 Schema 与 strict 模式的当前能力边界,支持范围会随产品版本变化。
- n8n Error handling:说明错误工作流能力;不能替代业务幂等、补偿和告警设计。
- n8n Queue mode:说明主实例与 worker 的执行扩展方式;部署、数据库、Redis、二进制数据和许可约束应按当前版本复核。
- ISO/IEC 42001:2023:AI 管理体系国际标准,不规定具体工作流或 Agent 产品,也不自动满足中国法规。
最后核验:2026-07-15