外观
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 | 消息结构 |
| AgentCard | Agent 信息 |
| Context | Handler 上下文 |
| Hooks | 插件钩子 |
| 核心类型 | 完整类型定义 |