When using DevUI with a custom ChatMessageStoreFactory for persistent thread storage, conversations are not persisted across application restarts because there's no equivalent factory API for the conversation listing functionality.
The framework provides an elegant factory pattern for customizing thread message storage: However, DevUI's conversation listing (GET /v1/conversations?agent_id=X) relies on separate internal services IConversationStorage, IAgentConversationIndex that only have in-memory implementations and no equivalent factory API for customization.
UPDATE: The problem is more complex than initially expected.
Sub-Issue 1: Conversation ID
Is conversation preservation actually supported? When messages are saved to a custom store, there's no way for the store to know the associated Conversation ID. The store serialization is not used, nor is there another way to know the current thread from within the message store.
Sub-Issue 2: Application Restarts
Even if messages are persisted, there's no public or supported way to hook into the IConversationStorage interfaces - they're internal. This creates a disconnect: a message store can save messages, but when DevUI requests chat history, there's no API endpoint to attach to, so nothing responds.
I'd appreciate input here cause now I am questioning if this is even intended or just not yet implemented. It kind of feels like that attaching a message store is probably not the use-case at all for DevUI.
When using DevUI with a custom ChatMessageStoreFactory for persistent thread storage, conversations are not persisted across application restarts because there's no equivalent factory API for the conversation listing functionality.
The framework provides an elegant factory pattern for customizing thread message storage: However, DevUI's conversation listing (
GET /v1/conversations?agent_id=X) relies on separate internal servicesIConversationStorage,IAgentConversationIndexthat only have in-memory implementations and no equivalent factory API for customization.UPDATE: The problem is more complex than initially expected.
Sub-Issue 1: Conversation ID
Is conversation preservation actually supported? When messages are saved to a custom store, there's no way for the store to know the associated Conversation ID. The store serialization is not used, nor is there another way to know the current thread from within the message store.
Sub-Issue 2: Application Restarts
Even if messages are persisted, there's no public or supported way to hook into the
IConversationStorageinterfaces - they're internal. This creates a disconnect: a message store can save messages, but when DevUI requests chat history, there's no API endpoint to attach to, so nothing responds.I'd appreciate input here cause now I am questioning if this is even intended or just not yet implemented. It kind of feels like that attaching a message store is probably not the use-case at all for DevUI.