diff --git a/src/Infrastructure/BotSharp.Abstraction/Agents/Models/AgentRule.cs b/src/Infrastructure/BotSharp.Abstraction/Agents/Models/AgentRule.cs index 2b17c43d8..3a5f35428 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Agents/Models/AgentRule.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Agents/Models/AgentRule.cs @@ -14,12 +14,12 @@ public class AgentRule [JsonPropertyName("message")] public string? Message { get; set; } - [JsonPropertyName("criteria")] + [JsonPropertyName("criteria_config")] [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - public RuleCriteria? Criteria { get; set; } + public RuleCriteriaConfig? CriteriaConfig { get; set; } } -public class RuleCriteria +public class RuleCriteriaConfig { /// /// Criteria mode: llm, python script, etc. diff --git a/src/Infrastructure/BotSharp.Core.Rules/Criteria/Llm/LlmCriteriaEvaluator.cs b/src/Infrastructure/BotSharp.Core.Rules/Criteria/Llm/LlmCriteriaEvaluator.cs index 319befe47..839c740fa 100644 --- a/src/Infrastructure/BotSharp.Core.Rules/Criteria/Llm/LlmCriteriaEvaluator.cs +++ b/src/Infrastructure/BotSharp.Core.Rules/Criteria/Llm/LlmCriteriaEvaluator.cs @@ -40,7 +40,7 @@ public LlmCriteriaEvaluator( var templateName = !string.IsNullOrWhiteSpace(settings.TemplateName) ? settings.TemplateName! : (agentId == BuiltInAgentId.RulesInterpreter ? DefaultTemplateName : $"{trigger.Name}_criteria"); - var input = BuildInput(rule?.Criteria, settings); + var input = BuildInput(rule?.CriteriaConfig, settings); var msg = $"rule trigger ({trigger.Name}) llm criteria (agent {agentId}, template {templateName})."; try @@ -129,14 +129,14 @@ private static Dictionary BuildRenderData(RuleCriteriaContext co return data; } - private static string BuildInput(RuleCriteria? ruleCriteria, LlmCriteriaSettings settings) + private static string BuildInput(RuleCriteriaConfig? criteriaConfig, LlmCriteriaSettings settings) { var sb = new StringBuilder(); - if (!string.IsNullOrWhiteSpace(ruleCriteria?.Criteria)) + if (!string.IsNullOrWhiteSpace(criteriaConfig?.Criteria)) { sb.AppendLine("## Rule"); - sb.AppendLine(ruleCriteria.Criteria); + sb.AppendLine(criteriaConfig.Criteria); sb.AppendLine(); } diff --git a/src/Infrastructure/BotSharp.Core.Rules/Engines/RuleEngine.cs b/src/Infrastructure/BotSharp.Core.Rules/Engines/RuleEngine.cs index af47cdf22..697fdaeab 100644 --- a/src/Infrastructure/BotSharp.Core.Rules/Engines/RuleEngine.cs +++ b/src/Infrastructure/BotSharp.Core.Rules/Engines/RuleEngine.cs @@ -52,7 +52,7 @@ public async Task> Triggered(IRuleTrigger trigger, string te // The rule's own mode wins over the mode carried on the trigger options, so an agent can // pick how its criteria is judged without the caller knowing. - var evaluator = ResolveCriteriaEvaluator(rule.Criteria?.Mode) ?? criteriaEvaluator; + var evaluator = ResolveCriteriaEvaluator(rule.CriteriaConfig?.Mode) ?? criteriaEvaluator; if (evaluator != null && options?.Criteria != null) { var criteriaContext = new RuleCriteriaContext diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/Models/AgentRuleMongoElement.cs b/src/Plugins/BotSharp.Plugin.MongoStorage/Models/AgentRuleMongoElement.cs index 6af863aa7..2fd576e4a 100644 --- a/src/Plugins/BotSharp.Plugin.MongoStorage/Models/AgentRuleMongoElement.cs +++ b/src/Plugins/BotSharp.Plugin.MongoStorage/Models/AgentRuleMongoElement.cs @@ -8,7 +8,7 @@ public class AgentRuleMongoElement public string TriggerName { get; set; } = default!; public bool Disabled { get; set; } public string? Message { get; set; } - public RuleCriteriaMongoModel? Criteria { get; set; } + public RuleCriteriaConfigMongoModel? CriteriaConfig { get; set; } public static AgentRuleMongoElement ToMongoElement(AgentRule rule) { @@ -17,7 +17,7 @@ public static AgentRuleMongoElement ToMongoElement(AgentRule rule) TriggerName = rule.TriggerName, Disabled = rule.Disabled, Message = rule.Message, - Criteria = RuleCriteriaMongoModel.ToMongoModel(rule.Criteria) + CriteriaConfig = RuleCriteriaConfigMongoModel.ToMongoModel(rule.CriteriaConfig) }; } @@ -28,42 +28,42 @@ public static AgentRule ToDomainElement(AgentRuleMongoElement rule) TriggerName = rule.TriggerName, Disabled = rule.Disabled, Message = rule.Message, - Criteria = RuleCriteriaMongoModel.ToDomainModel(rule.Criteria) + CriteriaConfig = RuleCriteriaConfigMongoModel.ToDomainModel(rule.CriteriaConfig) }; } } [BsonIgnoreExtraElements(Inherited = true)] -public class RuleCriteriaMongoModel +public class RuleCriteriaConfigMongoModel { public string? Mode { get; set; } public string? Criteria { get; set; } - public static RuleCriteriaMongoModel? ToMongoModel(RuleCriteria? criteria) + public static RuleCriteriaConfigMongoModel? ToMongoModel(RuleCriteriaConfig? config) { - if (criteria == null) + if (config == null) { return null; } - return new RuleCriteriaMongoModel + return new RuleCriteriaConfigMongoModel { - Mode = criteria.Mode, - Criteria = criteria.Criteria + Mode = config.Mode, + Criteria = config.Criteria }; } - public static RuleCriteria? ToDomainModel(RuleCriteriaMongoModel? criteria) + public static RuleCriteriaConfig? ToDomainModel(RuleCriteriaConfigMongoModel? config) { - if (criteria == null) + if (config == null) { return null; } - return new RuleCriteria + return new RuleCriteriaConfig { - Mode = criteria.Mode, - Criteria = criteria.Criteria + Mode = config.Mode, + Criteria = config.Criteria }; } }