Class: Agentic::Verification::VerificationHub

Inherits:
Object
  • Object
show all
Defined in:
lib/agentic/verification/verification_hub.rb

Overview

Coordinates verification strategies and manages the verification process

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(strategies: [], config: {}) ⇒ VerificationHub

Initializes a new VerificationHub

Parameters:

  • (defaults to: [])

    The verification strategies to use

  • (defaults to: {})

    Configuration options for the verification hub



16
17
18
19
# File 'lib/agentic/verification/verification_hub.rb', line 16

def initialize(strategies: [], config: {})
  @strategies = strategies
  @config = config
end

Instance Attribute Details

#configHash (readonly)

Returns Configuration options for the verification hub.

Returns:

  • Configuration options for the verification hub



11
12
13
# File 'lib/agentic/verification/verification_hub.rb', line 11

def config
  @config
end

#strategiesArray<VerificationStrategy> (readonly)

Returns The registered verification strategies.

Returns:

  • The registered verification strategies



8
9
10
# File 'lib/agentic/verification/verification_hub.rb', line 8

def strategies
  @strategies
end

Instance Method Details

#add_strategy(strategy) ⇒ void

This method returns an undefined value.

Adds a verification strategy

Parameters:

  • The strategy to add



24
25
26
# File 'lib/agentic/verification/verification_hub.rb', line 24

def add_strategy(strategy)
  @strategies << strategy
end

#verify(task, result) ⇒ VerificationResult

Verifies a task result using the registered strategies

Parameters:

  • The task to verify

  • The result to verify

Returns:

  • The verification result



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/agentic/verification/verification_hub.rb', line 32

def verify(task, result)
  # Skip verification for failed tasks
  if result.failed?
    return VerificationResult.new(
      task_id: task.id,
      verified: false,
      confidence: 0.0,
      messages: ["Task failed, skipping verification"]
    )
  end

  # Apply all strategies
  strategy_results = @strategies.map do |strategy|
    strategy.verify(task, result)
  end

  # Combine results
  verified = strategy_results.all?(&:verified)
  confidence = strategy_results.map(&:confidence).sum / strategy_results.size.to_f
  messages = strategy_results.flat_map(&:messages)

  VerificationResult.new(
    task_id: task.id,
    verified: verified,
    confidence: confidence,
    messages: messages
  )
end