Class: AgentRuntime::Policy

Inherits:
Object
  • Object
show all
Defined in:
lib/agent_runtime/policy.rb

Overview

Validates agent decisions before execution.

This class enforces policy constraints on decisions made by the planner. By default, it validates that:

  • The decision has an action

  • The confidence (if present) is at least 0.5

Subclass this to implement custom validation logic.

Examples:

Basic usage

policy = Policy.new
policy.validate!(decision, state: state)

Custom policy subclass

class CustomPolicy < Policy
  def validate!(decision, state:)
    super
    raise PolicyViolation, "Action not allowed" if decision.action == "delete"
  end
end

Instance Method Summary collapse

Instance Method Details

#validate!(decision, state: nil) ⇒ void

This method returns an undefined value.

Validate a decision against policy constraints.

Examples:

policy.validate!(decision, state: state)
# => nil (raises PolicyViolation on failure)

Parameters:

  • decision (Decision)

    The decision to validate

  • state (State, Hash, nil) (defaults to: nil)

    The current state (unused in default implementation)

Raises:

  • (PolicyViolation)

    If the decision violates policy constraints:

    • Missing action

    • Confidence below 0.5 (if confidence is present)



37
38
39
40
# File 'lib/agent_runtime/policy.rb', line 37

def validate!(decision, state: nil) # rubocop:disable Lint/UnusedMethodArgument
  raise PolicyViolation, "Missing action" unless decision.action
  raise PolicyViolation, "Low confidence" if decision.confidence && decision.confidence < 0.5
end