Module: Llmemory::Instrumentation
- Defined in:
- lib/llmemory/instrumentation.rb
Overview
Lightweight instrumentation seam. When ActiveSupport::Notifications is
available (Rails apps, opt-in elsewhere), events are published with the
.llmemory suffix so subscribers can hook into LLM calls, retrieval,
writes and forgets for metrics, traces or cost dashboards. When AS is not
loaded, the block is yielded transparently and no event is emitted.
Events (payload keys are best-effort; subscribers should treat them as optional):
llm_invoke.llmemory provider:, model:, prompt_chars:, response_chars:,
input_tokens:, output_tokens:, total_tokens:
llm_embed.llmemory provider:, model:, text_chars:, input_tokens:,
output_tokens:, total_tokens:
memory_write.llmemory memory_type:, user_id:
memory_forget.llmemory memory_type:, user_id:, count:
retrieve.llmemory query_chars:, candidates:, results:
iterative_retrieve.llmemory hops:, total_results:
reflect.llmemory window:, insights:
mine_skills.llmemory window:, auto_register:
Class Method Summary collapse
Class Method Details
.instrument(event, payload = {}) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/llmemory/instrumentation.rb', line 26 def instrument(event, payload = {}) name = "#{event}.llmemory" if defined?(ActiveSupport::Notifications) ActiveSupport::Notifications.instrument(name, payload) { yield if block_given? } else yield if block_given? end end |