diff --git a/src/AgentCore.AspNetCore/Conversation/ConversationSweeper.cs b/src/AgentCore.AspNetCore/Conversation/ConversationSweeper.cs
index f71babca..c287bcd0 100644
--- a/src/AgentCore.AspNetCore/Conversation/ConversationSweeper.cs
+++ b/src/AgentCore.AspNetCore/Conversation/ConversationSweeper.cs
@@ -1,4 +1,5 @@
using AgentCore.Application.Ports;
+using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
@@ -13,7 +14,7 @@ namespace AgentCore.AspNetCore.Conversation
/// calling AddConversationSweep. Without that call, conversations are kept forever.
///
public sealed class ConversationSweeper(
- IConversations conversations,
+ IServiceProvider services,
IOptions options,
TimeProvider timeProvider,
ILogger logger) : BackgroundService
@@ -23,6 +24,9 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
ConversationSweepOptions settings = options.Value;
+ // Hosted service is constructed before AgentCore's own boot has not finished.
+ IConversations conversations = services.GetRequiredService();
+
using PeriodicTimer timer = new(settings.Interval, timeProvider);
while (await timer.WaitForNextTickAsync(stoppingToken).ConfigureAwait(false))
diff --git a/src/AgentCore.AspNetCore/PublicAPI.Unshipped.txt b/src/AgentCore.AspNetCore/PublicAPI.Unshipped.txt
index 7b434542..9464409f 100644
--- a/src/AgentCore.AspNetCore/PublicAPI.Unshipped.txt
+++ b/src/AgentCore.AspNetCore/PublicAPI.Unshipped.txt
@@ -96,5 +96,5 @@ AgentCore.AspNetCore.Conversation.ConversationSweepOptions.Interval.set -> void
AgentCore.AspNetCore.Conversation.ConversationSweepOptions.BatchSize.get -> int
AgentCore.AspNetCore.Conversation.ConversationSweepOptions.BatchSize.set -> void
AgentCore.AspNetCore.Conversation.ConversationSweeper
-AgentCore.AspNetCore.Conversation.ConversationSweeper.ConversationSweeper(AgentCore.Application.Ports.IConversations! conversations, Microsoft.Extensions.Options.IOptions! options, System.TimeProvider! timeProvider, Microsoft.Extensions.Logging.ILogger! logger) -> void
+AgentCore.AspNetCore.Conversation.ConversationSweeper.ConversationSweeper(System.IServiceProvider! services, Microsoft.Extensions.Options.IOptions! options, System.TimeProvider! timeProvider, Microsoft.Extensions.Logging.ILogger! logger) -> void
static AgentCore.AspNetCore.DependencyInjection.AgentCoreServiceCollectionExtensions.AddConversationSweep(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action? configure = null) -> Microsoft.Extensions.DependencyInjection.IServiceCollection!