microsoft / autogen

A programming framework for agentic AI. Discord: https://aka.ms/autogen-dc. Roadmap: https://aka.ms/autogen-roadmap
https://microsoft.github.io/autogen/
Creative Commons Attribution 4.0 International
28.06k stars 4.09k forks source link

[.NET][Feature Request]: Implement RAG Support in AutoGen for .NET #2572

Open vdamov opened 2 months ago

vdamov commented 2 months ago

Is your feature request related to a problem? Please describe.

Currently, AutoGen for .NET enables the development of conversational agents but lacks the ability to incorporate contextually rich, data-driven responses dynamically. This limitation becomes apparent in scenarios where agents need to retrieve and leverage specific information to formulate responses, affecting the quality and applicability of the agent's interactions in real-world applications. Adding RAG support would address these limitations by enhancing the system's ability to access and utilize external data sources effectively during conversations.

Describe the solution you'd like

This feature request proposes the integration of Retriever-Augmented Generation (RAG) capabilities into AutoGen for .NET. The addition of RAG would significantly enhance the ability of .NET-based conversational agents to retrieve and utilize contextually relevant information during interactions, thereby improving response accuracy and relevance. The implementation would expand the utility of AutoGen, making it a more robust tool in scenarios requiring dynamic information retrieval and usage.

Additional context

No response

LittleLittleCloud commented 2 months ago

Thanks for creating this issue, can you describe the solution you want, a consumption pseduo code would be extremely helpful here.

The primary reason why AutoGen.Net lacks built-in support for RAG is because retrieval and augmentation are usually tightly coupled with application/using scenarios. For starter, retrieval is coupled with data source and augmentation is coupled with data scheme. This coupling creates a challenge in devising a RagAgent capable of satisfying all conditions across diverse applications and scenarios. So please tell us your ideal solution and maybe we can come up with a good solution to mitigate the challenge above

vdamov commented 2 months ago

@LittleLittleCloud, thank you for your prompt response.

What I was referring to is illustrated in the example here: https://microsoft.github.io/autogen/docs/notebooks/agentchat_groupchat_RAG.

We aim to develop functionality that enables a group chat to leverage an existing code repository for incremental development.

ekzhu commented 2 months ago

RAG agent in the Python version is quite complex. Is there a simpler version that is suitable for your scenario? @vdamov

MaxAkbar commented 1 month ago

What about kernel-memory? Can it follow the same pattern as the Semantic Kernel?