using BotSharp.Abstraction.Functions.Models;
namespace BotSharp.Abstraction.Agents;
public interface IAgentHook
{
///
/// Agent Id
///
string SelfId { get; }
Agent Agent { get; }
void SetAget(Agent agent);
///
/// Triggered when agent is loading.
/// Return different agent for redirection purpose.
///
/// Agent Id
///
bool OnAgentLoading(ref string id);
bool OnInstructionLoaded(string template, Dictionary dict);
bool OnFunctionsLoaded(List functions);
bool OnSamplesLoaded(List samples);
///
/// Triggered when agent is loaded completely.
///
///
///
void OnAgentLoaded(Agent agent);
}