Package com.tnsai.llm

Class LLMBasedConflictResolver

java.lang.Object
com.tnsai.llm.LLMBasedConflictResolver
All Implemented Interfaces:
com.tnsai.models.agent.DesireConflictResolver

public class LLMBasedConflictResolver extends Object implements com.tnsai.models.agent.DesireConflictResolver
LLM-based desire conflict resolver.

Uses an LLM to intelligently analyze conflicting desires and determine which should take precedence based on context and reasoning.

How It Works

  1. Formats conflicting desires into a structured prompt
  2. Asks the LLM to analyze and select the most appropriate desire
  3. Parses the LLM response to extract the selected desire index
  4. Falls back to first desire if parsing fails

Usage Example


 LLMBasedConflictResolver resolver = new LLMBasedConflictResolver(llmClient);
 agent.setDesireConflictResolver(resolver);

 // With custom context
 LLMBasedConflictResolver resolver = LLMBasedConflictResolver.builder()
     .llm(llmClient)
     .context("This is a customer service agent")
     .fallbackStrategy(DesireConflictResolver.MERGE_RATIONALE)
     .build();
 
See Also:
  • DesireConflictResolver
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Builder for LLMBasedConflictResolver.
  • Field Summary

    Fields inherited from interface com.tnsai.models.agent.DesireConflictResolver

    DEFAULT, FIRST_WINS, KEEP_ALL, LAST_WINS, MERGE_RATIONALE, RANDOM
  • Constructor Summary

    Constructors
    Constructor
    Description
    LLMBasedConflictResolver(com.tnsai.llm.LLMClient llm)
    Creates a new LLM-based conflict resolver.
    LLMBasedConflictResolver(com.tnsai.llm.LLMClient llm, String additionalContext, com.tnsai.models.agent.DesireConflictResolver fallbackStrategy)
    Creates a new LLM-based conflict resolver with custom context.
  • Method Summary

    Modifier and Type
    Method
    Description
    Creates a builder for LLMBasedConflictResolver.
    Optional<com.tnsai.models.agent.Desire>
    resolve(List<com.tnsai.models.agent.Desire> conflicting)
     

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.tnsai.models.agent.DesireConflictResolver

    mightConflict
  • Constructor Details

    • LLMBasedConflictResolver

      public LLMBasedConflictResolver(com.tnsai.llm.LLMClient llm)
      Creates a new LLM-based conflict resolver.
      Parameters:
      llm - the LLM client to use for resolution
    • LLMBasedConflictResolver

      public LLMBasedConflictResolver(com.tnsai.llm.LLMClient llm, String additionalContext, com.tnsai.models.agent.DesireConflictResolver fallbackStrategy)
      Creates a new LLM-based conflict resolver with custom context.
      Parameters:
      llm - the LLM client to use for resolution
      additionalContext - additional context about the agent
      fallbackStrategy - strategy to use if LLM fails
  • Method Details

    • resolve

      public Optional<com.tnsai.models.agent.Desire> resolve(List<com.tnsai.models.agent.Desire> conflicting)
      Specified by:
      resolve in interface com.tnsai.models.agent.DesireConflictResolver
    • builder

      public static LLMBasedConflictResolver.Builder builder()
      Creates a builder for LLMBasedConflictResolver.
      Returns:
      a new builder