探索 谷歌的A2A人工智能系统代理间工作流、路由和对话历史
🚀 Google A2A(广告自动投放)代理申请
这个项目展示了 代理对代理(A2A)系统(系统)中,自主人工智能代理进行通信、协作,并在最少的人为干预下完成复杂的工作流程。该系统利用多个代理、自托管的MCP服务器以及第三方服务(如……) 来自Smithery.ai的Exa MCP 处理诸如代码生成、媒体检索、音频/文档处理以及网页搜索等专业任务。
______________________________________________________________________
🔹 主要特点
🧩 动态代理管理
- 代理被表示为 代理卡 在React客户端中,包含技能、输入/输出模式、标签和状态历史等元数据。
- 代理可以是 动态添加或移除 在运行时无需重启系统。
- 这种方法支持一种 松耦合、可扩展的架构使得多个代理能够被自动发现、注册和路由。
🎯 路由和回退机制
- 这个(或:该) 路由服务 基于(相关信息),智能地将提示分配给最合适的代理 技能、标签和可用性.
- 如果没有任何专门的代理能够处理请求,那么 人工智能助手 作为备用方案接管,保留最后一个(版本/设置/状态等) 五场对话 在记忆中。
- 服务器端路由可以确保敏感的API密钥安全,并避免将逻辑暴露给客户端。
- 这使得系统能够处理 动态且不断变化的工作流程 无需人工干预。
📋 任务和事件
- 代理通过以下方式运作: 任务 (离散的工作单元)和 事件 (更新、结果或状态变化)。
- 流式代理发送 增量更新在任务进行过程中,为客户提供实时反馈。
- 非流式代理返回 最终结果 任务完成后。
TaskArtifactUpdateEvent确保所有生成的输出,如代码文件或媒体文件,都能广播给客户端和其他代理,以保持系统的同步。- 基于事件的架构允许 异步协作因此,多个代理可以独立工作,同时保持协同一致。
🏗 自建MCP服务器
- 这个(或“该”) 模型上下文协议(MCP)服务器 提供了一个 与语言无关的接口 对于工具和外部数据,使它们能够在不同的项目和环境中重复使用。
- 代理可以访问多个工具而无需重复代码,从而确保一致性并减少集成错误。
- 工具通过以下方式提供/暴露 SSE传输,实现模块化和多任务工作流程。
- 这种设置在需要多个代理跨语言(如Python、JavaScript、Java等)访问同一工具或服务时特别有用。
🌐 第三方集成
- 集成外部工具,如 来自Smithery.ai的Exa MCP 使用
StdioClientTransport用于实时网页搜索。 - 代理执行CLI命令,执行搜索,并返回结果 结构化的JSON结果,它可以被解析并以人类可读的格式显示。
- 外部集成无需修改内部架构即可扩展代理能力,支持无缝对接 跨项目互操作性。
- 示例用例包括获取相关的编程文档、检索YouTube内容、生成图像以及提供来自网络的实时见解。
🧠 对话记忆与上下文
- 每次会话都使用一个(系统/工具)进行追踪
contextId,保持 每个代理的对话历史。 - 上下文使代理能够生成 连贯且上下文感知的回应 跨越多个提示。
- 当开启一段新对话时,记忆会被重置,从而能够在没有残留上下文的情况下进行全新的互动。
- 这一机制还确保了代理(或经纪人)们 不要互相干涉彼此的历史保持工作流程的模块化和有序性。
🎛 流式与非流式代理
- 流媒体代理向客户提供增量状态更新,实时显示进度和部分结果。例如,代码生成或音频处理。
- 非流式代理任务完成时才提供最终输出。重要的任务事件仍会广播,但不会逐条显示。例如,图像生成或某些搜索查询。
- 这一区别使系统能够 平衡性能与响应速度 取决于代理的任务和外部工具。
🛠 调试与开发
- 全力支持于 VS Code(Visual Studio Code,简称VS Code) 通过AI生成的发射配置。
- 开发者可以运行 个体代理(或个体行动者) 或者 整个系统(代理+客户端)。
- 实时监控任务和事件流简化了 调试复杂的多智能体交互。
- 支持流式和非流式模式,以满足灵活的测试需求。
- 该系统允许仅重启感兴趣的代理而不影响其他代理,从而实现高效迭代开发。
______________________________________________________________________
🌟 整体影响
这个A2A项目展示了一个 可扩展、模块化、动态的框架 用于人工智能合作。
- 代理可以处理 专业化的、多步骤的任务在系统中共享结果和更新信息。
- 灵活集成 自托管的MCP工具 并且 第三方服务 例如,Exa MCP 支持强大的多代理工作流程。
- 情境感知内存和流式支持提供 响应迅速的实时互动。
- 开发人员可以轻松地扩展系统,无需进行大规模重构即可添加新的代理或工具。
该框架展示了如何 自主人工智能代理 能够高效协同工作,在保持控制和可观测性的同时,最大限度地减少人为干预。
______________________________________________________________________
______________________________________________________________________
🚀 克隆并运行
# Clone the repository
git clone https://github.com/Ashot72/multi-agent-a2a
# Server
cd multi-agent-a2a/server
# Copy env-template.txt to .env in the root directory and fill in your actual API keys.
# Install dependencies
npm install --legacy-peer-deps
# Starts the server
npm run agents:all
# Client
cd multi-agent-a2a/client
# Install dependencies
npm install
# Starts the Vite app at http://localhost:5173
npm run dev
🛠 在 VS Code 中进行调试
这个项目是 在 VS Code 中得到全面支持 通过AI生成的发射配置:
- 打开 跑 查看(
View → Run或者Ctrl+Shift+D) 以访问所有调试配置。 - 跑步 个体代理(或个体行动者) 或者 整个系统 (根据需要)使用代理+客户端。
这种设置简化了开发流程,并允许快速迭代智能体的行为和工作流程。
📺 视频: 在YouTube上观看
