跳转到主要内容
AG-Kit 提供对 A2A (Agent-to-Agent) 协议的支持,实现多 Agent 系统与 Agent 协作。当前通过 AG-UI 集成实现,计划未来提供原生服务端实现。

AG-Kit A2A 支持

当前实现

AG-Kit 当前通过 AG-UI 协议集成支持 A2A 通信:
  • AG-UI 集成:A2A Agent 可通过 AG-UI 协议通信
  • Agent 发现:查找并连接其他兼容 A2A 的 Agent
  • 消息路由:Agent 间高效消息传递
  • 协作模式:支持任务委派与协调

计划实现

未来 AG-Kit 版本将包含原生 A2A 服务端实现:
  • 原生 A2A 服务端:直接提供 A2A 协议端点
  • 服务集成:使其他系统能通过 A2A 使用 AG-Kit Agent
  • 高级协调:增强的多 Agent 协调模式
  • 性能优化:针对高吞吐量 Agent 通信优化

当前 A2A 支持

基于 AG-UI 的 A2A 集成

使用 AG-UI 协议进行 Agent 间通信:
import { Agent } from '@ag-kit/agents';
import { OpenAIProvider } from '@ag-kit/providers/openai';

const provider = new OpenAIProvider({
  apiKey: process.env.OPENAI_API_KEY,
  defaultModel: 'gpt-4'
});

const localAgent = new Agent({
  name: 'coordinator-agent',
  model: provider,
  instructions: 'You coordinate with other agents.'
});

// 通过 HTTP 请求进行 A2A 通信
async function delegateTask(task: any) {
  const response = await fetch('http://other-agent:3000/send-message', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      messages: [{
        role: 'user',
        content: `Agent task: ${JSON.stringify(task)}`
      }]
    })
  });
  return response.json();
}

// 注意:Agent 事件处理应在 Agent 的 run 方法中实现

Agent 发现

发现并连接其他 A2A Agent:
// 通过注册服务发现 Agent
async function discoverAgents(capabilities: string[]) {
  const response = await fetch('http://agent-registry:8080/agents', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      capabilities,
      location: 'same_network'
    })
  });
  return response.json();
}

const agents = await discoverAgents(['data_processing', 'analysis']);

// 连接发现的 Agent
for (const agentInfo of agents) {
  console.log(`Found agent: ${agentInfo.name} at ${agentInfo.endpoint}`);
  // 使用 HTTP 请求与发现的 Agent 通信
}

协作模式

  • 任务委派:将任务委派给专业 Agent
  • 多 Agent 协调:协调多个 Agent 完成复杂工作流
  • Agent 辩论:支持 Agent 辩论并达成共识
  • 消息路由:Agent 间高效消息传递

计划中的原生 A2A 实现

原生 A2A 服务端

未来实现将包含原生 A2A 服务端端点:
import { run } from '@ag-kit/server';
import { Agent } from '@ag-kit/agents';
import { OpenAIProvider } from '@ag-kit/providers/openai';

const provider = new OpenAIProvider({
  apiKey: process.env.OPENAI_API_KEY,
  defaultModel: 'gpt-4'
});

const myAgent = new Agent({
  name: 'a2a-agent',
  model: provider,
  instructions: 'You are an A2A compatible agent.'
});

// 未来的 A2A 服务端实现
run({
  createAgent: () => ({ agent: myAgent }),
  port: 3001
});

// A2A 端点将在未来版本添加
// a2aServer.registerA2AEndpoint('/agents/discover', {
//   method: 'GET',
//   handler: async (req) => await discovery.findAgents(req.query)
// });

当前限制

  • AG-UI 依赖:当前实现需依赖 AG-UI 协议
  • 有限协调:仅支持基础协调模式
  • 性能:未针对高吞吐量场景优化
  • 发现机制:Agent 发现功能有限

路线图

阶段 1:增强 AG-UI 集成(当前)

  • 通过 AG-UI 改进 A2A 支持
  • 优化 Agent 发现机制
  • 增强消息路由功能

阶段 2:原生 A2A 服务端(计划中)

  • 原生 A2A 协议实现
  • 直接 A2A 端点支持
  • 服务集成能力

阶段 3:高级功能(未来)

  • 高级协调模式
  • 性能优化
  • 企业级功能