技能架构设计:208个金融AI Skill的分类体系

简介: 银行智能体架构:7个Skill如何协同工作 实战代码:基于 financial-ai-skills 项目 | 架构设计 | Skill协同 | 数据流 单体架构 vs 微服务架构 银行系统常见的两种架构: `` 单体架构: 微服务架构: ┌─────────────┐ ┌─────┐ ┌─────┐ ┌─────┐ │ 核心系统 │ │信贷 │ │风控 │ │营销 │ │ ├─信贷

银行智能体架构:7个Skill如何协同工作

实战代码:基于 financial-ai-skills 项目 | 架构设计 | Skill协同 | 数据流

单体架构 vs 微服务架构

银行系统常见的两种架构:

单体架构:                    微服务架构:
┌─────────────┐            ┌─────┐ ┌─────┐ ┌─────┐
│  核心系统    │            │信贷 │ │风控 │ │营销 │
│  ├─信贷     │            │服务 │ │服务 │ │服务 │
│  ├─风控     │            └─────┘ └─────┘ └─────┘
│  ├─营销     │               ↑       ↑       ↑
│  └─运营     │            ┌─────────────────────┐
└─────────────┘            │      API网关         │
                           └─────────────────────┘

问题:单体太臃肿,微服务太复杂。

方案:Skill化架构

我设计的架构:

┌─────────────────────────────────────────┐
│           应用层 (业务系统)               │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐  │
│  │ 信贷系统 │ │ 风控系统 │ │ 营销系统 │  │
│  └────┬────┘ └────┬────┘ └────┬────┘  │
└───────┼───────────┼───────────┼────────┘
        │           │           │
        └───────────┼───────────┘
                    ↓
┌─────────────────────────────────────────┐
│           Skill层 (7个核心模块)           │
│  ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐      │
│  │财务 │ │风控 │ │尽调 │ │营销 │      │
│  │智能 │ │合规 │ │    │ │    │      │
│  └─────┘ └─────┘ └─────┘ └─────┘      │
│  ┌─────┐ ┌─────┐ ┌─────┐              │
│  │信贷 │ │运营 │ │财富 │              │
│  │审批 │ │自动化│ │管理 │              │
│  └─────┘ └─────┘ └─────┘              │
└─────────────────────────────────────────┘
                    │
        ┌───────────┼───────────┐
        ↓           ↓           ↓
┌───────────┐ ┌───────────┐ ┌───────────┐
│  数据层    │ │  规则引擎  │ │  LLM层    │
│  CSV/SQL  │ │  评分卡   │ │ (可选)    │
└───────────┘ └───────────┘ └───────────┘

Skill协同示例

from financial_intelligence import CashflowForecaster
from risk_compliance import FraudDetector
from credit_approval import CreditScorer

# 场景:企业申请贷款
# 需要多个Skill协同

class LoanApprovalWorkflow:
    def __init__(self):
        self.cashflow = CashflowForecaster()
        self.fraud = FraudDetector()
        self.credit = CreditScorer()

    def process(self, application: dict) -> dict:
        """处理贷款申请"""
        results = {
   }

        # Step 1: 财务分析
        print("🔍 Step 1: 财务分析")
        cashflow_result = self.cashflow.forecast(
            application["financial_data"]
        )
        results["cashflow"] = cashflow_result

        # Step 2: 反欺诈检测
        print("🔍 Step 2: 反欺诈检测")
        fraud_result = self.fraud.check(
            application["transaction_history"]
        )
        results["fraud"] = fraud_result

        # Step 3: 信用评分
        print("🔍 Step 3: 信用评分")
        credit_result = self.credit.score(
            application["credit_data"]
        )
        results["credit"] = credit_result

        # Step 4: 综合决策
        print("🔍 Step 4: 综合决策")
        decision = self.make_decision(results)

        return {
   
            "application_id": application["id"],
            "results": results,
            "decision": decision,
            "timestamp": datetime.now().isoformat()
        }

    def make_decision(self, results: dict) -> dict:
        """综合决策"""
        score = 0
        reasons = []

        # 现金流评分 (权重30%)
        cf_score = results["cashflow"]["health_score"]
        score += cf_score * 0.3

        # 反欺诈评分 (权重30%)
        fraud_score = 100 - results["fraud"]["risk_score"]
        score += fraud_score * 0.3

        # 信用评分 (权重40%)
        credit_score = results["credit"]["score"]
        score += credit_score * 0.4

        # 决策
        if score >= 80:
            decision = "APPROVE"
            suggestion = "建议审批"
        elif score >= 60:
            decision = "REVIEW"
            suggestion = "建议人工复核"
        else:
            decision = "REJECT"
            suggestion = "建议拒绝"

        return {
   
            "score": score,
            "decision": decision,
            "suggestion": suggestion,
            "reasons": reasons
        }

# 使用
workflow = LoanApprovalWorkflow()
result = workflow.process({
   
    "id": "APP001",
    "financial_data": {
   ...},
    "transaction_history": {
   ...},
    "credit_data": {
   ...}
})

print(f"决策: {result['decision']['decision']}")
print(f"评分: {result['decision']['score']}")
print(f"建议: {result['decision']['suggestion']}")

数据流设计

# Skill间的数据流
class DataFlow:
    """数据流管理器"""

    def __init__(self):
        self.pipeline = []

    def add_step(self, skill, input_mapping, output_mapping):
        """添加处理步骤"""
        self.pipeline.append({
   
            "skill": skill,
            "input_mapping": input_mapping,
            "output_mapping": output_mapping
        })

    def execute(self, initial_data: dict) -> dict:
        """执行数据流"""
        data = initial_data.copy()

        for step in self.pipeline:
            skill = step["skill"]

            # 映射输入
            inputs = {
   }
            for key, path in step["input_mapping"].items():
                inputs[key] = self._get_value(data, path)

            # 执行Skill
            result = skill.process(**inputs)

            # 映射输出
            for key, path in step["output_mapping"].items():
                self._set_value(data, path, result[key])

        return data

    def _get_value(self, data: dict, path: str):
        """获取嵌套值"""
        keys = path.split(".")
        value = data
        for key in keys:
            value = value.get(key, {
   })
        return value

    def _set_value(self, data: dict, path: str, value):
        """设置嵌套值"""
        keys = path.split(".")
        target = data
        for key in keys[:-1]:
            if key not in target:
                target[key] = {
   }
            target = target[key]
        target[keys[-1]] = value

# 定义贷款审批数据流
flow = DataFlow()

# Step 1: 财务分析
flow.add_step(
    skill=CashflowForecaster(),
    input_mapping={
   "data": "application.financial_data"},
    output_mapping={
   "health_score": "results.cashflow.health_score"}
)

# Step 2: 反欺诈
flow.add_step(
    skill=FraudDetector(),
    input_mapping={
   "transactions": "application.transaction_history"},
    output_mapping={
   "risk_score": "results.fraud.risk_score"}
)

# Step 3: 信用评分
flow.add_step(
    skill=CreditScorer(),
    input_mapping={
   "credit_data": "application.credit_data"},
    output_mapping={
   "score": "results.credit.score"}
)

# 执行
result = flow.execute({
   
    "application": {
   ...}
})

配置化Skill加载

# skill_config.yaml
skills:
  financial-intelligence:
    enabled: true
    version: "1.0"
    config:
      forecast_horizon: 30

  risk-compliance:
    enabled: true
    version: "1.1"
    config:
      min_transaction_amount: 100000

  credit-approval:
    enabled: true
    version: "1.0"
    config:
      min_score: 75
      max_auto_amount: 500000

# 加载配置
import yaml

class SkillManager:
    def __init__(self, config_path: str):
        with open(config_path) as f:
            self.config = yaml.safe_load(f)
        self.skills = {
   }

    def load_skills(self):
        """加载所有Skill"""
        for name, cfg in self.config["skills"].items():
            if cfg["enabled"]:
                self.skills[name] = self._load_skill(name, cfg)

    def _load_skill(self, name: str, cfg: dict):
        """加载单个Skill"""
        module = __import__(f"skills.{name.replace('-', '_')}")
        skill_class = getattr(module, name.replace("-", " ").title().replace(" ", ""))
        return skill_class(**cfg.get("config", {
   }))

    def get_skill(self, name: str):
        """获取Skill"""
        return self.skills.get(name)

# 使用
manager = SkillManager("skill_config.yaml")
manager.load_skills()

credit_skill = manager.get_skill("credit-approval")
result = credit_skill.score(application_data)

监控与日志

class SkillMonitor:
    """Skill监控器"""

    def __init__(self):
        self.metrics = {
   }

    def record(self, skill_name: str, operation: str, duration: float, success: bool):
        """记录指标"""
        key = f"{skill_name}.{operation}"

        if key not in self.metrics:
            self.metrics[key] = {
   
                "count": 0,
                "total_duration": 0,
                "success_count": 0,
                "fail_count": 0
            }

        self.metrics[key]["count"] += 1
        self.metrics[key]["total_duration"] += duration

        if success:
            self.metrics[key]["success_count"] += 1
        else:
            self.metrics[key]["fail_count"] += 1

    def get_report(self) -> dict:
        """生成监控报告"""
        report = {
   }

        for key, metrics in self.metrics.items():
            report[key] = {
   
                "total_calls": metrics["count"],
                "avg_duration": metrics["total_duration"] / metrics["count"],
                "success_rate": metrics["success_count"] / metrics["count"] * 100,
                "error_rate": metrics["fail_count"] / metrics["count"] * 100
            }

        return report

# 装饰器自动记录
import time
import functools

def monitored(skill_name: str, operation: str):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args, **kwargs):
            start = time.time()
            try:
                result = func(*args, **kwargs)
                monitor.record(skill_name, operation, time.time() - start, True)
                return result
            except Exception as e:
                monitor.record(skill_name, operation, time.time() - start, False)
                raise
        return wrapper
    return decorator

# 使用
class CreditScorer:
    @monitored("credit-approval", "score")
    def score(self, data: dict) -> dict:
        # 评分逻辑
        pass

完整代码https://github.com/yuzhaopeng-up/financial-ai-skills

#架构设计 #Skill协同 #数据流 #银行系统 #微服务

相关文章
|
3天前
|
人工智能 自然语言处理 云计算
2026阿里云大使招募:抢占AI先机,轻松赚取最高30%返佣,享官方全程陪跑支持!
阿里云2026云大使计划全新升级!无门槛加入,覆盖个人与企业。推广400+款产品(含热门MAAS产品,如秒悟、百炼等),享高额返佣+长周期收益。官方提供培训、方案落地、客户陪跑全链路支持,助你成为AI时代超级连接者。会分享,就能赚!
|
4天前
|
数据采集 机器学习/深度学习 人工智能
田间杂草定位与检测4200张YOLO智慧农业数据集分享
本数据集含4200张真实农田图像,YOLO格式,单类别(杂草)高质量标注,覆盖多作物、多光照、多生长阶段等复杂场景,专为智慧农业杂草检测与智能除草设备研发设计,支持YOLOv5/v8/v10等主流模型训练。
359 94
|
17小时前
|
人工智能 算法 NoSQL
风险合规AI化:从人防到技防的转型路径
银行风控合规的AI实践:关联图谱自动识别洗钱网络 开源Skill:risk-compliance | 关联图谱分析 | 5大欺诈模式检测 痛点:传统反洗钱的"漏网之鱼" 银行反洗钱系统通常基于规则引擎: 单笔交易 > 50万?预警 日累计 > 100万?预警 频繁小额转账?预警 但聪明的洗钱者早已学会拆分交易、多层转账、跨行操作... 真实案例:某团伙用50个账户,通过6层转账,3个
|
10小时前
|
人工智能
贷前尽调报告AI生成:结构化提取与风险标注
对公开户尽调:一键生成标准化Markdown风险报告 实战代码:基于 due-diligence Skill | 企业风险扫描 | 报告自动生成 痛点:尽调报告的"复制粘贴" 银行对公客户经理写尽调报告: 1. 打开Word模板 2. 复制粘贴企业信息 3. 手动填写风险分析 4. 调整格式、排版 5. 反复修改... 平均耗时:4小时/份,且容易出错。 方案:一键生成标准化报告 `
|
11小时前
|
人工智能 搜索推荐
零售营销AI化:从客群细分到精准推荐
银行零售营销AI化:客户分层+精准推荐+AUM提升实战 开源Skill:retail-marketing | RFM模型 | 客户分层 | 精准营销 痛点:"撒网式"营销的困境 银行零售客户经理的常见场景: 群发理财短信,回复率 0.3% 电话推销信用卡,接通率 15% 网点发传单,转化率 0.1% 问题:不知道谁是目标客户,只能大海捞针。 方案:RFM+AI的客户分层运营 我开发的
|
9小时前
|
人工智能 监控
工作流自动化AI:从审批流到合规检查的Skill编排
从工单到闭环:银行运营自动化完整方案 实战代码:基于 operations-automation Skill | 工单系统 | 流程编排 | SLA监控 痛点:银行运营的"人肉接力" 银行运营流程的典型场景: `` 客户投诉 → 客服记录 → 转运营 → 转技术 → 转合规 → 回复客户 ↑___________________________________________↓ (平
|
17小时前
|
人工智能 监控 API
金融智能:AI如何重构银行业未来
零API费用!我用Python写了一套银行财务AI智能体:6大场景全覆盖 开源项目:financial-ai-skills | 56个场景 | 零LLM调用成本 痛点:银行数字化转型的"最后一公里" 在银行工作多年,我发现一个悖论: 上层:战略会议谈AI、谈大模型、谈数字化转型 基层:Excel手工对账、纸质审批单、邮件传附件 中间隔着什么?可落地的工具。 买系统?动辄百万缌实施周期
|
6天前
|
XML Java 测试技术
JaCoCo 代码覆盖率:Spring Boot 集成与报告解读
单测写了但不知道测到没?本文用 JaCoCo 代码覆盖率工具,3 步 Maven 插件配置接入 Spring Boot,手把手教你生成并读懂覆盖率报告。
JaCoCo 代码覆盖率:Spring Boot 集成与报告解读
|
8天前
|
弹性计算 NoSQL 网络协议
阿里云国际站代理商: ECS连不上Tair Redis?白名单、网络与密码排查全攻略
当你在 ECS 上用 redis-cli 敲下连接命令,屏幕上出现的不是 OK,而是 Connection timed out 或 NOAUTH Authentication required,故障源头通常只在三层管控:网络放行、白名单准入、密码认证。这三个环节任意一个配置不对,都会阻断连接,但大量案例表明,多数失败集中在网络和白名单这两步。
|
5天前
|
前端开发 JavaScript API
前端开发:如何优雅引入polyfill
一般的polyfill引入方式只是够用,要真正的优雅,还得靠 [rollup-plugin-polyfill-inject] 和 [typescript-plugin-polyfill]。当然一般业务开发者是无需考虑兼容性的,处理构建问题是架构层做的。
60 1