Module: ClaudeAgentSDK::Observer

Included in:
Instrumentation::OTelObserver
Defined in:
lib/claude_agent_sdk/observer.rb

Overview

Base module for message observers.

Include this module and override the methods you care about. All methods have no-op defaults so observers only need to implement the callbacks relevant to their use case.

Observers are registered via ClaudeAgentOptions#observers and are called for every parsed message in both query() and Client#receive_messages. Observer errors are rescued so they never crash the main message pipeline.

Examples:

Custom logging observer

class LoggingObserver
  include ClaudeAgentSDK::Observer

  def on_message(message)
    puts "[#{message.class.name}] received"
  end
end

Instance Method Summary collapse

Instance Method Details

#on_closeObject

Called when the query or client disconnects. Use this to flush buffers.



36
# File 'lib/claude_agent_sdk/observer.rb', line 36

def on_close; end

#on_error(error) ⇒ Object

Called when a transport or parse error occurs.

Parameters:

  • error (Exception)

    The error that occurred



33
# File 'lib/claude_agent_sdk/observer.rb', line 33

def on_error(error); end

#on_message(message) ⇒ Object

Called for every parsed message (typed object from MessageParser).

Parameters:

  • message (Object)

    A typed message (AssistantMessage, ResultMessage, etc.)



29
# File 'lib/claude_agent_sdk/observer.rb', line 29

def on_message(message); end

#on_user_prompt(prompt) ⇒ Object

Called with the user’s prompt text (not echoed back by CLI in streaming mode).

Parameters:

  • prompt (String)

    The user’s prompt string



25
# File 'lib/claude_agent_sdk/observer.rb', line 25

def on_user_prompt(prompt); end