Class: Agentic::Verification::VerificationHub
- Inherits:
-
Object
- Object
- Agentic::Verification::VerificationHub
- Defined in:
- lib/agentic/verification/verification_hub.rb
Overview
Coordinates verification strategies and manages the verification process
Instance Attribute Summary collapse
-
#config ⇒ Hash
readonly
Configuration options for the verification hub.
-
#strategies ⇒ Array<VerificationStrategy>
readonly
The registered verification strategies.
Instance Method Summary collapse
-
#add_strategy(strategy) ⇒ void
Adds a verification strategy.
-
#initialize(strategies: [], config: {}) ⇒ VerificationHub
constructor
Initializes a new VerificationHub.
-
#verify(task, result) ⇒ VerificationResult
Verifies a task result using the registered strategies.
Constructor Details
#initialize(strategies: [], config: {}) ⇒ VerificationHub
Initializes a new VerificationHub
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
#config ⇒ Hash (readonly)
Returns Configuration options for the verification hub.
11 12 13 |
# File 'lib/agentic/verification/verification_hub.rb', line 11 def config @config end |
#strategies ⇒ Array<VerificationStrategy> (readonly)
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
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
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 = strategy_results.flat_map(&:messages) VerificationResult.new( task_id: task.id, verified: verified, confidence: confidence, messages: ) end |