引言:AI Skill设计的"巴别塔"困局
当下的AI Agent生态,正陷入一种似曾相识的混乱。
去年帮一家保险公司梳理Agent技能库,发现100多个Skill横七竖八地堆在一起——有的直接调API,有的内嵌业务逻辑,有的把数据获取和分析揉成一团。问架构师这些Skill怎么分类,回答是"按安装顺序排的"。再问两个Skill之间数据怎么流转,回答是"各写各的"。一个股票监控Skill自己爬数据、自己做分析、自己发消息,三件事耦合在同一个脚本里。换一个场景想复用其中的分析逻辑?做不到,只能重写。
这不是个例。几乎所有率先部署AI Agent的企业都面临同样的困境:Skill越堆越多,越堆越乱。缺乏统一的能力域划分,缺乏标准化的数据接口,缺乏清晰的组合规则,缺乏可复用的构建块沉淀。
听起来很熟悉?没错——这正是企业架构在20年前要解决的问题。当年企业信息化的混乱,和今天AI Skill的混乱,本质上是一回事:没有架构约束的开发,必然走向无序。
4A企业架构(业务架构BA、数据架构DA、应用架构AA、技术架构TA)加上TOGAF的构建块思想,为Agent Skill设计提供了一套经过验证的方法论。本文试图建立这二者之间的映射框架,并用实际案例说明其可行性。
4A映射框架:四个问题驱动Skill设计
企业架构的核心是四个问题:做什么(BA)、数据怎么流(DA)、用什么组合(AA)、底层怎么支撑(TA)。这四个问题同样适用于Skill设计。
| 架构层 | 核心问题 | Skill映射 | 输出物 |
|---|---|---|---|
| BA 业务架构 | 做什么业务 | Skill能力域划分、价值链映射 | 能力域地图 |
| DA 数据架构 | 数据怎么流 | Skill间数据流、信息交换标准 | 数据流图 + 接口规范 |
| AA 应用架构 | 怎么组合 | Skill组合关系、依赖图谱 | 组装蓝图 |
| TA 技术架构 | 底层怎么支撑 | Skill运行时、基础设施 | 技术选型方案 |
BA:Skill能力域划分
业务架构解决"干什么"的问题。4A框架下,BA层将企业能力分解为可组合的业务能力块,每个能力块对应一个或一组Skill。
我们以金融行业为例,将AI能力划分为6个能力域:
| 能力域 | 核心Skill | 典型场景 |
|---|---|---|
| 知识检索 | KnowledgeRAGHandler | 合规模范查询、产品手册问答 |
| 数据分析 | DataAnalysisHandler | 渠道效能分析、业绩归因 |
| 报告生成 | ReportGenHandler | 尽调报告、审计底稿 |
| 文本生成 | TextGenHandler | 营销话术、会议纪要 |
| 评分决策 | ScoringEngineHandler | 信用评估、风险评级 |
| 文档解析 | OCRParserHandler | 发票查验、进件核对 |
每个能力域是一个高内聚的Skill集合。能力域之间的边界由业务流程决定——知识检索和数据分属不同能力域,因为它们的业务语义和用户角色不同;但知识检索配合报告生成可以组装成更复杂的业务流程。
DA:Skill间的数据流设计
数据架构解决"数据怎么流"的问题。最关键的决策是:Skill之间交换数据的格式和协议。
我们的实践是采用JSON Schema作为Skill间数据交换的契约:
- 每个Handler声明输入Schema和输出Schema
- 上游Handler的输出Schema必须兼容下游Handler的输入Schema
- 非兼容的连接需要通过Adapter Skill桥接
这种设计保证了Skill组合的数据安全性。在实际生产中,我们遇到过两个教训:
评分引擎的输出直接喂给报告生成器,但评分结果缺少置信度字段,导致报告措辞过于绝对。修复方式是在ScoringEngineHandler的输出Schema中增加confidence字段,并要求下游Handler根据置信度调整输出语气。
文档解析输出的数据结构包含嵌套的表格数据,数据分析Handler无法直接消费。解决方案是引入一个FlattenAdapter Skill,将嵌套结构展平为二维表格格式。
AA:Skill的组合关系
应用架构解决"怎么组合"的问题。这一层决定了Skill的组装粒度和复用边界。
我们使用三层组装模式:
- 原子Skill:单个Handler完成单一功能,如OCRParserHandler做发票识别
- 复合Skill:多个原子Skill按流程编排,如尽调报告 = OCR解析 + 数据分析 + 报告生成
- 场景Skill:面向最终用户的端到端体验,如企业尽调智能体 = 用户交互 + 尽调报告 + 风险评分
组装的关键约束是:复合Skill只能调用原子Skill或子复合Skill,不能跨层直接调用Handler。这保证了每一层都有明确的抽象边界。
TA:技术架构支撑
技术架构解决"底层怎么支撑"的问题。核心是三个选择:
- Skill运行时:选择支持Skill热加载和版本管理的运行时
- 编排引擎:选择支持DAG编排的流程引擎
- 状态管理:选择支持Skill间状态共享的存储方案
在我们的实践中,选择了Phase-Orchestrator作为编排引擎,它支持4-Phase强制链式调用和条件分支。状态管理采用结构化JSON传递,在每个Phase的入口和出口进行schema校验。
TOGAF构建块思想:Skill的可复用单元
4A给出了Skill的架构框架,TOGAF的构建块(Building Block)思想则给出了Skill的可复用设计规范。
什么是构建块
TOGAF定义的构建块有两个核心特征:
- 功能内聚:一个构建块封装一组紧密相关的功能
- 接口标准:构建块通过标准接口对外暴露能力,内部实现对外不可见
这与Skill设计的要求完全一致。一个设计良好的Skill应该是一个标准的构建块:内部封装具体的Handler逻辑和数据访问,外部只暴露输入输出接口。
构建块的分类
TOGAF将构建块分为两类:
- 架构构建块(ABB):定义能力边界和接口规范,类似于接口
- 解决方案构建块(SBB):ABB的具体实现,类似于实现类
在Skill体系中,这对应两个层次:
| 层次 | 对应概念 | 示例 |
|---|---|---|
| ABB | Handler接口定义 | ScoringEngineHandler声明输入为客户数据、输出为评分结果 |
| SBB | 具体Skill实现 | 信用评分Skill实现逻辑回归评分,风险评级Skill实现规则引擎评分 |
ABB/SBB分离带来了两个直接好处:
- 实现可替换:同一个ABB可以有多种SBB实现,根据场景选择最适合的实现
- 接口驱动开发:先定义ABB(接口),再开发SBB(实现),降低开发耦合
构建块的组合规则
TOGAF的组合规则对Skill设计有三条约束:
- 单一职责:一个Skill只做一件事。违反此规则的典型表现是股票监控Skill同时做数据获取和分析
- 依赖显式声明:Skill的依赖关系必须在配置中声明,不允许隐式依赖
- 数据流方向单一:Skill之间的数据流必须是单向的,不允许循环依赖
实战案例:企业尽调智能体
以企业尽调智能体为例,展示4A+TOGAF如何指导一个完整Skill系统的设计。
BA层:定义能力域
企业尽调需要6个能力域覆盖:
| 能力域 | Skill | 业务价值 |
|---|---|---|
| 文档解析 | OCRParserHandler | 提取财务数据 |
| 知识检索 | KnowledgeRAGHandler | 查询合规要求 |
| 数据分析 | DataAnalysisHandler | 计算财务指标 |
| 评分决策 | ScoringEngineHandler | 输出风险评级 |
| 报告生成 | ReportGenHandler | 生成尽调报告 |
| 可视化 | VisualizationHandler | 风险仪表盘 |
DA层:设计数据流
6个能力域的数据流向:
文档解析 → 数据分析 → 评分决策 → 报告生成
知识检索 → 评分决策
评分决策 → 可视化
报告生成 ← 可视化
每个箭头代表一条JSON数据流,每条数据流都有对应的Schema约束。
AA层:组合Skill
两层组装:
- 原子层:6个Handler各自作为原子Skill
- 复合层:企业尽调Skill = 文档解析 + 数据分析 + 评分决策 + 报告生成
知识检索和可视化作为可选增强,不纳入核心流程。
TA层:技术选型
- 编排引擎:Phase-Orchestrator,4-Phase链式调用
- 状态管理:结构化JSON,Phase间传递
- 运行时:Python 3.10+,Skill热加载
经验总结:从方法论到实践的三个教训
架构要先行但不求完美。先建立4A的骨架,让每个Skill至少知道自己属于哪个能力域、数据从哪来往哪去。细节在迭代中补齐,但框架不能缺。
构建块粒度由业务决定,不由技术决定。一个股票分析Skill之所以应该拆分为数据获取+分析+通知三个Skill,不是因为技术上做不到合一,而是因为业务上存在独立复用这三个能力的场景。
Schema是Skill间的契约,不是建议。松散的接口约定会随Skill数量增长而崩溃。只有强制执行Schema校验,才能确保Skill组合的可预测性。
4A和TOGAF不是新概念,但将它们系统性地映射到Agent Skill设计,当前实践尚少。希望本文的框架能为AI Agent的架构化发展提供一个起点。
Agent Skills 开源生态
本文涉及的技能和框架已开源,欢迎 Star / Fork / PR:
| 仓库 | 内容 | 协议 | 链接 |
|---|---|---|---|
| financial-ai-skills | 104个金融AI技能,零API费 | MIT | https://github.com/yuzhaopeng-up/financial-ai-skills |
| teleagent-skills | 5个通用Agent技能(评分引擎/证据链/数据聚合/可视化/NL2Query) | Apache 2.0 | https://github.com/yuzhaopeng-up/teleagent-skills |
| agent-cluster-comm | 5层集群通信技能(L1-L5) | Apache 2.0 | https://github.com/yuzhaopeng-up/agent-cluster-comm |
| skill-framework | 208技能分类体系+L0-L4框架+YAML模板 | MIT | https://github.com/yuzhaopeng-up/skill-framework |
| fintech-h5-demos | 12个零依赖金融H5演示 | MIT | https://github.com/yuzhaopeng-up/fintech-h5-demos |