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:

  • strategies (Array<VerificationStrategy>) (defaults to: [])

    The verification strategies to use

  • config (Hash) (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:

  • (Hash)

    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:



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:



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:

  • task (Task)

    The task to verify

  • result (TaskResult)

    The result to verify

Returns:



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