summaryrefslogtreecommitdiff
path: root/src/Agent.Core/Runtime/IAgentRuntimeObserver.cs
blob: 5098a92c87cf15dd77d0388a1106c31b013905bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using Agent.Core.Ollama;
using Agent.Core.Tools;

namespace Agent.Core.Runtime;

public interface IAgentRuntimeObserver
{
    void LlmRequest(AgentLlmCallContext context, IReadOnlyList<OllamaMessage> messages);
    void LlmResponse(AgentLlmCallContext context, OllamaResult result);
    void LlmFailure(AgentLlmCallContext context, string errorCode, string message);
    void ToolResult(AgentLlmCallContext context, string toolName, ToolExecutionResult result);
}

public sealed record AgentLlmCallContext(Guid CallId, Guid SessionId, Guid TaskId, Guid? PlannerTaskId,
    string Phase, int Iteration, int Replan, string Model);

public sealed class NullAgentRuntimeObserver : IAgentRuntimeObserver
{
    public static NullAgentRuntimeObserver Instance { get; } = new();
    public void LlmRequest(AgentLlmCallContext context, IReadOnlyList<OllamaMessage> messages) { }
    public void LlmResponse(AgentLlmCallContext context, OllamaResult result) { }
    public void LlmFailure(AgentLlmCallContext context, string errorCode, string message) { }
    public void ToolResult(AgentLlmCallContext context, string toolName, ToolExecutionResult result) { }
}