Class: Agentic::Verification::CriticFramework
- Inherits:
-
Object
- Object
- Agentic::Verification::CriticFramework
- Defined in:
- lib/agentic/verification/critic_framework.rb
Overview
Framework for multi-perspective evaluation of task results
Instance Attribute Summary collapse
-
#config ⇒ Hash
readonly
Configuration options for the framework.
-
#critics ⇒ Array<Critic>
readonly
The critics registered with this framework.
Instance Method Summary collapse
-
#add_critic(critic) ⇒ void
Adds a critic to the framework.
-
#evaluate(task, result) ⇒ CriticResult
Evaluates a task result using all registered critics.
-
#initialize(critics: [], config: {}) ⇒ CriticFramework
constructor
Initializes a new CriticFramework.
Constructor Details
#initialize(critics: [], config: {}) ⇒ CriticFramework
Initializes a new CriticFramework
16 17 18 19 |
# File 'lib/agentic/verification/critic_framework.rb', line 16 def initialize(critics: [], config: {}) @critics = critics @config = config end |
Instance Attribute Details
#config ⇒ Hash (readonly)
Returns Configuration options for the framework.
11 12 13 |
# File 'lib/agentic/verification/critic_framework.rb', line 11 def config @config end |
#critics ⇒ Array<Critic> (readonly)
Returns The critics registered with this framework.
8 9 10 |
# File 'lib/agentic/verification/critic_framework.rb', line 8 def critics @critics end |
Instance Method Details
#add_critic(critic) ⇒ void
This method returns an undefined value.
Adds a critic to the framework
24 25 26 |
# File 'lib/agentic/verification/critic_framework.rb', line 24 def add_critic(critic) @critics << critic end |
#evaluate(task, result) ⇒ CriticResult
Evaluates a task result using all registered critics
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/agentic/verification/critic_framework.rb', line 32 def evaluate(task, result) evaluations = @critics.map { |critic| critic.critique(task, result) } # Aggregate critic evaluations positive_critiques = evaluations.count(&:positive?) total_critiques = evaluations.size confidence = (total_critiques > 0) ? positive_critiques.to_f / total_critiques : 0.5 comments = evaluations.flat_map(&:comments) CriticResult.new( task_id: task.id, confidence: confidence, verdict: confidence >= 0.7, # Pass if 70% or more critics give positive evaluation comments: comments ) end |