12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/legion/llm/pipeline/steps/tool_discovery.rb', line 12
def step_tool_discovery
@discovered_tools ||= []
start_time = Time.now
discover_registry_tools
discover_client_tools
total = @discovered_tools.size
if total.positive?
sources = @discovered_tools.filter_map { |t| t.dig(:source, :server) || t.dig(:source, :type) }.uniq
@enrichments['tool:discovery'] = {
content: "#{total} tools from #{sources.length} sources",
data: { tool_count: total, sources: sources },
timestamp: Time.now
}
end
record_tool_discovery_timeline(total, start_time)
rescue StandardError => e
@warnings << "Tool discovery error: #{e.message}"
handle_exception(e, level: :warn, operation: 'llm.pipeline.steps.tool_discovery')
record_tool_discovery_timeline(0)
end
|