using BotSharp.Abstraction.Functions.Models; namespace BotSharp.Abstraction.Routing.Planning; /// /// Task breakdown and execution plan /// https://www.promptingguide.ai/techniques/cot /// public interface IPlaner { Task GetNextInstruction(Agent router, string messageId, List dialogs); Task AgentExecuting(Agent router, FunctionCallFromLlm inst, RoleDialogModel message, List dialogs); Task AgentExecuted(Agent router, FunctionCallFromLlm inst, RoleDialogModel message, List dialogs); List BeforeHandleContext(FunctionCallFromLlm inst, RoleDialogModel message, List dialogs) => dialogs; bool AfterHandleContext(List dialogs, List taskAgentDialogs) => true; int MaxLoopCount => 5; }