Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions dotnet/src/Microsoft.Agents.AI.A2A/A2AAgent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -345,9 +345,8 @@ private static Message CreateA2AMessage(A2AAgentSession typedSession, IEnumerabl
// See: https://github.com/a2aproject/A2A/blob/main/docs/topics/life-of-a-task.md#group-related-interactions
a2aMessage.ContextId = typedSession.ContextId;

// Link the message as a follow-up to an existing task, if any.
// See: https://github.com/a2aproject/A2A/blob/main/docs/topics/life-of-a-task.md#task-refinements
a2aMessage.ReferenceTaskIds = typedSession.TaskId is null ? null : [typedSession.TaskId];
// Continue the current task, if any.
a2aMessage.TaskId = typedSession.TaskId;

return a2aMessage;
}
Expand Down
22 changes: 10 additions & 12 deletions dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/A2AAgentTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -465,7 +465,7 @@ public async Task RunAsync_WithContinuationToken_CallsGetTaskAsyncAsync()
}

[Fact]
public async Task RunAsync_WithTaskInSessionAndMessage_AddTaskAsReferencesToMessageAsync()
public async Task RunAsync_WithTaskInSessionAndMessage_SetsTaskIdOnMessageAsync()
{
// Arrange
this._handler.ResponseToReturn = new SendMessageResponse
Expand All @@ -478,8 +478,7 @@ public async Task RunAsync_WithTaskInSessionAndMessage_AddTaskAsReferencesToMess
}
};

var session = (A2AAgentSession)await this._agent.CreateSessionAsync();
session.TaskId = "task-123";
var session = await this._agent.CreateSessionAsync("context-123", "task-123");

var inputMessage = new ChatMessage(ChatRole.User, "Please make the background transparent");

Expand All @@ -488,9 +487,9 @@ public async Task RunAsync_WithTaskInSessionAndMessage_AddTaskAsReferencesToMess

// Assert
var message = this._handler.CapturedSendMessageRequest?.Message;
Assert.Null(message?.TaskId);
Assert.NotNull(message?.ReferenceTaskIds);
Assert.Contains("task-123", message.ReferenceTaskIds);
Assert.Equal("context-123", message?.ContextId);
Assert.Equal("task-123", message?.TaskId);
Assert.Null(message?.ReferenceTaskIds);
}

[Fact]
Expand Down Expand Up @@ -813,7 +812,7 @@ public async Task RunStreamingAsync_WithContinuationToken_WhenSubscribeAndGetTas
}

[Fact]
public async Task RunStreamingAsync_WithTaskInSessionAndMessage_AddTaskAsReferencesToMessageAsync()
public async Task RunStreamingAsync_WithTaskInSessionAndMessage_SetsTaskIdOnMessageAsync()
{
// Arrange
this._handler.StreamingResponseToReturn = new StreamResponse
Expand All @@ -826,8 +825,7 @@ public async Task RunStreamingAsync_WithTaskInSessionAndMessage_AddTaskAsReferen
}
};

var session = (A2AAgentSession)await this._agent.CreateSessionAsync();
session.TaskId = "task-123";
var session = await this._agent.CreateSessionAsync("context-123", "task-123");

// Act
await foreach (var _ in this._agent.RunStreamingAsync("Please make the background transparent", session))
Expand All @@ -837,9 +835,9 @@ public async Task RunStreamingAsync_WithTaskInSessionAndMessage_AddTaskAsReferen

// Assert
var message = this._handler.CapturedSendMessageRequest?.Message;
Assert.Null(message?.TaskId);
Assert.NotNull(message?.ReferenceTaskIds);
Assert.Contains("task-123", message.ReferenceTaskIds);
Assert.Equal("context-123", message?.ContextId);
Assert.Equal("task-123", message?.TaskId);
Assert.Null(message?.ReferenceTaskIds);
}

[Fact]
Expand Down