Class: Langfuse::Tool

Inherits:
BaseObservation show all
Defined in:
lib/langfuse/observations.rb

Overview

Observation for tracking individual tool calls and external API interactions.

Examples:

Block-based API

Langfuse.observe("api-call", as_type: :tool) do |tool|
  tool.input = { endpoint: "/users", method: "GET" }
  response = http_client.get("/users")
  tool.update(output: response.body, metadata: { status_code: response.status })
end

Stateful API

tool = Langfuse.start_observation("database-query", {
  input: { query: "SELECT * FROM users" }
}, as_type: :tool)
results = db.execute(tool.input[:query])
tool.update(output: results)
tool.end

Instance Attribute Summary

Attributes inherited from BaseObservation

#otel_span, #otel_tracer, #type

Instance Method Summary collapse

Methods inherited from BaseObservation

#current_span, #end, #event, #id, #input=, #level=, #metadata=, #output=, #start_observation, #trace_id, #trace_url, #update_trace

Constructor Details

#initialize(otel_span, otel_tracer, attributes: nil) ⇒ Tool

Returns a new instance of Tool.



413
414
415
# File 'lib/langfuse/observations.rb', line 413

def initialize(otel_span, otel_tracer, attributes: nil)
  super(otel_span, otel_tracer, attributes: attributes, type: OBSERVATION_TYPES[:tool])
end

Instance Method Details

#update(attrs) ⇒ self

Parameters:

Returns:

  • (self)


419
420
421
422
# File 'lib/langfuse/observations.rb', line 419

def update(attrs)
  update_observation_attributes(attrs)
  self
end