@openai/agents-core
Version:
The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
73 lines (72 loc) • 3.54 kB
TypeScript
import { Agent } from '../agent';
import { Handoff } from '../handoff';
import { ModelTracing } from '../model';
import { Tool } from '../tool';
import { createAgentSpan } from '../tracing';
import { Span, type TaskSpanData, type TurnSpanData } from '../tracing/spans';
import { Trace } from '../tracing/traces';
import type { Usage } from '../usage';
export type TraceOverrideConfig = {
traceId?: string;
workflowName?: string;
groupId?: string;
traceMetadata?: Record<string, any>;
tracingApiKey?: string;
};
type EnsureAgentSpanParams<TContext> = {
agent: Agent<TContext, any>;
handoffs: Handoff<any, any>[];
tools: Tool<TContext>[];
currentSpan?: ReturnType<typeof createAgentSpan>;
parent?: Span<any> | Trace;
};
type UsageSnapshot = {
requests: number;
inputTokens: number;
outputTokens: number;
totalTokens: number;
cachedInputTokens: number;
cacheWriteInputTokens: number;
};
export type RunnerSpanLifecycle<TSpanData extends TaskSpanData | TurnSpanData> = {
span: Span<TSpanData>;
ownedUsage: UsageSnapshot;
};
export declare function recordRunnerSpanUsage(lifecycle: RunnerSpanLifecycle<TaskSpanData | TurnSpanData> | undefined, increment: Usage): void;
export declare function startTaskSpan(name: string, parent?: Span<any> | Trace): RunnerSpanLifecycle<TaskSpanData>;
export declare function ensureActiveAgentSpanForInterruptedResume<TContext>(options: {
agent: Agent<TContext, any>;
restoredAgentSpan?: ReturnType<typeof createAgentSpan>;
parent?: Span<any> | Trace;
}): ReturnType<typeof createAgentSpan>;
export declare function startRunnerInvocationSpans<TContext>(options: {
name: string;
agent: Agent<TContext, any>;
restoredAgentSpan?: ReturnType<typeof createAgentSpan>;
resumeInterruptedTurn: boolean;
parent?: Span<any> | Trace;
}): {
taskSpan: RunnerSpanLifecycle<TaskSpanData>;
agentSpan?: ReturnType<typeof createAgentSpan>;
};
export declare function startTurnSpan(turn: number, agentName: string, parent?: Span<any> | Trace): RunnerSpanLifecycle<TurnSpanData>;
export declare function ensureTurnSpan(current: RunnerSpanLifecycle<TurnSpanData> | undefined, turn: number, agentName: string, parent?: Span<any> | Trace): RunnerSpanLifecycle<TurnSpanData>;
export declare function finishRunnerSpan(lifecycle: RunnerSpanLifecycle<TaskSpanData | TurnSpanData> | undefined): void;
export declare function setRunnerSpanError(lifecycle: RunnerSpanLifecycle<TaskSpanData | TurnSpanData> | undefined, error: unknown, traceIncludeSensitiveData: boolean): void;
export declare function getRunnerSpanErrorDetails(error: unknown, traceIncludeSensitiveData: boolean): string;
/**
* Normalizes tracing configuration into the format expected by model providers.
* Returns `false` to disable tracing, `true` to include full payload data, or
* `'enabled_without_data'` to omit sensitive content while still emitting spans.
*/
export declare function getTracing(tracingDisabled: boolean, traceIncludeSensitiveData: boolean): ModelTracing;
export declare function applyTraceOverrides(trace: Trace, currentSpan: Span<any> | undefined, overrides: TraceOverrideConfig): {
trace: Trace;
currentSpan: Span<any> | undefined;
};
/**
* Ensures an agent span exists and updates tool metadata if already present.
* Returns the span so callers can pass it through run state.
*/
export declare function ensureAgentSpan<TContext>(params: EnsureAgentSpanParams<TContext>): Span<import("../tracing").AgentSpanData>;
export {};