Class DecisionReasoning

java.lang.Object
com.tnsai.context.decision.DecisionReasoning

public final class DecisionReasoning extends Object
Represents the reasoning process behind a decision.

DecisionReasoning captures how the agent arrived at its decision: the steps taken, alternatives considered, and confidence level. This enables explaining "why" to users and auditors.

Usage Example


 DecisionReasoning reasoning = DecisionReasoning.builder()
     .step("Retrieved customer account status from CRM")
     .step("Verified premium membership is active")
     .step("Calculated maximum allowable discount: 25%")
     .step("Requested discount (20%) is within limits")
     .alternative("Deny request", "Not considered - customer is in good standing")
     .alternative("Offer 15% instead", "Not needed - 20% is acceptable")
     .summary("Approved 20% discount based on premium status and order value")
     .confidence(0.95)
     .build();
 
  • Method Details

    • builder

      public static DecisionReasoning.Builder builder()
      Creates a new builder.
    • simple

      public static DecisionReasoning simple(String summary, double confidence)
      Creates a simple reasoning with just a summary.
    • getSteps

    • getConsideredAlternatives

      public List<DecisionReasoning.Alternative> getConsideredAlternatives()
    • getSummary

      public String getSummary()
    • getConfidence

      public double getConfidence()
    • getRationale

      public String getRationale()
    • getAssumptions

      public List<String> getAssumptions()
    • getUncertainties

      public List<String> getUncertainties()
    • isHighConfidence

      public boolean isHighConfidence()
      Returns true if confidence is high (>= 0.9).
    • isLowConfidence

      public boolean isLowConfidence()
      Returns true if confidence is low (invalid input: '<' 0.7).
    • hasAlternatives

      public boolean hasAlternatives()
      Returns true if alternatives were considered.
    • hasUncertainties

      public boolean hasUncertainties()
      Returns true if there are uncertainties.
    • getStepCount

      public int getStepCount()
      Gets the number of reasoning steps.
    • explain

      public String explain()
      Generates a human-readable explanation.
      Returns:
      explanation string
    • toString

      public String toString()
      Overrides:
      toString in class Object