Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suggested Framework Enhancements (with example Code) #73

Open
git5001 opened this issue Feb 1, 2025 · 1 comment
Open

Suggested Framework Enhancements (with example Code) #73

git5001 opened this issue Feb 1, 2025 · 1 comment

Comments

@git5001
Copy link

git5001 commented Feb 1, 2025

I was looking for a lightweight agent framework, so a light langchain version. I found an article about your project and tried it out. It is nice and it is lightweight but for my use case it lacks a few features.
I hacked a few classes together which add the features for me (the code is not optimized, just a quick working example).
But if you are interested have a look at the extension i made to your agent framework and which address a few issues I encountered:

  • Message transformers: The explicit input and output schemas of your framework are good, but it does not always work to feed the same theme into the next agent. I needed a message transformer which with little effort converts one agent's output to the next agent input without too much hazzle.
  • Interconnect agents: To manually pass messages around between agents seems tedious. So I enhanced your BaseAgent to include an input and output ports which allow to connect the agents together and feed one output to the next agents input (after the optional transformation). So the connected agents send their output message to one or more connected agents input. This way the chain works automatically.
  • Agent scheduler: Having an agent scheduler which steps the agent until there is nothing more to do, so all ports are emptied.

If you are interested have a look at : https://github.com/git5001/ConnectorAgents
Feel free to integrate from my repo what you want. I probably will not work on this any more, but you can copy to your repo what you like.

There is an example application which reads news from the internet and mails them as an email to me, using a handful of interlinked agents. This works quite well.

PS: The multiple inheritance of the two tools can go away if the BaseAgent would already include the ports. I just did not want to change your base classes.

PPS: To make your framework really useful, it would also good to have more basic agents (forge tools), e.g. add an email agent, some debug or log agents, .... If people have a set of agents which do the most common tasks (like you already do with Taviliy and Scraper etc) they can get to work fast.

@KennyVaneetvelde
Copy link
Member

@git5001 Hi, sorry for getting back to this so late, but I did find your feedback very insightful!

I'll leave the issue open for now to come back to this later, because some of your ideas do sound like great quality-of-life improvements for some use cases

PS: I've been wanting to add some agents to the Atomic Forge like you suggested for months now, haven't gotten around to it yet, hopefully soon!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants