技能架构设计: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协同 #数据流 #银行系统 #微服务

相关文章
|
1月前
|
人工智能 缓存 运维
重磅发布丨云监控 AI Agent 可观测,企业生产级 Agent 首选全域观测平台
AI Agent 可观测是面向企业生产级 Agent 的全域观测平台,提供从接入、建模、分析到 Agentic Ops 的全域观测和分析能力,帮助企业彻底打开 Agent 的黑箱,实现 Agent 执行过程的可追踪、可诊断、可优化。
507 20
|
6天前
|
人工智能 弹性计算 自然语言处理
阿里云产品与AI产品优惠信息参考:Token Plan、万小智AI建站、AI组合购等优惠信息汇总
阿里云最新云产品与AI产品优惠信息:覆盖基础云服务器、AI大模型、编程智能体、视频生成等全链路产品。核心优惠包括:百炼全模型通用Token Plan包季低至4.5折,覆盖150+款大模型;轻量应用服务器2核2G新人专享68元/年起,e实例99元/年续费同价;Qoder CN编程智能体59元/月起,秒悟Pro版限量9.9元/月,HappyHorse视频生成限时8折,万小智AI建站赠域名与灵感值。同时搭配最高100万元OPC创新助力Token补贴,全方位降低AI落地与上云综合成本。
|
4天前
|
人工智能 监控 测试技术
银行业AI架构:从裸调API到六层技能体系
# 银行AI智能体架构实战:从单体到Skill协同的技术演进 ## 痛点:银行IT架构的三重困境 走在任何一家银行的科技部走廊里,你都能听到同样的叹息:系统又慢了、需求又排不上、监管又来查了。这不是某一家银行的困境,而是整个银行业IT架构的共性问题。我们把它拆解为三重困境。 **困境一:单体系
|
10天前
|
人工智能
告别排版噩梦:一个开源SKILL,让我彻底告别公众号排版的“噩梦”
**gzh-design-skill**,一个专门为公众号排版设计的 Skill,面向 AI Agent(如 Claude Code、Codex、Cursor 等)使用。 你写完 Markdown,它按你选的主题,生成样式**全内联**的 HTML——粘贴到公众号编辑器后**格式不丢、样式不掉**。自动编章节号、标关键词下划线、配引言卡与目录、处理代码块和图片、合并作者签名,并用校验脚本兜住公众号平台的各种坑。
191 1
告别排版噩梦:一个开源SKILL,让我彻底告别公众号排版的“噩梦”
|
6天前
|
缓存 UED 开发者
Codex109天重置23次,明天还要再送一次
Codex近109天完成23次额度重置,7月14日将迎来第24次。Tibo高频响应用户反馈:优化GPT-5.6高消耗问题、补发失效福利、调整重置时间——形成“反馈→回应→修复→补偿”正向闭环,彰显以用户为中心的产品哲学。(239字)
706 11
|
13天前
|
人工智能 JSON 自然语言处理
阿里云百炼Token Plan产品详解:产品功能、支持模型与Agent工具、套餐和Credits价格介绍
阿里云百炼Token Plan团队版是面向企业与开发团队的预付费AI大模型订阅服务,以统一Credits计量,整合Qwen、DeepSeek、Kimi等多厂商文本与图像生成模型,兼容OpenAI/Anthropic标准接口,适配Qwen Code、OpenClaw等主流AI编程与智能体工具。产品提供198元/月(标准)、698元/月(高级)、1398元/月(尊享)三档坐席套餐,搭配5000元共享用量包,支持席位分配、用量分析与SSO集成,承诺不使用对话数据训练模型,多租户隔离架构保障高峰不排队。
|
13天前
|
人工智能 关系型数据库 Linux
Xshell、MobaXterm 之外的新选择:uniTerm 开源终端软件,不到 10MB,覆盖 20+ 协议
uniTerm是一款不到10MB的开源跨平台终端工具(Apache 2.0),集成SSH/Telnet/RDP/VNC/SFTP/SMB/MySQL/Redis等20+协议,内置AI Agent、分屏、云同步与中文支持,一站式替代Xshell、Navicat等多款客户端。
311 7
|
18天前
|
人工智能 文字识别 并行计算
离谱!我以为 OCR 还在一页页抠字,结果百度 1.2 万 Star Unlimited-OCR 直接把长文档一口气读完
百度开源 Unlimited-OCR,把图片、长文档、多页 PDF 这类非结构化资料推进到 Markdown、表格和可检索文本,适合 RAG、知识库和 Agent 文档入口。
153 7
|
1月前
|
数据采集 人工智能 分布式计算
多Agent集群中的"情报官"设计:为什么系统需要一个RDD
在多Agent系统中,信息采集环节的失误往往是级联错误的根源。本文从行业实践和学术研究两个维度,论证了专职情报采集Agent的必要性,并详细解析了枢衡RDD(资源探测)的五大架构设计原则,包括与CAD的对抗性协作机制等。最后提供了一套可落地的自检清单,帮助开发者判断自己的Agent集群是否需要引入专职情报官角色。
|
1月前
|
人工智能 弹性计算 API
OpenClaw+阿里云百炼Token Plan 一站式部署与配置流程
OpenClaw作为一款开源可自托管的AI智能体执行框架,能让大模型从单纯对话升级为可执行文件处理、代码编写、流程自动化等任务的数字助手。在阿里云上部署OpenClaw并接入百炼Token Plan,可依托阿里云稳定的云服务与百炼的大模型能力,打造专属、高效、低成本的AI智能体服务。本文将从准备工作、阿里云服务器部署、百炼Token Plan开通与密钥获取、OpenClaw配置、功能验证到常见问题排查,提供完整实操流程,帮助用户快速完成部署与配置。
383 9