Skip to main content
A tool invocation. Emits an execute_tool span carrying the tool name, the arguments, the tool-call id, and the result. String arguments and results are recorded as-is; other JSON values are serialized. Created by weave.startTool() (or turn.startTool(), or llm.startTool()) and terminated with end(), which accepts the result and optional error metadata.

Example

Extends

  • SpanBase

Properties

args

readonly args: string

name

readonly name: string

result

Deprecated. Pass result to end() instead.
optional result: string
Tool output as a string. Prefer passing result to end().

toolCallId

readonly toolCallId: string

Methods

addEvent()

Deprecated. Record this data via setAttributes instead. OpenTelemetry is phasing out the Span Event API (Span.addEvent). This method still works and existing span-event data stays valid. See https://opentelemetry.io/blog/2026/deprecating-span-events/
addEvent(name, attributes?, startTime?): this
Add a named event to the span. Useful for marking non-span moments such as context compaction, tool-loop detection, or guardrail trips. Warns and no-ops after end(). Mirrors OTel Span.addEvent.

Parameters

string
required
Attributes
TimeInput

Returns

this

Example

Inherited from

SpanBase.addEvent

end()

end(opts?): void
Record an optional result and error type, then close the span. Idempotent. Pass error to mark the span as failed and endTime to backdate the close.

Parameters

ToolEndOptions

Returns

void

setAttributes()

setAttributes(attributes): this
Set multiple attributes on the span at once. Warns and no-ops after end(). Mirrors OTel Span.setAttributes (and the Python SDK’s set_attributes).

Parameters

Attributes
required

Returns

this

Example

Inherited from

SpanBase.setAttributes