分布式去中心化代理AI框架

一个基于标准化协议(A2A、MCP、AP2)的分布式去中心化AI代理框架,专注于金融科技领域的贷款申请和审批流程自动化。

  • by irabanta
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 irabanta/distributed-decentralized-agentic-ai-mcp

使用说明

去中心化分布式代理人工智能框架(DAAIF)

:火箭: 项目状态:早期发展

:包: 实施状态:

  • [x] 建筑设计
  • [x] TypeScript实现(计划: typescript 分支)-进行中
  • []Python实现(main 分支)
  • [ ] .NET实施(计划: dotnet 分支)
  • []出发(计划: Go 分支)
  • []Java(计划: Java 分支)
  • []分布式去中心化系统架构

:握手: 欢迎贡献者! 看看我们的 好的第一个问题 对于每个实施。

该项目实现了一个分布式、去中心化的代理人工智能系统框架,该框架是为金融科技中的端到端贷款申请和审批流程进一步设计的。它利用了标准协议,如 A2A(代理人对代理人), MCP(模型上下文协议),以及 AP2(代理支付协议) 以确保跨多个技术栈的互操作性、安全性和可扩展性。

主要特点

  • 分布式和去中心化:代理在多个节点上运行,确保弹性和无单点故障。
  • AI 代理:每个代理人都可以在贷款流程中自主推理、沟通和行动。
  • 协议驱动:遵守A2A、MCP和AP2标准,以实现安全、可互操作的代理通信。
  • 金融科技用例:专注于自动化和优化贷款申请、评估和审批工作流程。
  • 开放供捐款:专为工科学生和开源社区设计的合作项目。

业务架构

分布式去中心化代理人工智能框架(DAAIF)为构建可扩展的自主人工智能系统提供了一个基础架构,其中多个专用代理通过标准化协议(MCP、A2A、AP2)进行协作。该框架旨在与行业无关,提供核心功能,如代理到代理通信、基于OAuth的安全身份验证、分布式状态管理以及跨不同云提供商的模块化部署选项。组织可以利用这个框架来构建自己的分布式人工智能解决方案,方法是实现特定于领域的代理,这些代理继承了框架强大的通信、安全和可扩展性基础设施,同时添加了他们独特的业务逻辑和集成。

作为参考实施,该框架通过一个全面的贷款处理系统展示了其功能,展示了金融机构如何利用DAAIF的架构。该实现包括用于贷款申请处理、信用评分、文件验证和自动决策的专门代理,所有这些代理都作为自主单元协同工作,同时保持监管合规性和数据安全。虽然贷款处理实施是一个实际例子,但该框架的核心组件——从控制器代理的路由功能到标准化的MCP服务器/客户端交互——旨在为各种行业重新定位,无论是供应链管理、医疗保健运营还是零售自动化。这种提供通用框架和特定实现的双重方法使组织能够理解实际应用,同时具有灵活性,可以根据其独特的业务需求调整架构。

用例概述

  • 贷款申请提交
  • 信用评分和风险评估
  • 文件验证
  • 批准/拒绝决策
  • 付款处理和支付 (AP2已启用)
  • 自动还款计划 (AP2已启用)
  • 通知和审计跟踪
  • 检测异常

分布式去中心化代理架构

上述每个用例都是按照A2A(代理到代理)架构实现的自主代理:每个代理都充当服务器和客户端。在用例代理之上,有一个控制器代理,它将来自外部客户端的请求路由到适当的用例代理。控制器代理还公开了一个MCP服务器端点,为外部MCP客户端(例如:Claude或其他外部LLM驱动的客户端)提供服务。

关键架构规则:

  • 每个用例->一个代理(A2A):例如,贷款提交代理、信用评分代理、文件验证代理、决策代理、通知代理。
  • 每个代理运行:
    • A2A端点(服务器),用于接收来自其他代理或控制器代理的请求。
    • MCP客户端调用一个或多个MCP服务器。
  • 控制器代理还公开了一个MCP,以允许外部MCP客户端连接它。
  • MCP客户端和MCP服务器使用OAuth进行身份验证;不同的连接可以使用不同的OAuth提供程序(每个代理到代理连接或每个角色一个OAuth提供程序)来支持信任分离和多租户部署。

系统架构:

┌──────────────────────────── External Clients ─────────────────────────────┐
│                                                                          │
│    ┌───────────────┐                          ┌───────────────┐         │
│    │Claude/GPT     │                          │Web/Mobile Apps│         │
│    └───────┬───────┘                          └───────┬───────┘         │
└────────────┼──────────────────────────────────────────┼────────────────-┘
             │                                           │
             └───────────────────┐     ┌────────────────┘
                                ▼     ▼ MCP/OAuth
┌───────────────────── Controller Agent Layer ──────────────────────────┐
│  ┌──────────────────────────────────────────────────────────────┐    │
│  │     MCP Server + MCP Client + Service Discovery              │    │
│  └────────────────────────────┬─────────────────────────────────┘    │
└───────────────────────────────┼──────────────────────────────────────┘
                                │
        ┌──────────────────┬────┴─────┬──────────────┬─────────┐
        │                  │          │              │         │
        ▼ A2A/OAuth       ▼          ▼              ▼         ▼
┌──────────────┐  ┌──────────────┐  ┌─────────┐  ┌─────────┐ ┌─────────┐
│ Loan Agent   │  │ Credit Agent │  │Doc Agent│  │Decision │ │Notify   │
│[A2A+MCP]    │◄-►│[A2A+MCP]    │◄►│[A2A+MCP]│◄►│Agent    │►│Agent    │
└──────┬───────┘  └───────┬──────┘  └────┬────┘  └────┬────┘ └────┬────┘
       │                  │               │            │           │
       │                  │               │            │           ▼
       │                  │               │            │    ┌──────────────┐
       │                  │               │            │    │Queue MCP     │
       │                  │               │            │    │Server        │
       │                  │               │            │    │[MessageQueue]│
       │                  │               │            │    └──────────────┘
       │                  │               │            ▼
       │                  │               │     ┌──────────────┐
       │                  │               │     │Rules Engine  │
       │                  │               │     │MCP Server    │
       │                  │               │     │[Rules DB]    │
       │                  │               │     └──────────────┘
       │                  │               ▼
       │                  │        ┌──────────────┐
       │                  │        │Document Store│
       │                  │        │MCP Server    │
       │                  │        │[Doc DB]      │
       │                  │        └──────────────┘
       │                  ▼
       │           ┌──────────────┐
       │           │Credit Score  │
       │           │MCP Server    │
       │           │[Credit DB]   │
       └──────────►└──────────────┘
       │
       │           ┌──────────────┐
       └──────────►│Loan Process  │    Note: Loan Agent connects to
                  │MCP Server    │    multiple specialized servers:
                  │[Loan DB]     │    - Credit Score MCP
                  └──────┬───────┘    - Loan Process MCP
                        │            - AP2 Payment Server
                        ▼
                  ┌──────────────┐
                  │AP2 Payment   │
                  │Server        │
                  │[PaymentQueue]│
                  └──────────────┘

每个框代表一个具有A2A服务器和MCP客户端功能的自主代理。控制器代理充当外部客户端的主MCP服务器,同时将请求路由到专用代理。组件之间的所有连接都使用OAuth与单独的提供者进行安全隔离。每个代理都维护自己的存储系统(数据库或队列)以实现持久性。

控制器代理(MCP服务器+MCP客户端) | |--(OAuth提供者A)-->LoanSubmissionAgent(A2A服务器+MCP客户端) |--(OAuth提供者B)-->信用评分代理(A2A服务器+MCP客户端) |--(OAuth提供者C)-->文档验证代理(A2A服务器+MCP客户端) |--(OAuth提供者D)-->决策代理(A2A服务器+MCP客户端) |--(OAuth提供者E)-->通知代理(A2A服务器+MCP客户端)

笔记:

  • 当您需要单独的信任域时,请为每个逻辑连接使用不同的OAuth提供者或不同的客户端凭据(例如,提供者a用于贷款提交流量,提供者B用于信用评分等)。
  • 每个代理的MCP客户端都可以配置一个或多个MCP服务器端点(用于冗余和多区域部署)。
  • 控制器代理为外部MCP客户端提供一个众所周知的MCP服务器端点;内部路由和发现可以使用服务注册表或安全发现通道来执行。

发展途径

发展方法将是自下而上的。这意味着我们将从开发MCP服务器开始,如贷款流程、信用评分、文档存储、规则引擎、队列MCP。之后,我们将构建代理和控制器代理。

该项目为每个完全实现MCP规范的技术栈利用开源SDK。这些SDK提供了即用型组件,用于快速创建新的MCP服务器,这些服务器公开了资源、提示和工具,以及能够通过OAuth集成连接到任何MCP服务器的MCP客户端。SDK支持标准传输,包括stdio和流式HTTP,确保不同实现之间的通信模式一致。这种方法大大缩短了开发时间,同时保持了整个分布式系统的协议合规性和互操作性。

技术、标准和SDK

协议

  • MCP:模型上下文协议: (规格)
  • A2A:代理人对代理人: (文档)
  • AP2:代理支付协议: (文档)-谷歌用于自动金融交易的安全协议
    • 安全的支付处理和支付
    • 自动还款计划
    • 多币种支持
    • 监管合规处理
    • 审计跟踪生成
  • JSON-RPC 2.0
  • gRPC
  • HTTP+JSON/REST传输:生产必须使用TLS 1.3+

开发工具

  • Visual Studio代码内部人员:IDE支持MCP开发和测试(https://code.visualstudio.com/insiders/)
  • MCP检查员: (如何安装和运行该工具)

MCP功能和最佳实践

该项目将为使用模型上下文协议(MCP)提供全面的功能和实用指南,包括:

  • MCP生命周期 (文档):客户端-服务器连接的生命周期,确保适当的能力协商和状态管理。
  • MCP运输 (文档):客户端-服务器通信的标准传输机制。
  • MCP提示 (文档):为服务器向客户端公开提示模板提供了一种标准化的方法。
  • MCP资源 (文档):为服务器向客户端公开资源提供了一种标准化的方法。
  • MCP工具 (文档):允许服务器公开可由语言模型调用的工具。
  • MCP激发 (文档):从代理和客户那里获取上下文和需求的技术。
  • MCP采样 (文档):MCP工作流中上下文数据的采样和管理方法。
  • MCP身份验证 (文档):使用oAuth实现强大的身份验证。
  • MCP授权 (文档)实施强健的授权机制以确保安全访问。
  • MCP安全注意事项 (文档):保护MCP服务器和通信的最佳实践。
  • 使用oAuth部署MCP服务器:使用现代身份验证逐步部署。
  • 配置/连接MCP服务器与AI代理和代理AI:将MCP与分布式代理系统集成。
  • 远程MCP服务器的测试:验证远程MCP服务器功能的策略和工具。

本节将定期更新代码示例、配置提示和故障排除建议,以帮助贡献者和用户在分布式代理AI系统中有效地利用MCP。

多代理(A2A)功能和最佳实践

安全考虑

  • 身份验证和授权(oAuth 2.0)
  • Vibe编码的风险
  • 超越权限
  • 代理错误
  • 提示注入
  • 困惑的副手
  • 会话劫持

部署环境

  • 本机
  • 云耀
  • Azure,API管理
  • 亚马逊云服务
  • 谷歌云平台

分布式去中心化系统架构 后续步骤

1.高可用性和容错性

  • 使用以下方式添加控制器代理冗余:
    • Azure:支持多区域部署的AKS
    • AWS:具有多AZ配置的EKS
    • GCP:GKE与区域集群
  • 使用以下方式实现服务网格:
    • Azure:服务结构网格
    • AWS:应用网格
    • GCP:Anthos服务网
  • 添加断路器:
    • Azure:应用程序网关
    • AWS:带Lambda的API网关
    • GCP:云负载平衡

2.监测和观测

  • 使用以下方法进行代理健康监测:
    • Azure:应用洞察
    • AWS:云观察
    • GCP:云监控
  • 分布式跟踪:
    • Azure:具有分布式跟踪的应用程序洞察
    • AWS:X射线
    • GCP:云跟踪
  • 通过以下方式收集指标:
    • Azure:Azure监视器
    • AWS:CloudWatch指标
    • GCP:云监控指标API

3.国家管理

  • 分布式缓存实现:
    • Azure:适用于Redis的Azure缓存
    • 弹性的
    • GCP:存储器
  • 使用以下方式进行状态同步:
    • Azure:具有多区域写入功能的Cosmos DB
    • AWS:DynamoDB全局表
    • GCP:Cloud Spanner

4.错误处理和恢复

  • 交易补偿使用:
    • Azure:带有死信队列的服务总线
    • AWS:带死信队列的SQS
    • GCP:带有死信主题的Cloud Pub/Sub
  • 重试策略实施:
    • Azure:Azure函数重试策略
    • AWS:步骤函数重试策略
    • GCP:具有重试配置的云任务

5.可扩展性增强

  • 负载平衡实现:
    • Azure:前门+交通管理器
    • AWS:53号公路+ALB
    • GCP:云负载平衡
  • 代理池使用:
    • Azure:容器应用
    • AWS:ECS
    • GCP:云运行

6.安全增强

  • 通过以下方式限制速率:
    • Azure:API管理
    • AWS:API网关
    • GCP:云端点
  • 身份验证/授权:
    • Azure:Azure广告B2C
    • AWS:Cognito
    • GCP:身份识别平台
  • API安全:
    • Azure:密钥库+Azure私有链接
    • AWS:秘密管理器+PrivateLink
    • GCP:秘密管理器+VPC服务控制

7.数据一致性

  • 事件来源实施:
    • Azure:事件中心
    • AWS:Kinesis
    • GCP:发布/订阅
  • 版本控制和冲突解决:
    • Azure:具有冲突解决功能的Cosmos DB
    • AWS:DynamoDB流
    • GCP:有交易的Firestore

8.DevOps与部署

  • CI/CD实施:
    • Azure:Azure DevOps+GitHub操作
    • AWS:代码管道+代码构建
    • GCP:云构建+云部署
  • 容器注册表:
    • Azure:Azure容器注册表
    • AWS:弹性容器注册表
    • GCP:工件注册表
  • 基础设施代码:
    • Azure:ARM模板+二头肌
    • AWS:云形成+CDK
    • GCP:部署管理器+地形

9.人工智能(GenAI)成本计算

聊天成本=1000个代币的基础价格X代币输入输出数量

训练微调成本=1000个代币的基础价格X代币数量X训练的纪元数量

入门指南

  1. 克隆存储库
  2. 从存储库中选择您的技术栈(例如:typescript)
  3. 再进行 (npx…)
  4. 运行示例代理

贡献

我们欢迎工科学生和开源社区的贡献!请看 CONTRIBUTING.md (待补充)以获取指导方针。

许可证

本项目致力于CC0 1.0通用(CC0 1.0)公共领域专用下的公共领域。 查看全文 LICENSE 文件。

联系

对于问题或协作,打开问题或提交拉取请求。

您可以使用以下任何手柄联系他:

(Github@irabanta)

(Linkedin@Chingangbam Irabata)

(脸书@irapunctions)

电子邮件:irabanta@gmail.com