去中心化分布式代理人工智能框架(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
协议
- 安全的支付处理和支付 - 自动还款计划 - 多币种支持 - 监管合规处理 - 审计跟踪生成
- 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训练的纪元数量
入门指南
- 克隆存储库
- 从存储库中选择您的技术栈(例如:typescript)
- 再进行 (npx…)
- 运行示例代理
贡献
我们欢迎工科学生和开源社区的贡献!请看 CONTRIBUTING.md (待补充)以获取指导方针。
许可证
本项目致力于CC0 1.0通用(CC0 1.0)公共领域专用下的公共领域。 查看全文 LICENSE 文件。
联系
对于问题或协作,打开问题或提交拉取请求。
您可以使用以下任何手柄联系他:
()
(Linkedin@Chingangbam Irabata)
电子邮件:irabanta@gmail.com
