Skip to content

类型总览

@yingdao-ai/agent-observability 导出的所有类型。

配置类型

ObserverConfig

ts
type ObserverConfig = {
  transport: Transport
}

LangfuseDirectConfig

ts
type LangfuseDirectConfig = {
  host: string
  publicKey?: string
  secretKey?: string
  authHeaders?: (sessionId: string) => Record<string, string>
  environment?: string
  release?: string
  version?: string
  log?: LogFn
  fetch?: typeof fetch
}

输入类型

RunInput

ts
type RunInput = {
  id: string
  name: string
  input?: unknown
  userId?: string
  tags?: string[]
  metadata?: Record<string, unknown>
}

GenerationInput

ts
type GenerationInput = {
  model: string
  input?: unknown
  metadata?: Record<string, unknown>
  name?: string
}

ToolInput

ts
type ToolInput = {
  id: string
  name: string
  input?: unknown
  metadata?: Record<string, unknown>
}

AgentContext

ts
type AgentContext = {
  userId?: string
  tags?: string[]
  metadata?: Record<string, unknown>
}

数据类型

TokenUsage

ts
type TokenUsage = {
  input?: number
  output?: number
  total?: number
  reasoning?: number
  cache?: {
    read?: number
    write?: number
  }
}

ScoreSpec

ts
type ScoreSpec = {
  name: string
  value: string | number | boolean
  dataType: "CATEGORICAL" | "NUMERIC" | "BOOLEAN"
  comment?: string
}

RedactRuleConfig

ts
type RedactRuleConfig = {
  kind: "key" | "value"
  name: string
  pattern: string
  flags?: string
  replacement?: string
}

Transport 接口

Transport

ts
type Transport = {
  enabled(): boolean
  environment(): string
  startRun(input: RunInput): TransportRun | undefined
  score(input: {
    traceId: string
    scores: ScoreSpec[]
    sessionId: string
    agent: string
    environment: string
  }): Promise<void>
  flush(): Promise<void>
}

TransportRun

ts
type TransportRun = {
  startGeneration(input: GenerationInput): TransportGeneration
  endGeneration(opts?: { output?: unknown; usage?: TokenUsage; cost?: number }): void
  startTool(input: ToolInput): TransportTool
  endTool(id: string, opts?: { output?: unknown; error?: string }): void
  end(output?: unknown): void
  setMeta(meta: Partial<RunInput>): void
}

TransportGeneration

ts
type TransportGeneration = {
  appendText(text: string): void
  appendReasoning(text: string): void
  end(opts?: { output?: unknown; usage?: TokenUsage; cost?: number }): void
}

TransportTool

ts
type TransportTool = {
  end(opts?: { output?: unknown; error?: string }): void
}

工具函数类型

LogFn

ts
type LogFn = (event: string, data?: Record<string, unknown>) => void

MIT License