Skip to content

API 概述

导入

Node.js

typescript
import {
  // 核心
  createAgentServer,
  createAgentClient,

  // 插件
  createTracingPlugin,
  createIOMetricsPlugin,
  createParasitePlugin,
  createParasiteHostPlugin,
  createMCPPlugin,

  // ID 生成
  generateMessageId,
  generateStreamId,
  generateTraceId,
  generateSpanId,

  // 类型
  type Message,
  type AgentCard,
  type Context,
  type BidirectionalStream,
} from '@multi-agent/a2a'

浏览器

typescript
import {
  createAgentClient,
  tokenize,
  calculateCost,
  type Message,
  type AgentCard,
} from '@multi-agent/a2a/browser'

核心 API

createAgentServer

typescript
const server = createAgentServer(config)
  .use(plugin)

await server.start()      // 返回端口号
await server.shutdown()   // 关闭服务器

createAgentClient

typescript
const client = createAgentClient({ agentId, address: 'a2a://host:port' })
  .use(plugin)

await client.call(skill, params, options)  // 调用技能
await client.getAgentCard()                // 获取 Agent 信息
await client.checkHealth()                 // 健康检查
await client.close()                       // 关闭连接

AgentConfig

typescript
const config: AgentConfig = {
  agentId: 'my-agent',
  name: 'My Agent',
  version: '1.0.0',
  description: '...',
  address: 'a2a://0.0.0.0:50061',
  skills: [skill1, skill2],
  defaultSkill: 'skill1',
}

Skill 对象

typescript
const skill = {
  name: 'skillName',
  description: '...',
  handler: async (params, ctx) => { return result },
  inputSchema: {...},
}

工具函数

typescript
// ID 生成
generateMessageId()   // msg-{timestamp}-{random}
generateStreamId()    // stream-{timestamp}-{random}
generateTraceId()     // tr_{timestamp}_{random}
generateSpanId()      // span-{timestamp}-{random}

// Token 计算(浏览器)
tokenize('Hello 你好')  // 6
calculateCost(tokens, { pricePerToken: 0.001 })

类型速查

类型说明
Message消息结构
AgentCardAgent 信息
ContextHandler 上下文
Hooks插件钩子
核心类型完整类型定义

MIT Licensed