We would like to start adding support for LLM agents and RAG workflows, similar in spirit to tools like LangChain.
An agent is a system where a language model can:
- receive instructions and context
- decide what actions to take
- call tools/functions
- keep memory/history
- generate responses based on previous steps
RAG, or Retrieval-Augmented Generation, is a workflow where the model can search external data, such as documents or vector databases, and use the retrieved information to generate better answers.
What Can Be Done
Some possible first steps:
- Define a basic
Agent interface
- Add support for simple tool calling
- Create a minimal message/history structure
- Add simple RAG utilities
- Add examples showing how agents and RAG could be used
- Discuss what features should or should not be included
Possible Module Structure
A possible starting structure could be:
fenn/
└── agents/
├── __init__.py
├── agent.py
├── tools.py
├── memory.py
├── messages.py
└── rag.py
This is only a proposal. The structure can change as the design becomes clearer.
Discussion
New and existing contributors are very welcome to help shape this.
Please feel free to:
The first goal is not to build everything at once, but to agree on a simple starting point.
We would like to start adding support for LLM agents and RAG workflows, similar in spirit to tools like LangChain.
An agent is a system where a language model can:
RAG, or Retrieval-Augmented Generation, is a workflow where the model can search external data, such as documents or vector databases, and use the retrieved information to generate better answers.
What Can Be Done
Some possible first steps:
AgentinterfacePossible Module Structure
A possible starting structure could be:
This is only a proposal. The structure can change as the design becomes clearer.
Discussion
New and existing contributors are very welcome to help shape this.
Please feel free to:
comment here with ideas
open related issues
propose a small PR
discuss the direction on Discord
The first goal is not to build everything at once, but to agree on a simple starting point.