← 全部集成
// 集成
为多智能体运行接入 OpenTelemetry
一个可选的一方适配器:把 TraceRecord v2 映射到你的应用已经持有的 provider。
01 配置
一份最小配置。
import {
BasicTracerProvider,
InMemorySpanExporter,
SimpleSpanProcessor,
} from '@opentelemetry/sdk-trace-base'
import { OpenMultiAgent, type AgentConfig } from '@open-multi-agent/core'
import { createOtelTraceSink } from '@open-multi-agent/otel'
// npm install @open-multi-agent/core@^1.12.1 @open-multi-agent/otel@^0.1.0
// npm install @opentelemetry/api @opentelemetry/sdk-trace-base
// Set OPENAI_API_KEY in the environment for the demo team.
const exporter = new InMemorySpanExporter()
const provider = new BasicTracerProvider({
spanProcessors: [new SimpleSpanProcessor(exporter)],
})
const sink = createOtelTraceSink({ tracerProvider: provider })
const agents: AgentConfig[] = [
{ name: 'researcher', systemPrompt: 'Gather the key facts.' },
{ name: 'writer', systemPrompt: 'Write a tight summary.' },
]
const oma = new OpenMultiAgent({
defaultProvider: 'openai',
defaultModel: 'gpt-5.4-mini',
observability: { sinks: [sink] },
})
const team = oma.createTeam('brief', { name: 'brief', agents })
try {
await oma.runTeam(team, 'Summarize the latest release notes.')
await sink.forceFlush({ timeoutMs: 1_000 })
console.log(exporter.getFinishedSpans().length)
} finally {
await sink.shutdown({ timeoutMs: 1_000 })
await provider.shutdown()
} 02 怎么契合
它怎么契合。
@open-multi-agent/[email protected] 是 TraceRecord v2 的可选一方桥接包;该契约在 core v1.11.0 引入,并兼容 core v1.12.1。createOtelTraceSink() 把 OMA 的每段 span 生命周期映射为 OpenTelemetry span,保留稳定的运行 ID、任务与工具关系、token 计数、成本元数据、重试字段,以及兼容的 gen_ai.* 属性。tracer 或 provider 由你的应用提供并持有;适配器不会安装全局 provider,也不会关闭共享 provider,除非你显式开启。上面的内存 exporter 让示例无需 collector 也能运行;生产中请换成应用已经使用的 SDK 与 exporter。适配器默认过滤 prompt、completion、工具 payload、凭据与推理内容;所有遥测脱敏仍应视为尽力而为,导出前还要应用你自己的 sink 策略。
// 企业服务
要把它用到生产环境?
open-multi-agent 采用 MIT 许可、可自行免费运行。当你需要在期限内交付、集成,或获得支持时,元定义科技(YuanASI)提供商业交付与支持。