夜雨聆风学习资料网

ARTICLE · 1294593

FDE 的 Agentic AI 通用模板: 从逻辑数据对象到可恢复工作流

FDE 的 Agentic AI 通用模板: 从逻辑数据对象到可恢复工作流

每隔一段时间,我们就能看到不同大厂发布的一系列新模型,这些新模型总在基准测试中表现得越来越出色。现在的很多中国企业都在公司内部大量的使用模型,期望这些模型能解决公司内部最棘手的难题。但是,现实情况是随着模型的引入,反而出现了越来越大的“部署鸿沟”,模型没有构建出值得信赖的解决方案,没有带来切实显著的成效。

这究竟是为什么?最强大的模型无法在现实中的各种变量和约束下完成工作。我认为,在企业中需要这样一类角色,能将科研突破转化为生产系统,这样的角色,就是本篇博客讲述的第一人称,Forward Deployed Engineer (FDE) ,中文翻译“前线部署工程师”,这类工程师会处于客户交付与核心 AI 能力开发的交汇点。FDE 与产品团队及客户合作,设计解决方案,对于模型能力尚有不足的地方,FDE 与客户和研究团队共同明确差距,通过系统工程设计,一起推动改进。


本篇博客,我站在 FDE 的第一视角,来讲述 FDE 如何在快速变化或模糊环境中对复杂系统进行实战交付。我希望读者读完这篇博客,能从这篇博客中找到可以被复制的成功点,应用到读者的实际工作中去!

 一  原生化的 Agentic AI 系统 

图1通用模板

FDE 去到任何一个行业驻场,必须从第一天起就了解所在行业。但是FDE不会每次都重新构造一套解决方案,因为 FDE 有一套让成功可以被复制的通用模板!

通用模板的作用,它可以快速帮助客户理解未来是什么,未来是如何实现的系统分工。通过这套模板:

  • FDE 可以轻松地和客户团队的业务对话,把业务流程抽象成工作代理,把业务成功经验封装成技能,为将来的业务流程自动化提供更好的起点

  • FDE 可以轻松地和客户团队的技术对话,把各类基建的部署抽象到持久化层和离线滚动更新层里的不同模块。部署精力的减少,使得 FDE 留出更多时间把关键功能做成插件,可能将来只需要工具网关多接入一个 MCP 服务器,就能快速拥有某项工作的专有技能,及时快速地解决更难的问题

这张通用模板本质上是 Agentic AI 系统的一层架构图:
  • 在线运行层负责把用户需求变成任务,并接收执行结果
  • 离线滚动更新层负责准备、验证和发布可用能力
  • 持久化层保存规则、知识、业务事实以及执行记录
这样的一层架构划分可以迁移到客服、采购、芯片设计等场景,即使遇到了特别复杂的难题,临时做出局部调整也能适配业务场景。
图里的 15 个模块代表逻辑职责。结合客户场景的变化,可以把多个职责放在同一个服务里,先跑通一个业务闭环,后续有业务需求变化了,再根据实际情况做出并发、隔离和分工拆解。
特别注意一点,FDE 首先要与业务方约定成功条件、数据来源和失败后的处理方式,随后才是选择模型与框架。
 二  Agentic AI 系统的逻辑数据对象 
从客户视角来看,Agentic AI 系统很容易被理解成几个智能体互相聊天。但从实际开发和部署的视角看,Agentic AI 系统是各种数据对象的信息交换、封装和协作:用户的新聊天创建 Workflow,对聊天意图的拆解产生 Intent,满足用户体验的闭环计划生成 Task Graph,工作代理负责 Task、Job 和 Tool-Calling。每个模块的中间结果会进行存储和读取。直到整个 Workflow 结束,它过程中的某些记录会被提炼成技能 Skill、某些记录会被抽取成记忆 Memory...

图2  各式各样的数据对象在 Agentic AI 系统中穿行

刚才被 Agentic AI 系统里提到的这些逻辑数据对象,都是可复用的是对象契约。FDE 驻场在不同行业的任何场景中,都能复用这套建模作为起点,再做领域适配。如果要搭建的AI 系统十分简单,那可以只用一个顺序的 Pipeline、一个 Task 和一次 Tool-Calling;如果要搭建非常复杂的 AI 系统,FDE 可以建立多级工作代理来负责不同 Task 的执行归属。下表可以作为参考手册:

逻辑数据对象

建议的必选字段

Workflow

原始目标、状态、版本号、启动时间、结束时间、最终结果

Intent

意图列表

Pipeline
任务节点、依赖、验收条件

Task

业务目标、待补信息、验收条件、结果状态

Job

执行步骤、检查点、尝试次数、下一次重试时间

Tool-Calling

工具、参数、调用输出、状态码

Command

命令、参数、工作日志、状态码

...

通用模板的方法论讲完了,接下来,用一个电商场景来验证它...

 三 在线运行层:把用户指令变成可执行的任务计划 

从一层架构里先剥离出“在线运行层”,用一个实际的用户指令:“找10款热卖扫地机器人,适合多猫家庭,三天内能送到家”,一步步理解逻辑数据对象变成一个个不同的数据实例:

图3从用户指令到任务路由与工作代理

  • 新聊天的用户指令 >> 新工作流的原始目标字符串(json)

  • 原始目标 >> 变成意图清单 “扫地机器人、10款热卖、适配宠物家庭、三天送达”(list),清单里的元素是体现智能的重要里程碑

  • 意图 >> 用业务话术构成可调度的任务路由图,“T1先取得候选商品集合、T2读取这一集合的评论证据、T3查询配送知识库、T2和T3两条分支可以并行、最后的筛选节点读取两个分支的结果集合、在条件约束下、生成对比报告”(graph)

  • T任务 >> 预定义的执行流程需要有清晰的计算口径、约束、目标(task)

    • “商品发现”里要有“热卖”需要约定统计的时间窗口和渠道口径

    • “适配宠物家庭”需要明确评论分析的证据维度,例如猫毛清理、防缠绕、避障与耗材维护

    • “三天”需要确定起算时刻和业务时区

    • “配送核验”任务必须要求收货地址,不能让模型在调用接口时悄悄替业务决定这些口径,如果缺少地址,这个 Task 的状态会被设置成 WAITING_INPUT。等用户补充地址后,再唤醒这个任务

  • 工作代理池 >> 和业务充分沟通讨论抽象出能力。模拟电商场景,图3列出了12项能力包括商品发现、评论分析、配送核验、图片解析、规格归一、场景适配、库存价格、优惠组合、正品核验、售后政策、对比排序和智能总结(agents)

  • 工作代理 >> 可能包含多个job,一个job再拆出工具调用(tool-calling)或者命令执行(command)


所有这些形形色色的数据对象都会实时的存储和读取,作为上下游的执行状态被管理起来。

 四 持久化层:提升代理的成效并减轻推理的幻觉 

图4把持久化层和工作代理池连在一起,是为了突出工作代理在执行过程中需要依赖可信的数据:

  • Rule帮助工作代理,在执行过程中必须遵守的约束

  • Knowledge帮助工作助理理解问题

  • Reference为具体结论提供依据

图4规则、领域知识与业务依据共同支撑工作代理作出结果判断

用户下达指令 “找10款热卖扫地机器人,适合多猫家庭,三天内能送到家”

  • 工作代理池的“配送核验”在理解“三天内送达”的用户需求时,需要实时访问规则库,调用工具来查看“收货地区规则”、调用工具解析用户地址是否满足“三天送达,如果传入工具时缺少destination,就不能把“配送核验”工作标记为已成功

  • 工作代理池的“商品发现”在理解“适配多猫家庭”的用户需求时,需要实时访问知识库,调用工具解析产品规格文档里支撑具体判断“猫毛清理、防缠绕、避障”的关键字是否存在

  • 工作代理池的“评论分析”在理解“适配多猫家庭”的用户需求时,需要实时访问业务数据库里评论证据,调用工具检索某款商品(工具的必选参数)的相关评论是否涉及“猫毛清理、防缠绕、避障”的语义信息是否存在

要注意一点,持久化层里的各种证据,它们的权威性并不相同,并且证据还有时效性,工作代理在执行过程中,要对这些元数据分配不同的权重系数,使得工作代理的结果得到更好的受控保证。

 五离线滚动更新层:把能力发布给运行时 

图5展示工具从定义、接入到注册的过程;技能亦是如此。这里的“离线”表示能力的开发、验证与发布阶段;网关处理请求、动态装载工具则发生在滚动更新的运行时,两者通过注册信息衔接。

图5将发布前的能力转化为运行时可调用的组件

  • 框6“工具定义”里工具实现与调用契约的数据对象,.py表示Python工具实现的一个例子,实际生产环境里,执行代码可以采用Python、Go或其他语言。在运行时,真正交给模型理解的是工具名称、用途、输入结构和结果约定,.json里规范清楚请求对象应明确tool_name、arguments和调用标识,结果对象则保存状态、输出或错误。MCP官方工具规范提供工具发现与调用方法,并以Schema描述参数及可选的输出约束,为这种接口约定提供了通用协议基础

  • 框8“工具注册”的工具注册表保存能力名称、版本、契约、路由位置与启停信息,权限策略由可信服务执行。动态装载依据当前任务与授权范围选出相关工具,再把必要定义交给模型。上下文窗口由这些定义与当前任务信息共同组成,窗口本身无需被当作注册表或长期存储

  • 框7“工具网关”中的API代表执行边界;更严格地说,跨边界流转的是请求与响应对象。网关完成鉴权、校验、路由、限流和审计,工具发现阶段的权限过滤不能替代调用时的授权检查

  • 技能Skill与子工作代理Sub-Agent也需要对运行时发布,工具提供动作,Skill约定步骤与结果形态,Sub-Agent结合与业务约定的工作能力执行这些步骤

即使所有请求都有JSON格式,系统也不会自动可靠。决定可靠性的,是这些对象何时持久化、谁有权修改状态,以及失败后能否找回原来的执行位置。图6正是在回答这个问题!

 六 技术落地:用状态机推进任务执行链路 

花了三个篇幅,讲述了通用模板里的数据对象。现在,应该谈谈技术上如何做到数据对象的生命周期管理、执行过程中的临时结果和在上下游中需要共享的各种事实。在实战中,FDE 会考虑采用 RabbitMQ 投递任务,PostgreSQL 保存执行事实。把 Workflow、Pipeline、Tasks、Jobs、Tool-Calling、Commands、Skills 等等分别提供整体目标、业务责任、恢复检查点与具体调用记录、中间进展等发生的状态都被留痕住。

图6 状态机机制保障实现可恢复工作流

抛给读者一个问题“为什么要采用状态机的系统设计?”

答案十分朴素,作为整个 Agentic AI 系统的“中枢”是 LLM 大模型,LLM 大模型本质是个通晓世界知识,采用文字接龙的概率模型,那它每次生成的计划可能带有不确定性(推理答案的不一致性),计划的不稳定性会带来各种下游结果的变化。因此,想要恢复工作流,就必须得把各种信息都记住。核心就一句话:先记账、再处理。当前最常用的 Agent 设计范式是 Main Plan/ Multi-Agent Execution/Validation/Loop。一个主智能体负责理解用户需求,编排出一个长程计划,然后由多个子智能体互相协作来完成计划,把各项结果汇总给主智能体,主智能体输出结论,另一个智能体充当核验,对结论提出修改动作,迭代到预设终止条件满足。因此,随着 Agentic AI 系统的复杂性越来越大,系统设计中引入状态机承担记账工作是一个提升强壮性、稳定性的正向工作。

把执行链路的信息保留下来,当遇到故障时,可以快速恢复。正常的执行进展是T1得到20个候选SKU,写成不可变结果R1。T2和T3都读取R1,前者产生评论证据R2,后者产生配送证据R3。最终筛选以SKU为键合并R1、R2、R3,再按规则版本筛选排序。每个结论都能追溯到相应的证据引用。这里的20个候选是检索预算,不是固定算法要求。

如果T3需要等待地址,R1和R2可以先保存。用户补充地区后,系统把输入变更写入工作流,并只唤醒受影响的分支。如果等待过久导致库存或配送事实过期,则按时效策略重新查询,而不是把过期缓存当作当前承诺。

先记账的优势: 每个数据对象都应有可解释的去向。

再处理的机制保证:采用 RabbitMQ 实现事件总线,它负责运输任务。

七 最后总结 

本篇博客,讲述了 FDE 驻场后,采用通用模板快速部署 Agentic AI 系统。着重讲解了通用模板中各个模块的数据对象,利用 PostgreSQL 保存运行事实、RabbitMQ 实现执行链路里状态存储的职责。把六张图连起来,FDE交付的是一条可以检查的业务链:用户目标形成 Workflow,Pipeline 把目标变成 Tasks,工作代理用Jobs 组织工作,Tools 闭环可追溯的事实,持久化记录承接每一次状态变化。场景可以继续扩展,接口和模型可以更换,责任边界与恢复规则仍然清晰。通用模板让多方团队知道组件如何分工;数据对象让组件真正协作;可恢复工作流让一次业务请求有始有终。这三件事连在一起,Agentic AI 才具备持续交付业务结果的基础。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料