ExperimentalThe function type being wrapped, preserving original signature
The function to wrap with AGENT span tracing
Optionaloptions: Omit<SpanTraceOptions<AnyFn>, "kind">Configuration options for tracing behavior (excluding kind)
Custom OpenTelemetry tracer instance (defaults to global tracer)
Custom span name (defaults to function name)
OpenTelemetry span kind (defaults to INTERNAL)
Custom function to process input arguments into attributes
Custom function to process output values into attributes
Base attributes to be added to every span created
A wrapped function with identical signature that creates AGENT spans during execution
// Trace an AI agent's decision-making process
const makeDecision = async (context: AgentContext) => {
const analysis = await analyzeContext(context);
const plan = await createPlan(analysis);
return await executePlan(plan);
};
const tracedAgent = traceAgent(makeDecision, { name: "decision-agent" });
// Trace a chatbot response generation
const generateResponse = (userMessage: string, history: Message[]) => {
const intent = classifyIntent(userMessage);
const context = buildContext(history);
return generateReply(intent, context);
};
const tracedChatbot = traceAgent(generateResponse);
Wraps a function with tracing capabilities, specifically marking it as an AGENT span.
This is a convenience function that wraps
withSpanwith the OpenInference span kind pre-configured to AGENT. Agent spans represent autonomous decision-making entities in an LLM application, such as AI agents, chat bots, or intelligent assistants that can reason, plan, and execute actions.This API is experimental and may change in future versions