Skip to content
Merged
Prev Previous commit
Next Next commit
Add @nullable annotations
  • Loading branch information
Milder Hernandez Cagua
Milder Hernandez Cagua committed May 1, 2025
commit cbb37c655f34b23a6a92c0718d42739d4c7f01e0
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ private ChatCompletionAgent(
@Override
public Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(
List<ChatMessageContent<?>> messages,
AgentThread thread,
@Nullable AgentThread thread,
@Nullable AgentInvokeOptions options
) {
return ensureThreadExistsWithMessagesAsync(messages, thread, ChatHistoryAgentThread::new)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import javax.annotation.Nullable;

/**
* Interface for a semantic kernel agent.
*/
Expand Down Expand Up @@ -49,7 +51,7 @@ public interface Agent {
* @param message The message to process
* @return A Mono containing the agent response
*/
Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(ChatMessageContent<?> message);
Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(@Nullable ChatMessageContent<?> message);

/**
* Invokes the agent with the given message and thread.
Expand All @@ -58,7 +60,8 @@ public interface Agent {
* @param thread The agent thread to use
* @return A Mono containing the agent response
*/
Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(ChatMessageContent<?> message, AgentThread thread);
Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(@Nullable ChatMessageContent<?> message,
@Nullable AgentThread thread);

/**
* Invokes the agent with the given message, thread, and options.
Expand All @@ -68,7 +71,9 @@ public interface Agent {
* @param options The options for invoking the agent
* @return A Mono containing the agent response
*/
Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(ChatMessageContent<?> message, AgentThread thread, AgentInvokeOptions options);
Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(@Nullable ChatMessageContent<?> message,
@Nullable AgentThread thread,
@Nullable AgentInvokeOptions options);

/**
* Invoke the agent with the given chat history.
Expand All @@ -78,7 +83,9 @@ public interface Agent {
* @param options The options for invoking the agent
* @return A Mono containing the agent response
*/
Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(List<ChatMessageContent<?>> messages, AgentThread thread, AgentInvokeOptions options);
Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(List<ChatMessageContent<?>> messages,
@Nullable AgentThread thread,
@Nullable AgentInvokeOptions options);

/**
* Notifies the agent of a new message.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
Expand Down Expand Up @@ -169,19 +170,25 @@ protected <T extends AgentThread> Mono<T> ensureThreadExistsWithMessagesAsync(Li
}

@Override
public Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(ChatMessageContent<?> message) {
return invokeAsync(message, null);
public Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(@Nullable ChatMessageContent<?> message) {
return invokeAsync(message, null, null);
}

@Override
public Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(ChatMessageContent<?> message, AgentThread thread) {
return invokeAsync(message, thread, AgentInvokeOptions.builder().build());
public Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(@Nullable ChatMessageContent<?> message,
@Nullable AgentThread thread) {
return invokeAsync(message, thread, null);
}

@Override
public Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(ChatMessageContent<?> message, AgentThread thread, AgentInvokeOptions options) {
public Mono<List<AgentResponseItem<ChatMessageContent<?>>>> invokeAsync(
@Nullable ChatMessageContent<?> message,
@Nullable AgentThread thread,
@Nullable AgentInvokeOptions options) {
ArrayList<ChatMessageContent<?>> messages = new ArrayList<>();
messages.add(message);
if (message != null) {
messages.add(message);
}
return invokeAsync(messages, thread, options);
}
}