Aegis:实施DAWN框架
Aegis是 DAWN(分布式代理工作流网络) --一个架构框架,旨在实现 异构人工智能代理之间的通用互操作性、发现和协作.
______________________________________________________________________
1.问题:AI孤岛
今天的人工智能领域是支离破碎的。自主代理在孤立的生态系统(如LangChain、CrewAI等)中运行,无法与外部代理协作。这导致了冗余开发,并限制了可解决问题的复杂性。 DAWN旨在打破这些孤岛,为真正的协作人工智能生态系统创建一个通信标准。
______________________________________________________________________
2.解决方案:DAWN框架
DAWN提议 自上而下编排模型,围绕两个主要组成部分,构建一个 人工智能能力的全球精英市场.
核心架构
DAWN架构由三个主要支柱组成:
- 主要代理人: 中央协调人。它接收用户请求,将其分解为任务,计划执行并管理上下文。
- 网关代理: 服务发现注册表。充当“智能目录”,资源代理(工具或其他代理)在其中注册,并根据其功能和性能指标(QoS)进行发现。
- 资源代理: 任何提供特定功能的专用代理或工具(例如计算器、网络搜索代理或专用AI模型)。
______________________________________________________________________
3.宙斯盾核心组件
Aegis的实施分为以下主要部分,反映了DAWN蓝图。
3.1.主要代理人(Aegis/core/principal_agent)
充当编排的中央大脑。
设计原理:
- 灵活的操作模式: 支持
NO_LLM,ASSISTED(复制品),AGENT,以及HYBRID模式,允许在确定性和自主工作流之间进行转换。 - 上下文管理: 维护层次结构上下文(
conversation_history,user_preferences,task_history,memory_bank)实现复杂任务的个性化和连续性。 - 推理策略: 设计用于实现多个“推理引擎”(例如ReAct、ReWOO、ToT)进行任务分解。
- 本地资源缓存: 保留本地资源缓存,以减少频繁网关查询的网络开销。
架构(principalAgent.py):
mode: OperationalModegateway_agents: List[GatewayAgent]local_resources: Dict[str, Resource]task_queue: List[Task]execution_history: List[Dict]context: Dictreasoning_strategies: Dict
______________________________________________________________________
3.2.网关代理(Aegis/core/gateway_agent)
管理网络中所有可用资源的注册、验证和智能发现。
设计原理:
- 双索引注册表: 使用一个
registry(用于通过ID查找O(1))和acapability_index(对于按能力发现O(1))——对于高性能至关重要。 - 性能跟踪(QoS): 每个注册的资源都包含自己的性能指标(
performance_metrics,success_rate,avg_response_time).这允许网关充当智能选择器,不仅根据能力,而且根据历史性能对资源进行排名。 - 资源验证: 包含
test_results和is_active,允许在不删除的情况下优雅地停用故障资源,从而确保系统的健壮性。
架构(gatewayAgent.py 和 gatewayAgent_schemas.py):
registry: Dict[str, RegisteredResource]
capability_index: Dict[str, List[str]]
security_filters: List[Callable]
gateway_metrics: Dict
RegisteredResource(模式):
- id: str - capabilities: List[str] - endpoint: str - api_schema: Dict[str, Any] - manifest: Dict[str, Any] - performance_metrics: Dict[str, float] - is_active: bool
______________________________________________________________________
4.技术栈(MVP)
此MVP的方法使用以下技术:
- 后端: Python(FastAPI)和Node.js用于代理服务。
- 协议: A2A(代理到代理)用于水平通信(代理代理),MCP(模型上下文协议)用于垂直通信(代理工具),通过HTTP(S)使用JSON-RPC 2.0。
- 数据库: PostgreSQL用于网关注册表、清单和指标的持久存储。
- 消息: Redis Streams或NATS用于异步通信和任务状态管理。
- 监控: Prometheus+Grafana堆栈用于实时性能指标(延迟、成功率)。
- LLM(推理引擎): 主代理的模型,如Granite、Mistral和Llama2(通过API)。
______________________________________________________________________
5.入门
先决条件
- Python 3.9+
- PostgreSQL
- Redis或NATS
安装
- 克隆此存储库:
git clone https://github.com/your-username/aegis.git
cd aegis- 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate- 安装依赖项:
pip install -r requirements.txt- 配置环境变量(创建
.env文件):
DATABASE_URL="postgresql://user:pass@localhost/aegis_db"
REDIS_URL="redis://localhost:6379"
# ... other configurations______________________________________________________________________
运行服务
- 启动网关代理:
uvicorn Aegis.core.gateway_agent.main:app --host 0.0.0.0 --port 8000- 启动主代理:
uvicorn Aegis.core.principal_agent.main:app --host 0.0.0.0 --port 8001______________________________________________________________________
6.执行流程(MVP示例)
- A. 资源代理 (例如。,
WeatherAgent)将其元数据(清单、API架构、功能)发送到 网关代理sREGISTER_RESOURCE终点。 - 这 网关代理 验证资源(执行健康检查)并存储它,由两者进行索引
id和capabilities. - 用户向发送请求(例如,“圣保罗的天气预报是什么?”) 委托代理.
- 这 委托代理 使用其推理引擎(例如ReAct)将请求分解为任务:
Task(description="get_weather_forecast", requirements=["weather", "location:São Paulo"]).
- 这 委托代理 查询 网关代理 (通过
QUERY_RESOURCES)对于满足以下条件的代理商requirements. - 这 网关代理 查找它
capability_index,找到WeatherAgent,根据QoS指标(延迟、成功率)对其进行排名,并返回其详细信息。 - 这 委托代理 使用A2A协议委派
Task到WeatherAgent的端点。 - 这
WeatherAgent执行任务并返回结果。 - 这 委托代理 更新网关中的执行指标,并将最终响应返回给用户。
